Skip to content

[HLSL] Root Signature semantic analysis - Bounded Parameter checks #129940

@inbelic

Description

@inbelic

This issue handles the additional semantic analysis of the parsed HLSLRootSignature attribute. This includes generating applicable diagnostics.

The relevant validations that this issue must implement are:

  • Ensure valid flag combinations of DESCRIPTOR_RANGE_FLAGS and ROOT_DESCRIPTOR_FLAGS
  • Ensure valid values of DESCRIPTOR_RANGE_FLAGS for the Sampler descriptor table clause
  • Ensure that listed parameters of StaticSampler are bounded correctly
  • Validate that the space parameter is not in the invalid range of 0xFFFFFFF0 to 0xFFFFFFFF
  • Validate that the numDescriptors parameter is not 0.
  • Ensure that the correct register type matches the desriptor range type - this is handled during parsing

AC:

  • Update ParseHLSLRootSignature defined in [HLSL] Generate AST for Root Signatures #119011 to implement semantic validation of HLSLRootSignature
  • Update handleHLSLRootSignature to implement semantic validation of HLSLRootSignature in SemaHLSL.cpp
  • Add thorough testing of correct diagnostics into clang/unittests/Sema/ParseHLSLRootSignatureTest.cpp
  • Add tests for some samples to ensure diagnostics are displayed correctly from HLSL input in AST/HLSL/RootSignatures-AST.hlsl

Metadata

Metadata

Assignees

Labels

HLSLHLSL Language Support

Type

No type

Projects

Status

Active

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions