KhronosGroup / OpenCL-CTS

The OpenCL Conformance Tests
Apache License 2.0
185 stars 199 forks source link

SPIR-V 1.5 Testing #2140

Open bashbaug opened 15 hours ago

bashbaug commented 15 hours ago

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:

bashbaug commented 15 hours ago

In case it is helpful, here are my SPIR-V 1.5 notes:

Required Support

Deprecations

Possible Support

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']

Tied to VulkanMemoryModel:

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']

Tied to Shader:

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']