layout.hlsl 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // RUN: %dxc -T vs_6_0 -E main %s | FileCheck %s
  2. // Tests the printed layout of constant and texture buffers.
  3. // We don't care in what order they get printed
  4. // CHECK: int2 a; ; Offset: 0
  5. // CHECK: int b[2]; ; Offset: 16
  6. // CHECK: int2 c; ; Offset: 36
  7. // CHECK: int2 d; ; Offset: 48
  8. // CHECK: int e; ; Offset: 56
  9. // CHECK: Size: 60
  10. // CHECK: int2 a; ; Offset: 0
  11. // CHECK: int b[2]; ; Offset: 16
  12. // CHECK: int2 c; ; Offset: 36
  13. // CHECK: int2 d; ; Offset: 48
  14. // CHECK: int e; ; Offset: 56
  15. // CHECK: Size: 60
  16. // CHECK: int2 a; ; Offset: 0
  17. // CHECK: int b[2]; ; Offset: 16
  18. // CHECK: int2 c; ; Offset: 36
  19. // CHECK: int2 d; ; Offset: 48
  20. // CHECK: int e; ; Offset: 56
  21. // CHECK: Size: 60
  22. // CHECK: int2 a; ; Offset: 0
  23. // CHECK: int b[2]; ; Offset: 16
  24. // CHECK: int2 c; ; Offset: 36
  25. // CHECK: int2 d; ; Offset: 48
  26. // CHECK: int e; ; Offset: 56
  27. // CHECK: Size: 60
  28. struct Struct
  29. {
  30. int2 a;
  31. struct
  32. {
  33. int b[2]; // Each element is int4-aligned
  34. int2 c; // Fits in b[1].yz
  35. int2 d; // Doesn't fit in b[1].w-, so gets its own int4
  36. } s;
  37. int e; // Fits in d.z
  38. };
  39. cbuffer _cbl { Struct cbl; };
  40. ConstantBuffer<Struct> cb;
  41. tbuffer _tbl { Struct tbl; };
  42. TextureBuffer<Struct> tb;
  43. int main() : OUT
  44. {
  45. return cbl.e + cb.e + tbl.e + tb.e;
  46. }