0033 - DXIL 1.9
| Status | Under Review |
|---|---|
| Author | |
| Sponsor |
- Planned Version: SM 6.9
Introduction
Shader Model 6.9 introduces new features to HLSL which need representations in DXIL. This proposal provides an index of the new features:
New DXIL Features
Opacity Micromaps
Proposal 0024 - Opacity Micromaps (OMM)
This adds a new DXIL op, AllocateRayQuery2 and some new flags.
Shader Execution Reordering
Proposal 0027 - Shader Execution Reordering (SER)
This adds a new DXIL type, %dx.types.HitObject and 30 new DXIL ops.
DXIL Vectors
Proposal 0030 - DXIL Vectors
This enables native vectors, as supported by LLVM 3.7, in DXIL 1.9. A new
rawBufferVectorLoad opcode is added that loads an entire vector. Elementwise
intrinsics are extended to accept vector arguments.
The HLSL changes related to this feature can be found in Proposal 0026 - HLSL Long Vector Type.
16bit IsSpecialFloat
Proposal 0038 - 16bit IsSpecialFloat
The IsSpecialFloat DXIL Ops are used to implement operations, ‘isinf’, ‘isnan’, ‘isfinite’, and ‘isnormal’. Due to a bug (#7496), the IsSpecialFloat DXIL operations were never generated for 16-bit types. This bug is fixed for SM 6.9.
Non-breaking Changes
Proposal 0044 - SM 6.9 Required Features
This proposal adds new required feature support for all DXIL 1.9 implementations. All DXIL 1.9 shaders may freely use 16-bit native data types, wave operations and 64bit integers. This proposal does not change the DXIL representation or the collection of flags in the shader binary, but a conforming implementation that accepts DXIL 1.9 must also always support these features.
Deferred Features
The following features previewed in 6.9 and originally planned as DXIL 1.9 features, but are deferred to a later release.
Cooperative Vector
Proposal 0029 - Cooperative Vector
Cooperative vector added new vector-matrix multiplication and accumulation operations to expose GPU hardware acceleration for SIMD-cooperative linear algebra operations on matrices and vectors with dimensions larger than four. Proposal 0035 supersedes this and targets a later release.