| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // RUN: %dxc -T lib_6_3 %s | FileCheck %s
- // CHECK: ; Buffer Definitions:
- // CHECK: ;
- // CHECK: ; cbuffer cbuf
- // CHECK: ; {
- // CHECK: ;
- // CHECK: ; struct cbuf
- // CHECK: ; {
- // CHECK: ;
- // CHECK: ; struct struct.Agg
- // CHECK: ; {
- // CHECK: ;
- // CHECK: ; struct struct.Value
- // CHECK: ; {
- // CHECK: ;
- // CHECK: ; uint v; ; Offset: 0
- // CHECK: ;
- // CHECK: ; } value[1];; ; Offset: 0
- // CHECK: ;
- // CHECK: ; min16ui fodder; ; Offset: 4
- // CHECK: ;
- // CHECK: ; } aggie; ; Offset: 0
- // CHECK: ;
- // CHECK: ;
- // CHECK: ; } cbuf; ; Offset: 0 Size: 8
- // CHECK: ;
- // CHECK: ; }
- // Test Cbuffer validation likely to cause mistaken overlaps
- struct Value { uint v; }; // This may be stripped because it has nothing below 32 bits
- struct Agg {
- Value value[1];
- min16uint fodder; // This will cause this struct to be preserved
- };
- cbuffer cbuf : register(b1)
- {
- Agg aggie;
- }
- RWBuffer<int> Out : register(u0);
- [shader("raygeneration")]
- void main()
- {
- Out[0] = aggie.value[0].v;
- }
|