Skip to content

SER implementation tracker #7214

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
36 of 41 tasks
simoll opened this issue Mar 17, 2025 · 1 comment
Open
36 of 41 tasks

SER implementation tracker #7214

simoll opened this issue Mar 17, 2025 · 1 comment

Comments

@simoll
Copy link
Contributor

simoll commented Mar 17, 2025

Umbrella bug for tracking the SER implementation

DXIL opcodes + check-pass validation tests

DXIL opcode definitions and DXV tests showing wellformed dxil passing

HLSL -> HL lowering + sema

HLSL gen_intrin_main.txt definitions, HLSL -> DXIL lowering. HLSL + HL IR tests

Bug fixes | DXIL validation + check-fail validation tests

DXIL validation rules, in so far necessary, plus DXV tests with illformed dxil showing those validation failures

HLK tests

  • Basic SER execution tests ([SER] Basic execution tests #7379)
  • Wave-incoherent conditional assignment of HitObject values with and without procedural attributes
  • Dynamic access into local HitObject arrays
  • Adapt DXR 1.0 tests for HitObject
  • Adapt DXR 1.1 tests for HitObject
  • Test local root argument lookup with HitObject
  • Test MaybeReorderThread
  • Test all HitObject accessors in raygen
@simoll
Copy link
Contributor Author

simoll commented Mar 20, 2025

Updated table with tracking bugs #7233 and #7234

simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 24, 2025
SER:
- dx::HitObject HLSL type.
- dx::HitObject::MakeNop as default ctor.
- dx::MaybeReorderThread HLSL intrinsic.
- Diagnostics for SER builtins in unsupported shader stages.
- SM6.9 AvailabilityAttributes on SER intrinsics and HitObject type.

Generic HLSL:
- 'static' gen_intrin_main.txt attribute to define static member
  functions.
- Enable 'min_sm' gen_intrin_main.txt attribute path.
- 'namespace dx' implementation, intrinsic declaration (derived from
  'namespace vk' impl) and lookup.

Generic diag:
- Diagnose AvailabilityAttribute of types (used for dx::HitObject).

Specification: https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md

DXC SER implementation tracker: microsoft#7214
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 24, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 24, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 24, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 25, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 25, 2025
- DXIL opcodes for MaybeReorderThread
- Validator rules
- DXV validation test (passing & expected failures)

Specification: https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md

DXC SER implementation tracker: microsoft#7214
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 25, 2025
- DXIL opcodes for MaybeReorderThread
- Validator rules
- DXV validation test (passing & expected failures)

Specification: https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md

DXC SER implementation tracker: microsoft#7214
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 26, 2025
- HLSL -> DXIL lowering
- ast, hlsl->dxil, dxilgen, and ScalarReplAggregatesHLSL tests

SER implementation tracker (microsoft#7214)
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 31, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 31, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 31, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 31, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Mar 31, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Apr 3, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Apr 4, 2025
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Apr 4, 2025
tex3d pushed a commit that referenced this issue Apr 12, 2025
…ests (#7277)

Add the DXIL operations and a passing validation test for:
- HitObject_FromRayQuery
- HitObject_FromRayQueryWithAttrs

DXC SER implementation tracker: #7214
tex3d pushed a commit that referenced this issue Apr 13, 2025
Add the DXIL operations and a passing validation test for:
- HitObject_IsMiss, HitObject_IsHit, HitObject_IsNop
- HitObject_RayFlags, HitObject_RayTMin, HitObject_RayTCurrent
- HitObject_GeometryIndex, HitObject_InstanceIndex, HitObject_InstanceID
- HitObject_PrimitiveIndex, HitObject_HitKind, HitObject_ShaderTableIndex
- HitObject_WorldRayOrigin, HitObject_WorldRayDirection,
- HitObject_ObjectRayOrigin, HitObject_ObjectRayDirection
- HitObject_ObjectToWorld3x4, HitObject_WorldToObject3x4
- HitObject_SetShaderTableIndex, HitObject_LoadLocalRootTableConstant
- HitObject_Attributes

Closes #7310
DXC SER implementation tracker: #7214
tex3d pushed a commit that referenced this issue Apr 17, 2025
…ests (#7262)

- HLSL -> DXIL lowering
- ast, hlsl->dxil, dxilgen, and ScalarReplAggregatesHLSL tests

SER implementation tracker (#7214)
tex3d pushed a commit that referenced this issue Apr 22, 2025
Lowering for
- HitObject::TraceRay
- HitObject::Invoke

Specification:
https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md
DXC SER implementation tracker:: #7214
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Apr 23, 2025
* HLSL -> DXIL lowering
* ast, hlsl->dxil, dxilgen, and ScalarReplAggregatesHLSL tests

SER implementation tracker (microsoft#7214)
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Apr 23, 2025
Validate:
 HitObject_GeometryIndex
 HitObject_HitKind
 HitObject_InstanceID
 HitObject_InstanceIndex
 HitObject_IsHit
 HitObject_IsMiss
 HitObject_IsNop
 HitObject_LoadLocalRootTableConstant
 HitObject_ObjectRayDirection
 HitObject_ObjectRayOrigin
 HitObject_ObjectToWorld3x4
 HitObject_PrimitiveIndex
 HitObject_RayFlags
 HitObject_RayTCurrent
 HitObject_RayTMin
 HitObject_SetShaderTableIndex
 HitObject_ShaderTableIndex
 HitObject_WorldRayDirection
 HitObject_WorldRayOrigin

Rules:
* No undef parameters (HitObject, RecordIndex, RootTableOffset)
* row/col/component indices are constant and in-bounds
* If constant, RootTableOffset % 4 == 0

SER implementation tracker: microsoft#7214
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Apr 23, 2025
Validate:
 HitObject_MakeMiss

Rules:
 No undef MissIndex or RayFlags

SER implementation tracker: microsoft#7214
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Apr 23, 2025
Validate:
 HitObject_MakeMiss

Rules:
 No undef MissIndex or RayFlags

SER implementation tracker: microsoft#7214
tex3d pushed a commit that referenced this issue Apr 23, 2025
Lowering for all HitObject accessors (ex GetAttributes)

Specification:
https://github.com/microsoft/hlsl-specs/blob/main/proposals/0027-shader-execution-reordering.md
DXC SER implementation tracker::
#7214
tex3d pushed a commit that referenced this issue Apr 23, 2025
tex3d pushed a commit that referenced this issue Apr 24, 2025
* HLSL -> DXIL lowering
* ast, hlsl->dxil, dxilgen, and ScalarReplAggregatesHLSL tests

SER implementation tracker (#7214)
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Apr 25, 2025
- All trivial scalar/vector/matrix getters
- HitObject::FromRayQuery with procedural hit
- HitObject::GetAttributes<T> with custom attributes and procedural hit

SER implementation tracker: microsoft#7214
damyanp pushed a commit that referenced this issue Apr 25, 2025
Validate:
 HitObject_GeometryIndex
 HitObject_HitKind
 HitObject_InstanceID
 HitObject_InstanceIndex
 HitObject_IsHit
 HitObject_IsMiss
 HitObject_IsNop
 HitObject_LoadLocalRootTableConstant
 HitObject_ObjectRayDirection
 HitObject_ObjectRayOrigin
 HitObject_ObjectToWorld3x4
 HitObject_PrimitiveIndex
 HitObject_RayFlags
 HitObject_RayTCurrent
 HitObject_RayTMin
 HitObject_SetShaderTableIndex
 HitObject_ShaderTableIndex
 HitObject_WorldRayDirection
 HitObject_WorldRayOrigin

Rules:
* No undef parameters (HitObject, RecordIndex, RootTableOffset)
* row/col/component indices are constant and in-bounds
* If constant, RootTableOffset % 4 == 0

SER implementation tracker:
#7214
damyanp pushed a commit that referenced this issue Apr 25, 2025
Validate:
 HitObject_MakeMiss

Rules:
 No undef MissShaderIndex or RayFlags

SER implementation tracker: #7214
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue Apr 28, 2025
Validate:
 HitObject_Invoke
 HitObject_TraceRay

Rules:
 No undef params
 Resource handle must be AS

SER implementation tracker: microsoft#7214
damyanp pushed a commit that referenced this issue May 2, 2025
Validate:
 HitObject_FromRayQuery
 HitObject_FromRayQueryWithAttrs

Rules:
 No `undef` inputs

SER implementation tracker: #7214
tex3d pushed a commit that referenced this issue May 2, 2025
Validate:
 HitObject_Invoke
 HitObject_TraceRay

Rules:
 No undef params
 Resource handle must be AS

SER implementation tracker: #7214
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue May 5, 2025
Show 'REODER_SCOPE' memory flag rejected pre DXIL 1.9. REORDER_SCOPE
validation logic already implemented in microsoft#7263

SER implementation tracker: microsoft#7214
simoll added a commit to simoll/DirectXShaderCompiler that referenced this issue May 5, 2025
Validates:
 All resources
 All instructions using resources

Rules:
 'reordercoherent' may only be used in SM6.9+ in resource handles and
 resource declarations.
 Increment/DecrementCounter unsupported on 'reordercoherent' resources.

Create a new DXIL 1.9 variant of the 'CompileWhenOkThenCheckRDAT'
container test and restore the old one without 'reordercoherent' (pre-microsoft#7250). The validator now rejects 'reordercoherent' in DXIL 1.3 and accepts from DXIL 1.9+.

SER implementation tracker: microsoft#7214
damyanp pushed a commit that referenced this issue May 6, 2025
Show 'REORDER_SCOPE' memory flag rejected pre DXIL 1.9. REORDER_SCOPE
validation logic already implemented in #7263

Move REORDER_SCOPE validation tests to `LitDXILValidation/` and adapt
RUN lines as we are touching this (#7359).

SER implementation tracker: #7214
damyanp pushed a commit that referenced this issue May 9, 2025
Validates:
 All resources
 All instructions using resources

Rules:
 'reordercoherent' may only be used in SM6.9+ in resource handles and
 resource declarations.
 Increment/DecrementCounter unsupported on 'reordercoherent' resources.

Create a new DXIL 1.9 variant of the 'CompileWhenOkThenCheckRDAT'
container test and restore the old one without 'reordercoherent'
(pre-#7250). The validator now rejects 'reordercoherent' in DXIL 1.3 and
accepts from DXIL 1.9+.

SER implementation tracker: #7214

---------

Co-authored-by: Tex Riddell <[email protected]>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant