From ce87ab925d06a784eec194081e00a1b4c9b94d0c Mon Sep 17 00:00:00 2001 From: "Harsh Aggarwal (NVIDIA)" Date: Mon, 7 Apr 2025 13:26:11 +0530 Subject: Support for Payload Access Qualifiers (#3448) (#6595) * Add support for Ray Payload Access Qualifiers (PAQs) (#3448) - Added [raypayload] attribute for struct declarations - Implemented field validation requiring read/write access qualifiers - Added diagnostic error for missing qualifiers - Enabled PAQs in DXC compiler and HLSL emission - Added new test demonstrating PAQ syntax - Implemented proper handling of ray payload attributes in IR generation * format code * Cleanup: Remove unused vars * Add check to enablePAQ only for profile >= lib_6_7 * Review Fix - Add PAQ support for DX Raytracing add enablePAQ flag to DownstreamCompileOpitons, improve PAQ handling update raypayload-attribute-paq.slang to ensure hlsl and dxil is validated * Add diagnostic test for missing paq for lib_6_7 Compile using `-disable-payload-qualifiers` aka lib_6_6 profile raypayload-attribute-no-struct.slang and raypayload-attribute.slang --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: Ellie Hermaszewska --- .../raypayload-missing-access-qualifiers.slang.expected | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 tests/diagnostics/raypayload-missing-access-qualifiers.slang.expected (limited to 'tests/diagnostics/raypayload-missing-access-qualifiers.slang.expected') diff --git a/tests/diagnostics/raypayload-missing-access-qualifiers.slang.expected b/tests/diagnostics/raypayload-missing-access-qualifiers.slang.expected new file mode 100644 index 000000000..525e8529c --- /dev/null +++ b/tests/diagnostics/raypayload-missing-access-qualifiers.slang.expected @@ -0,0 +1,8 @@ +result code = -1 +standard error = { +tests/diagnostics/raypayload-missing-access-qualifiers.slang(10): error 40000: field 'colorMissingQualifiers' in ray payload struct must have either 'read' OR 'write' access qualifiers + float4 colorMissingQualifiers; // Error expected here + ^~~~~~~~~~~~~~~~~~~~~~ +} +standard output = { +} -- cgit v1.2.3