Open bashbaug opened 15 hours ago
In case it is helpful, here are my SPIR-V 1.5 notes:
The following SPIR-V 1.5 capabilities do not directly imply 'Shader', but I recommend that we do not require them:
Operand kind Capability: VulkanMemoryModel
Operand kind Capability: VulkanMemoryModelDeviceScope
Operand kind Capability: ShaderLayer
Operand kind Capability: ShaderViewportIndex
Operand kind Capability: StorageBuffer8BitAccess
Operand kind Capability: UniformAndStorageBuffer8BitAccess
Requires Capabilities: ['StorageBuffer8BitAccess']
Operand kind Capability: StoragePushConstant8
Operand kind Capability: UniformTexelBufferArrayDynamicIndexing
Requires Capabilities: ['SampledBuffer']
Operand kind Capability: StorageTexelBufferArrayDynamicIndexing
Requires Capabilities: ['ImageBuffer']
Operand kind MemoryModel: Vulkan
Requires Capabilities: ['VulkanMemoryModel']
Operand kind ImageOperands: MakeTexelAvailable
Requires Capabilities: ['VulkanMemoryModel']
Operand kind Scope: QueueFamily
Requires Capabilities: ['VulkanMemoryModel']
Operand kind ImageOperands: MakeTexelVisible
Requires Capabilities: ['VulkanMemoryModel']
Operand kind ImageOperands: NonPrivateTexel
Requires Capabilities: ['VulkanMemoryModel']
Operand kind ImageOperands: VolatileTexel
Requires Capabilities: ['VulkanMemoryModel']
Operand kind MemorySemantics: OutputMemory
Requires Capabilities: ['VulkanMemoryModel']
Operand kind MemorySemantics: MakeAvailable
Requires Capabilities: ['VulkanMemoryModel']
Operand kind MemorySemantics: MakeVisible
Requires Capabilities: ['VulkanMemoryModel']
Operand kind MemorySemantics: Volatile
Requires Capabilities: ['VulkanMemoryModel']
Operand kind MemoryAccess: MakePointerAvailable
Requires Capabilities: ['VulkanMemoryModel']
Operand kind MemoryAccess: MakePointerVisible
Requires Capabilities: ['VulkanMemoryModel']
Operand kind MemoryAccess: NonPrivatePointer
Requires Capabilities: ['VulkanMemoryModel']
Operand kind AddressingModel: PhysicalStorageBuffer64
Requires Capabilities: ['PhysicalStorageBufferAddresses'] -> ['Shader']
Operand kind StorageClass: PhysicalStorageBuffer
Requires Capabilities: ['PhysicalStorageBufferAddresses'] -> ['Shader']
Operand kind Decoration: NonUniform
Requires Capabilities: ['ShaderNonUniform'] -> ['Shader']
Operand kind Decoration: RestrictPointer
Requires Capabilities: ['PhysicalStorageBufferAddresses'] -> ['Shader']
Operand kind Decoration: AliasedPointer
Requires Capabilities: ['PhysicalStorageBufferAddresses'] -> ['Shader']
Operand kind Capability: ShaderNonUniform
Requires Capabilities: ['Shader']
Operand kind Capability: RuntimeDescriptorArray
Requires Capabilities: ['Shader']
Operand kind Capability: InputAttachmentArrayDynamicIndexing
Requires Capabilities: ['InputAttachment'] -> ['Shader']
Operand kind Capability: UniformBufferArrayNonUniformIndexing
Requires Capabilities: ['ShaderNonUniform'] -> ['Shader']
Operand kind Capability: SampledImageArrayNonUniformIndexing
Requires Capabilities: ['ShaderNonUniform'] -> ['Shader']
Operand kind Capability: StorageBufferArrayNonUniformIndexing
Requires Capabilities: ['ShaderNonUniform'] -> ['Shader']
Operand kind Capability: StorageImageArrayNonUniformIndexing
Requires Capabilities: ['ShaderNonUniform'] -> ['Shader']
Operand kind Capability: InputAttachmentArrayNonUniformIndexing
Requires Capabilities: ['InputAttachment', 'ShaderNonUniform'] -> ['Shader']
Operand kind Capability: UniformTexelBufferArrayNonUniformIndexing
Requires Capabilities: ['SampledBuffer', 'ShaderNonUniform'] -> ['Shader']
Operand kind Capability: StorageTexelBufferArrayNonUniformIndexing
Requires Capabilities: ['ImageBuffer', 'ShaderNonUniform'] -> ['Shader']
Operand kind Capability: PhysicalStorageBufferAddresses
Requires Capabilities: ['Shader']
Here is a similar tracking issue for SPIR-V 1.5 testing.
I believe we only need to add two new test cases for SPIR-V 1.5, since SPIR-V 1.5 was primarily Vulkan-focused: