SPIRV-Tools/source/val
Daniel Koch 32573bb216
Add validation support for the ray tracing built-in variables (#4041)
* Add validation for ray tracing builtins

- Remove existing InstanceId testing that was combined with VertexId in awkward ways.
- Rather than adding a new set of functions for each ray tracing builtin, add
  an error table that maps the builtin ID to the 3 common VUIDs for each builtin
  (I could see this being extended for other builtins in the future).
- add F32 matrix validation function
- augment existing PrimitiveId validation to verify Input storage class for the
  RT stages this is accepted in, and correct the list of stages that it is actually
  accepted in (only Intersection / Any Hit / Closest Hit)

* add testing for ray tracing builtins

- remove exising InstanceId testing as it was tangled in with VertexId in now weird ways
  and combine it with the new tests
- add testing for ray tracing builtins
- builtins accepted in the same stages and of the same types are combined into test functions
- add some new matrix types to the code generator so they can be used for testing
2020-12-01 11:42:37 -05:00
..
basic_block.cpp Fix reachability in the validator (#3541) 2020-07-15 21:27:03 -04:00
basic_block.h Fix reachability in the validator (#3541) 2020-07-15 21:27:03 -04:00
construct.cpp Fix structured exit validation (#3141) 2020-01-23 18:04:21 -05:00
construct.h Allows breaks selection breaks to switches (#2605) 2019-05-21 22:49:37 -07:00
decoration.h Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
function.cpp Fix reachability in the validator (#3541) 2020-07-15 21:27:03 -04:00
function.h Fix reachability in the validator (#3541) 2020-07-15 21:27:03 -04:00
instruction.cpp Cleanup includes. (#1795) 2018-08-03 15:06:09 -04:00
instruction.h Handle conflict between debug info and existing validation rule (#3104) 2020-01-23 17:04:30 -05:00
validate_adjacency.cpp Handle conflict between debug info and existing validation rule (#3104) 2020-01-23 17:04:30 -05:00
validate_annotation.cpp Add support for SPV_KHR_non_semantic_info (#3110) 2019-12-18 18:10:29 -05:00
validate_arithmetics.cpp Add validation for SPV_NV_cooperative_matrix (#2404) 2019-02-25 17:43:11 -05:00
validate_atomics.cpp Add SPV_EXT_shader_image_int64 (#3852) 2020-10-20 11:55:26 -04:00
validate_barriers.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
validate_bitwise.cpp Update diag() usage in validate_bitwise. (#1757) 2018-08-01 09:19:37 -04:00
validate_builtins.cpp Add validation support for the ray tracing built-in variables (#4041) 2020-12-01 11:42:37 -05:00
validate_capability.cpp Update OpenCL capabilities validation (#3149) 2020-07-27 13:01:45 -04:00
validate_cfg.cpp Reject SPIR-V that applies void to OpUndef, OpCopyObject, OpPhi (#4036) 2020-11-27 16:31:04 +00:00
validate_composites.cpp Reject SPIR-V that applies void to OpUndef, OpCopyObject, OpPhi (#4036) 2020-11-27 16:31:04 +00:00
validate_constants.cpp Validate physical storage buffer restrictions (#2930) 2019-10-02 21:12:57 -04:00
validate_conversion.cpp Relaxed bitcast with pointers (#2878) 2019-09-18 11:55:39 -04:00
validate_debug.cpp Permit the debug instructions in WebGPU SPIR-V (#3063) 2019-11-26 14:04:57 -05:00
validate_decorations.cpp Validate location assignments (#3308) 2020-06-25 13:22:45 -04:00
validate_derivatives.cpp Check that derivatives operate on 32-bit values (#2983) 2019-10-18 09:02:25 -04:00
validate_execution_limitations.cpp Add validation for SPV_EXT_fragment_shader_interlock (#2650) 2019-06-03 10:55:07 -04:00
validate_extensions.cpp Allow DebugTypeTemplate for Type operand (#3702) 2020-08-16 23:42:59 -04:00
validate_function.cpp Fix validation failure on OpDecorationGroup (#3365) 2020-05-21 13:15:41 -04:00
validate_id.cpp Add validation rules for OpenCL.DebugInfo.100 extension (#3133) 2020-02-25 16:47:03 -05:00
validate_image.cpp Add SPV_EXT_shader_image_int64 (#3852) 2020-10-20 11:55:26 -04:00
validate_instruction.cpp Support SPV_KHR_terminate_invocation (#3568) 2020-07-22 11:45:02 -04:00
validate_interfaces.cpp Only validation locations for appropriate execution models (#3656) 2020-08-11 18:51:49 -04:00
validate_layout.cpp Update val to handle reversed instruction sections. (#3887) 2020-10-08 13:10:12 -04:00
validate_literals.cpp Update diag() calls in validate_literals. (#1771) 2018-08-01 12:41:46 -04:00
validate_logicals.cpp Support SPIR-V 1.4 (#2550) 2019-05-07 12:27:18 -04:00
validate_memory_semantics.cpp Update WebGPU validation rules of OpAtomic*s (#2777) 2019-07-31 17:15:47 -04:00
validate_memory_semantics.h Merge two implementations of ValidateMemorySemantics (#2175) 2018-12-06 14:38:15 -05:00
validate_memory.cpp Update MeshShadingNV dependencies (and land Ray tracing updates) (#4028) 2020-11-23 12:23:54 -05:00
validate_misc.cpp Reject SPIR-V that applies void to OpUndef, OpCopyObject, OpPhi (#4036) 2020-11-27 16:31:04 +00:00
validate_mode_setting.cpp Permit Simple and GLSL450 memory model in WEBGPU_0 (#3463) 2020-07-17 12:23:11 -04:00
validate_non_uniform.cpp Merge two implementations of ValidateExecutionScope (#2131) 2018-11-29 13:48:42 -05:00
validate_primitives.cpp Refactor where opcodes are validated 2018-08-07 10:29:30 -04:00
validate_scopes.cpp Validate ShaderCallKHR memory scope (#3332) 2020-05-05 13:08:28 -04:00
validate_scopes.h Re-enable OpReadClockKHR validation (#3013) 2019-11-07 09:51:38 -05:00
validate_small_type_uses.cpp Extra small storage validation (#2732) 2019-07-11 13:05:14 -04:00
validate_type.cpp Add support for SPV_KHR_non_semantic_info (#3110) 2019-12-18 18:10:29 -05:00
validate.cpp Fix use-after-move in val/validate.cpp (#3848) 2020-09-28 10:49:24 -04:00
validate.h Fix reachability in the validator (#3541) 2020-07-15 21:27:03 -04:00
validation_state.cpp Add validation support for the ray tracing built-in variables (#4041) 2020-12-01 11:42:37 -05:00
validation_state.h Update val to handle reversed instruction sections. (#3887) 2020-10-08 13:10:12 -04:00