Commit 9cd7b8359c

Robin Voetter <robin@voetter.nl>
2024-11-02 19:01:57
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
1 parent efb7539
Changed files (1)
src
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,
     };