diff options
author | David Neto <dneto@google.com> | 2020-11-23 12:23:54 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-23 12:23:54 -0500 |
commit | cd590fa3341284cd6d1ee82366155786cfd44c96 (patch) | |
tree | 87e1d8131765be919df9b76af0fbaa6411469878 /source/val/validate_cfg.cpp | |
parent | 671914c28e8249f0a555726a0f3f38691fe5c1df (diff) | |
download | SPIRV-Tools-cd590fa3341284cd6d1ee82366155786cfd44c96.tar.gz |
Update MeshShadingNV dependencies (and land Ray tracing updates) (#4028)
* Update to final ray tracing extensions
Drop Provisional from ray tracing enums
sed -ie 's/RayQueryProvisionalKHR/RayQueryKHR/g' **/*
sed -ie 's/RayTracingProvisionalKHR/RayTracingKHR/g' **/*
Add terminator support for SpvOpIgnoreIntersectionKHR and SpvOpTerminateRayKHR
Update deps for SPIRV-Headers
* Update capability dependencies for MeshShadingNV
Accommodate https://github.com/KhronosGroup/SPIRV-Headers/pull/180
MeshShadingNV: enables PrimitiveId, Layer, and ViewportIndex
Co-authored-by: Daniel Koch <dkoch@nvidia.com>
Diffstat (limited to 'source/val/validate_cfg.cpp')
-rw-r--r-- | source/val/validate_cfg.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source/val/validate_cfg.cpp b/source/val/validate_cfg.cpp index 8babd355..45edd0c9 100644 --- a/source/val/validate_cfg.cpp +++ b/source/val/validate_cfg.cpp @@ -1110,6 +1110,8 @@ spv_result_t CfgPass(ValidationState_t& _, const Instruction* inst) { case SpvOpReturnValue: case SpvOpUnreachable: case SpvOpTerminateInvocation: + case SpvOpIgnoreIntersectionKHR: + case SpvOpTerminateRayKHR: _.current_function().RegisterBlockEnd(std::vector<uint32_t>()); if (opcode == SpvOpKill) { _.current_function().RegisterExecutionModelLimitation( @@ -1121,6 +1123,17 @@ spv_result_t CfgPass(ValidationState_t& _, const Instruction* inst) { SpvExecutionModelFragment, "OpTerminateInvocation requires Fragment execution model"); } + if (opcode == SpvOpIgnoreIntersectionKHR) { + _.current_function().RegisterExecutionModelLimitation( + SpvExecutionModelAnyHitKHR, + "OpIgnoreIntersectionKHR requires AnyHit execution model"); + } + if (opcode == SpvOpTerminateRayKHR) { + _.current_function().RegisterExecutionModelLimitation( + SpvExecutionModelAnyHitKHR, + "OpTerminateRayKHR requires AnyHit execution model"); + } + break; default: break; |