Back out unnecessary OMM flag validation and SM 6.9 dependency #360
Labels
active proposal
Issues relating to active proposals
Design Meeting
Agenda item for the design meeting
Milestone
Which proposal does this relate to?
hlsl-specs/proposals/0024-opacity-micromaps.md
Lines 114 to 117 in dc68b90
Describe the issue or outstanding question.
Before this proposal, unknown RayFlags had no diagnostics, masking, or validation. If an unknown flag was used, the DXR spec says that constitutes "undefined behavior", and that any unrecognized flag is not guaranteed to be available when reading the RayFlag state back.
This proposal adds error diagnostics for static use of new flags when
SM < 6.9
, warnings for use of the enum values, masking the RayFlags when generating the DXIL op to prevent use of any unknown flags for the current shader model, and tests for such.After discussions, it is felt that the proposed change is overly restrictive and may add an unnecessary mask operation. Without this restriction, the new flags could be used even with a prior shader model on a device that supports OMM, without any real dependency on SM 6.9.
This has implications for the proposal to use availability diagnostics on the new flag values as well.
We propose to remove these extra diagnostics, masking, validation, and testing from the proposal. The new flags will be usable on prior shader models as long as the runtime and device recognize the flags, even if OMM is unsupported, with undefined behavior otherwise. Device support for OMM or support for SM 6.9 is sufficient to guarantee that a device will accept the new flags without undefined behavior, without requiring that the shader is compiled to SM 6.9.
However, for RayQuery, it's proposed that a new template argument be added, which will require a new parameter to a new version of the AllocateRayQuery DXIL op. This will still require a new version of DXIL, and thus require SM 6.9 to use.
The text was updated successfully, but these errors were encountered: