Skip to content

[SER] SER HLK Tests finalization #613

@damyanp

Description

@damyanp

Missing coverage in current SER HLK tests

  • SER accessors called from CH/MS
  • HitObject accessor validation when created FromRQ
  • SER accessor validation for procedural hits
  • Validation of attribute function parameter in invoked CH (== FromRQ provided attributes)
  • Same HitObject, different payload types between HitObject::TraceRay, Invoke and TraceRay
  • TraceRay/Invoke without PAQs (dxc -disable-payload-qualifiers dxc option)
  • Multiple live HitObjects
  • Recursive [HitObject::]TraceRay|HitObject::Invoke
  • Repeated invoke with the same HitObject
  • FromRayQueryWithAttrs untested
  • MakeNop untested (only default ctor used)
  • Validate Invoke-not-invoking on explicit NOP
  • Validate default return values for NOP HitObject

SER test infrastructure changes

  • RunDXRTest: Add support for arbitrary number of CH / MS shaders

Test changes/additions

  • Test all HitObject getters for NOP HitObject
  • Add geometry permutations to SER*GetterTests and SERTraceHitMissNopTest: triangles, procedural, or both.
  • Add HitObject producer permutations to all basic tests (Producers: HitObject::MakeNop, HitObject::MakeMiss, dx::HitObject::TraceRay, or TraceRayInline+FromRQ)
  • Add CH/MS test variants for all HitObject tests:
    • Classic TraceRay to enter primary set of CH/MS
    • HitObject producer called from CH/MS
    • Secondary CH/MS obtains reference values
  • Add attribute test:
    • Obtain attribute to test from CH param, Compare with HitObject::GetAttributes (with producer permutations)
  • Add test with HitObject::TraceRay + Invoke with differing payload type
  • Recursive HitObject::TraceRay + HitObject::Invoke
    • Compare against recursive TraceRay
  • Multiple live HitObjects
  • Multi-Invoke on same HitObject (with producer permutations)
  • Set NEW_GETATTRIBUTES_API once HLK repo has updated compiler available.
  • Make tests use SM 6.9 final once that is availble.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions