diff --git a/vendor/wgpu/wgpu.js b/vendor/wgpu/wgpu.js index 12df561d5e7..e389b1e4d80 100644 --- a/vendor/wgpu/wgpu.js +++ b/vendor/wgpu/wgpu.js @@ -84,6 +84,7 @@ class WebGPUInterface { Origin3D: [12, 4], QueueDescriptor: [this.mem.intSize*3, this.mem.intSize], CallbackInfo: [20, 4], + UncapturedErrorCallbackInfo: [16, 4], RenderPassColorAttachment: [56, 8], BindGroupEntry: [40, 8], BindGroupLayoutEntry: [80, 8], @@ -1053,6 +1054,16 @@ class WebGPUInterface { }; } + UncapturedErrorCallbackInfo(start) { + const off = this.struct(start); + off(4); + return { + callback: this.mem.exports.__indirect_function_table.get(this.mem.loadPtr(off(4))), + userdata1: this.mem.loadPtr(off(4)), + userdata2: this.mem.loadPtr(off(4)), + }; + } + callCallback(callback, args) { args.push(callback.userdata1); args.push(callback.userdata2); @@ -1195,7 +1206,7 @@ class WebGPUInterface { const callbackInfo = this.CallbackInfo(callbackInfoPtr); const deviceLostCallbackInfo = this.CallbackInfo(off(this.sizes.CallbackInfo)); - const uncapturedErrorCallbackInfo = this.CallbackInfo(off(this.sizes.CallbackInfo)); + const uncapturedErrorCallbackInfo = this.UncapturedErrorCallbackInfo(off(this.sizes.UncapturedErrorCallbackInfo)); adapter.requestDevice(descriptor) .catch((e) => { diff --git a/vendor/wgpu/wgpu.odin b/vendor/wgpu/wgpu.odin index 94612bf6279..8dfbaa5c6c9 100644 --- a/vendor/wgpu/wgpu.odin +++ b/vendor/wgpu/wgpu.odin @@ -853,7 +853,6 @@ RequestDeviceCallbackInfo :: struct { UncapturedErrorCallbackInfo :: struct { nextInChain: ^ChainedStructOut, - mode: CallbackMode, callback: UncapturedErrorCallback, userdata1: rawptr, userdata2: rawptr,