gpu-dawn: UB in ValidateSetBindGroup? #308

Closed
opened 2022-05-26 17:38:40 +00:00 by emidoots · 1 comment
emidoots commented 2022-05-26 17:38:40 +00:00 (Migrated from github.com)

@d3m1gd reported UB in ValidateSetBindGroup over Matrix chat - this could either be a real bug in Dawn, or a bug in Dawn that has already been fixed and we're just not up-to-date:

Illegal instruction at address 0x96d00a
libs/dawn/src/dawn/native/ProgrammableEncoder.cpp:0:9: 0x96d00a in ValidateSetBindGroup (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/src/dawn/native/ProgrammableEncoder.cpp)
libs/dawn/src/dawn/native/RenderEncoderBase.cpp:418:21: 0x96a713 in APISetBindGroup (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/src/dawn/native/RenderEncoderBase.cpp)
libs/dawn/out/Debug/gen/src/dawn/native/ProcTable.cpp:990:15: 0x532ebb in ??? (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/out/Debug/gen/src/dawn/native/ProcTable.cpp)
libs/dawn/out/Debug/gen/src/dawn/dawn_proc.c:420:5: 0x52e2f9 in ??? (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/out/Debug/gen/src/dawn/dawn_proc.c)
/var/home/z/Projects/game/libs/mach/gpu/src/NativeInstance.zig:1514:50: 0x4b3cd6 in .app.gpu.NativeInstance.render_bundle_encoder_vtable.setBindGroup (game)
            c.wgpuRenderBundleEncoderSetBindGroup(
                                                 ^
/var/home/z/Projects/game/libs/mach/gpu/src/RenderBundleEncoder.zig:105:28: 0x4c8f20 in .app.Lines.recreatePipeline (game)
    enc.vtable.setBindGroup(enc.ptr, group_index, group, dynamic_offsets);
                           ^
/var/home/z/Projects/game/src/main.zig:157:31: 0x4b6cf3 in .app.update (game)
    app.lines.recreatePipeline(&device, format, rbed);
                              ^
/var/home/z/Projects/game/libs/mach/src/native.zig:442:39: 0x4b57a9 in main (game)
        const success = try app.update(&engine);
                                      ^
/var/home/z/.local/zig/zig-linux-x86_64-0.10.0-dev.2306+50a5ddecc/lib/std/start.zig:581:37: 0x4d1f67 in std.start.callMain (game)
            const result = root.main() catch |err| {
                                    ^
/var/home/z/.local/zig/zig-linux-x86_64-0.10.0-dev.2306+50a5ddecc/lib/std/start.zig:515:12: 0x4b7797 in std.start.callMainWithArgs (game)
    return @call(.{ .modifier = .always_inline }, callMain, .{});
           ^
/var/home/z/.local/zig/zig-linux-x86_64-0.10.0-dev.2306+50a5ddecc/lib/std/start.zig:480:12: 0x4b7542 in std.start.main (game)
    return @call(.{ .modifier = .always_inline }, callMainWithArgs, .{ @intCast(usize, c_argc), c_argv, envp });
@d3m1gd reported UB in ValidateSetBindGroup [over Matrix chat](https://matrix.to/#/!bIJeTLtOHucXQpqIcH:matrix.org/$TDjQGhr8QKiSf0A442DfTjc3GK3WG4cQuGc4s0ZltuE?via=matrix.org&via=mozilla.org&via=pythons.space) - this could either be a real bug in Dawn, or a bug in Dawn that has already been fixed and we're just not up-to-date: ``` Illegal instruction at address 0x96d00a libs/dawn/src/dawn/native/ProgrammableEncoder.cpp:0:9: 0x96d00a in ValidateSetBindGroup (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/src/dawn/native/ProgrammableEncoder.cpp) libs/dawn/src/dawn/native/RenderEncoderBase.cpp:418:21: 0x96a713 in APISetBindGroup (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/src/dawn/native/RenderEncoderBase.cpp) libs/dawn/out/Debug/gen/src/dawn/native/ProcTable.cpp:990:15: 0x532ebb in ??? (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/out/Debug/gen/src/dawn/native/ProcTable.cpp) libs/dawn/out/Debug/gen/src/dawn/dawn_proc.c:420:5: 0x52e2f9 in ??? (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/out/Debug/gen/src/dawn/dawn_proc.c) /var/home/z/Projects/game/libs/mach/gpu/src/NativeInstance.zig:1514:50: 0x4b3cd6 in .app.gpu.NativeInstance.render_bundle_encoder_vtable.setBindGroup (game) c.wgpuRenderBundleEncoderSetBindGroup( ^ /var/home/z/Projects/game/libs/mach/gpu/src/RenderBundleEncoder.zig:105:28: 0x4c8f20 in .app.Lines.recreatePipeline (game) enc.vtable.setBindGroup(enc.ptr, group_index, group, dynamic_offsets); ^ /var/home/z/Projects/game/src/main.zig:157:31: 0x4b6cf3 in .app.update (game) app.lines.recreatePipeline(&device, format, rbed); ^ /var/home/z/Projects/game/libs/mach/src/native.zig:442:39: 0x4b57a9 in main (game) const success = try app.update(&engine); ^ /var/home/z/.local/zig/zig-linux-x86_64-0.10.0-dev.2306+50a5ddecc/lib/std/start.zig:581:37: 0x4d1f67 in std.start.callMain (game) const result = root.main() catch |err| { ^ /var/home/z/.local/zig/zig-linux-x86_64-0.10.0-dev.2306+50a5ddecc/lib/std/start.zig:515:12: 0x4b7797 in std.start.callMainWithArgs (game) return @call(.{ .modifier = .always_inline }, callMain, .{}); ^ /var/home/z/.local/zig/zig-linux-x86_64-0.10.0-dev.2306+50a5ddecc/lib/std/start.zig:480:12: 0x4b7542 in std.start.main (game) return @call(.{ .modifier = .always_inline }, callMainWithArgs, .{ @intCast(usize, c_argc), c_argv, envp }); ```
d3m1gd commented 2022-05-29 05:33:30 +00:00 (Migrated from github.com)

can probably close this one now, as it was definitely caused by an incorrect pointer use

can probably close this one now, as it was definitely caused by an incorrect pointer use
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hexops/mach#308
No description provided.