cbufferAlloc.hlsl 963 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // RUN: %dxc -E main -T ps_6_0 -not_use_legacy_cbuf_load %s | FileCheck %s
  2. // CHECK: cbufferLoad
  3. // CHECK: i32 0
  4. // CHECK: cbufferLoad
  5. // CHECK: i32 4
  6. // CHECK: cbufferLoad
  7. // CHECK: i32 0
  8. // CHECK: cbufferLoad
  9. // CHECK: i32 4
  10. // CHECK: cbufferLoad
  11. // CHECK: i32 128
  12. // CHECK: cbufferLoad
  13. // CHECK: i32 240
  14. // CHECK: cbufferLoad
  15. // CHECK: i32 352
  16. // CHECK: cbufferLoad
  17. // CHECK: i32 144
  18. // CHECK: cbufferLoad
  19. // CHECK: i32 224
  20. struct ST {
  21. float4 a;
  22. float4 b;
  23. };
  24. struct cc {
  25. float2 cc1;
  26. float cc2;
  27. };
  28. cbuffer T {
  29. float2 t;
  30. cc cc0;
  31. row_major float1x2 f12;
  32. // Will change to ca[24].
  33. float ca[2][3][4];
  34. };
  35. cbuffer T2 {
  36. float2 t2;
  37. float2x1 f21;
  38. };
  39. struct M1 {
  40. float1x2 f12;
  41. };
  42. struct M2 {
  43. row_major float1x2 f12;
  44. };
  45. float1x2 m1[2];
  46. row_major float1x2 m2[2];
  47. cc c ;
  48. float m : register(c8);
  49. float4 main() : SV_TARGET
  50. {
  51. float4 t3 = float4(t, t2);
  52. return t3 + m + c.cc1.x + ca[1][1][3] + m1[0][0][0] + m2[1][0][0];
  53. }