spirv/nir: add capability check for SpvCapabilityAtomicStorage
Capability that informs if atomic counters are supported. From SPIR-V 1.0 spec, section 3.7, "Storage Class", item 10 from table: (Column "Storage Class"): "AtomicCounter For holding atomic counters. Visible across all functions of the current invocation. Atomic counter-specific memory." (Column "Required Capability"): "AtomicStorage" Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
@@ -57,6 +57,7 @@ struct spirv_supported_capabilities {
|
||||
bool descriptor_array_dynamic_indexing;
|
||||
bool runtime_descriptor_array;
|
||||
bool stencil_export;
|
||||
bool atomic_storage;
|
||||
};
|
||||
|
||||
typedef struct shader_info {
|
||||
|
@@ -3389,7 +3389,6 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
|
||||
case SpvCapabilityFloat16Buffer:
|
||||
case SpvCapabilityFloat16:
|
||||
case SpvCapabilityInt64Atomics:
|
||||
case SpvCapabilityAtomicStorage:
|
||||
case SpvCapabilityStorageImageMultisample:
|
||||
case SpvCapabilityInt8:
|
||||
case SpvCapabilitySparseResidency:
|
||||
@@ -3399,6 +3398,10 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode,
|
||||
spirv_capability_to_string(cap));
|
||||
break;
|
||||
|
||||
case SpvCapabilityAtomicStorage:
|
||||
spv_check_supported(atomic_storage, cap);
|
||||
break;
|
||||
|
||||
case SpvCapabilityFloat64:
|
||||
spv_check_supported(float64, cap);
|
||||
break;
|
||||
|
Reference in New Issue
Block a user