From b50742fb08b5beb0067d3a95903177ec4135d1b4 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Sat, 2 Nov 2024 19:01:57 +0100 Subject: [PATCH] spirv: enable variable pointers for now This seems to be required for ptr_elem_ptr with storage buffers. Note that this does not imply that the pointer can be regarded as physical too. Some variants of ptr_elem_ptr will need to be forbidden --- src/link/SpirV.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/link/SpirV.zig b/src/link/SpirV.zig index 106b52a72c57..b1b8945963ca 100644 --- a/src/link/SpirV.zig +++ b/src/link/SpirV.zig @@ -296,7 +296,7 @@ fn writeCapabilities(spv: *SpvModule, target: std.Target) !void { // TODO: Integrate with a hypothetical feature system const caps: []const spec.Capability = switch (target.os.tag) { .opencl => &.{ .Kernel, .Addresses, .Int8, .Int16, .Int64, .Float64, .Float16, .Vector16, .GenericPointer }, - .vulkan => &.{ .Shader, .PhysicalStorageBufferAddresses, .Int8, .Int16, .Int64, .Float64, .Float16 }, + .vulkan => &.{ .Shader, .PhysicalStorageBufferAddresses, .Int8, .Int16, .Int64, .Float64, .Float16, .VariablePointers, .VariablePointersStorageBuffer }, else => unreachable, };