diff options
author | Alejandro Piñeiro <[email protected]> | 2018-07-13 13:34:08 +0200 |
---|---|---|
committer | Alejandro Piñeiro <[email protected]> | 2018-07-31 13:33:28 +0200 |
commit | d69027536ca04b5270eae4c1621aded1e581a64e (patch) | |
tree | ce310ced7adeddade846a290337f3b4234988fe6 | |
parent | 1e3f61d1d54f16328d7b8c61cdb1938b5ce04d41 (diff) |
compiler/spirv: add XFB and GeometryStreams capability check support
Reviewed-by: Timothy Arceri <[email protected]>
-rw-r--r-- | src/compiler/shader_info.h | 2 | ||||
-rw-r--r-- | src/compiler/spirv/spirv_to_nir.c | 10 |
2 files changed, 10 insertions, 2 deletions
diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h index e9ca222dea8..dab15b58894 100644 --- a/src/compiler/shader_info.h +++ b/src/compiler/shader_info.h @@ -60,6 +60,8 @@ struct spirv_supported_capabilities { bool atomic_storage; bool storage_8bit; bool post_depth_coverage; + bool transform_feedback; + bool geometry_streams; }; typedef struct shader_info { diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index f0a5fae4a64..32ebdd78a1f 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -3417,7 +3417,6 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode, case SpvCapabilityStorageImageExtendedFormats: break; - case SpvCapabilityGeometryStreams: case SpvCapabilityLinkage: case SpvCapabilityVector16: case SpvCapabilityFloat16Buffer: @@ -3427,7 +3426,6 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode, case SpvCapabilityInt8: case SpvCapabilitySparseResidency: case SpvCapabilityMinLod: - case SpvCapabilityTransformFeedback: vtn_warn("Unsupported SPIR-V capability: %s", spirv_capability_to_string(cap)); break; @@ -3446,6 +3444,14 @@ vtn_handle_preamble_instruction(struct vtn_builder *b, SpvOp opcode, spv_check_supported(int16, cap); break; + case SpvCapabilityTransformFeedback: + spv_check_supported(transform_feedback, cap); + break; + + case SpvCapabilityGeometryStreams: + spv_check_supported(geometry_streams, cap); + break; + case SpvCapabilityAddresses: case SpvCapabilityKernel: case SpvCapabilityImageBasic: |