From 2f422372b588789a5ce208bb85c9bfeee84dd980 Mon Sep 17 00:00:00 2001 From: Ali Cheraghi Date: Fri, 15 Aug 2025 19:36:15 +0330 Subject: [PATCH] spirv: do not decorate nav alignment they seem to be always `null` even when accessed through extern key so we have no way to tell whether they have natural alignment or not to decorate. And the reason we don't always decorate them is because some environments might be too dumb and crash for this. --- src/codegen/spirv/CodeGen.zig | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/src/codegen/spirv/CodeGen.zig b/src/codegen/spirv/CodeGen.zig index ebfa0635562b3125c221035571050c00a9e54414..0edcfa591905e8ff59b0211e1d1eb23e8e7795d1 100644 --- a/src/codegen/spirv/CodeGen.zig +++ b/src/codegen/spirv/CodeGen.zig @@ -254,13 +254,7 @@ pub fn genNav(cg: *CodeGen, do_codegen: bool) Error!void { try cg.module.debugName(func_result_id, nav.fqn.toSlice(ip)); }, .global => { - const maybe_init_val: ?Value = switch (ip.indexToKey(val.toIntern())) { - .func => unreachable, - .variable => |variable| .fromInterned(variable.init), - .@"extern" => null, - else => val, - }; - assert(maybe_init_val == null); // TODO + assert(ip.indexToKey(val.toIntern()) == .@"extern"); const storage_class = cg.module.storageClass(nav.getAddrspace()); assert(storage_class != .generic); // These should be instance globals @@ -274,13 +268,6 @@ pub fn genNav(cg: *CodeGen, do_codegen: bool) Error!void { .storage_class = storage_class, }); - if (nav.getAlignment() != ty.abiAlignment(zcu)) { - if (target.os.tag != .opencl) return cg.fail("cannot apply alignment to variables", .{}); - try cg.module.decorate(result_id, .{ - .alignment = .{ .alignment = @intCast(nav.getAlignment().toByteUnits().?) }, - }); - } - switch (target.os.tag) { .vulkan, .opengl => { if (ty.zigTypeTag(zcu) == .@"struct") { -- 2.54.0