vk.layout.cbuffer.packoffset.hlsl 1.1 KB

1234567891011121314151617181920212223242526272829
  1. // Run: %dxc -T vs_6_0 -E main
  2. // CHECK: OpMemberDecorate %type_MyCBuffer 0 Offset 0
  3. // CHECK: OpMemberDecorate %type_MyCBuffer 1 Offset 32
  4. // CHECK: OpMemberDecorate %type_MyCBuffer 2 Offset 52
  5. // CHECK: OpMemberDecorate %type_MyCBuffer 3 Offset 56
  6. // CHECK: OpMemberDecorate %type_MyCBuffer 4 Offset 60
  7. // CHECK: OpMemberDecorate %type_MyCBuffer 5 Offset 1600
  8. // CHECK: OpMemberDecorate %type_MyCBuffer 6 Offset 1760
  9. // CHECK: OpMemberDecorate %type_MyCBuffer 7 Offset 2400
  10. struct S {
  11. float4 f;
  12. };
  13. cbuffer MyCBuffer { // Offset
  14. float4 data1; // 0
  15. float4 data2 : packoffset(c2); // 2 * 16 = 32
  16. float data3 : packoffset(c3.y); // 3 * 16 + 1 * 4 = 52
  17. float data4 : packoffset(c3.z); // 3 * 16 + 2 * 4 = 56
  18. float data5; // 60
  19. float4 data6 : packoffset(c100); // 100 * 16 = 1600
  20. float2x3 data7 : packoffset(c110); // 110 * 16 = 1760
  21. S data8 : packoffset(c150); // 150 * 16 = 2400
  22. }
  23. float4 main() : A {
  24. return data1;
  25. }