From 37e8917d10626b519470f2e34625f0efe741352f Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Thu, 10 Jun 2021 14:57:09 -0400 Subject: CUDA layout corner cases/testing (#1881) * #include an absolute path didn't work - because paths were taken to always be relative. * Add support for sizeOf/alignOf/offsetOf to stdlib. Add $G intrinsic expansion that works of the generic parameters not the param type * Test cuda layout. * Fix CUDA layout issues. Fix reflection to handle other built in types. Fix __offsetOf * Tests of reflection and layout as reported directly from CUDA. * Comment about use of aligned size as size. * Fix warning from VS. * Check alignment is pow2. * Small improvements to alignment calcs. * Tab to spaces. * Fix alignment pointer sizes on 32 bit OS for CUDA. * Fix CUDA reflection on 32 bit. --- tests/cuda/cuda-reflection.slang | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tests/cuda/cuda-reflection.slang (limited to 'tests/cuda/cuda-reflection.slang') diff --git a/tests/cuda/cuda-reflection.slang b/tests/cuda/cuda-reflection.slang new file mode 100644 index 000000000..95bf591c9 --- /dev/null +++ b/tests/cuda/cuda-reflection.slang @@ -0,0 +1,28 @@ +// cuda-reflection.slang + +//TEST:REFLECTION:-stage compute -entry main -target cuda + +struct PadLadenStruct +{ + double a; + uint8_t b; +}; + +// This is to check if the last half can be inserted 'inside' the spare padding of a. It should not be +struct StructWithArray +{ + PadLadenStruct a[1]; + uint8_t c; + + matrix d; + uint8_t e; +}; + +ConstantBuffer cb; +RWStructuredBuffer sb; + +[numthreads(1, 1, 1)] +void main( + uint3 dispatchThreadID : SV_DispatchThreadID) +{ +} \ No newline at end of file -- cgit v1.2.3