spv.scalarlayout.frag 911 B

123456789101112131415161718192021222324252627282930313233
  1. #version 450 core
  2. #extension GL_EXT_scalar_block_layout : enable
  3. // Block memory layout
  4. struct S
  5. {
  6. float a; // offset 0
  7. vec2 b; // offset 4
  8. double c; // offset 16
  9. float d; // offset 24
  10. vec3 e; // offset 28
  11. float f; // offset 40
  12. // size = 44, align = 8
  13. };
  14. layout(column_major, scalar) uniform B1
  15. {
  16. float a; // offset = 0
  17. vec2 b; // offset = 4
  18. vec3 c; // offset = 12
  19. float d[2]; // offset = 24
  20. mat2x3 e; // offset = 32, takes 24 bytes, matrixstride = 12
  21. mat2x3 f[2]; // offset = 56, takes 48 bytes, matrixstride = 12, arraystride = 24
  22. float g; // offset = 104
  23. S h; // offset = 112 (aligned to multiple of 8)
  24. S i[2]; // offset = 160 (aligned to multiple of 8) stride = 48
  25. };
  26. void main()
  27. {
  28. }