spv.8bitstorage-uint.frag 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #version 450 core
  2. #extension GL_EXT_shader_8bit_storage : enable
  3. struct S
  4. {
  5. uint8_t x;
  6. u8vec2 y;
  7. u8vec3 z;
  8. };
  9. layout(column_major, std140) uniform B1
  10. {
  11. uint8_t a;
  12. u8vec2 b;
  13. u8vec3 c;
  14. uint8_t d[2];
  15. S g;
  16. S h[2];
  17. uint j;
  18. } b1;
  19. layout(row_major, std430) buffer B2
  20. {
  21. uint8_t o;
  22. u8vec2 p;
  23. u8vec3 q;
  24. uint8_t r[2];
  25. S u;
  26. S v[2];
  27. u8vec2 x[100];
  28. uint8_t w[];
  29. } b2;
  30. layout(row_major, std140) uniform B5
  31. {
  32. uint8_t o;
  33. u8vec2 p;
  34. u8vec3 q;
  35. uint8_t r[2];
  36. S u;
  37. S v[2];
  38. u8vec2 x[100];
  39. uint8_t w[100];
  40. } b5;
  41. struct S2 {
  42. mat4x4 x;
  43. uint8_t y;
  44. uint z;
  45. };
  46. struct S3 {
  47. S2 x;
  48. };
  49. layout(row_major, std430) buffer B3
  50. {
  51. S2 x;
  52. } b3;
  53. layout(column_major, std430) buffer B4
  54. {
  55. S2 x;
  56. S3 y;
  57. } b4;
  58. void main()
  59. {
  60. b2.o = b1.a;
  61. b2.p = u8vec2(uvec3(b2.q).xy);
  62. b2.p = u8vec2(uvec3(b5.q).xy);
  63. b2.r[0] = b2.r[0];
  64. b2.r[1] = b5.r[1];
  65. b2.p = b2.p;
  66. uint x0 = uint(b1.a);
  67. uvec4 x1 = uvec4(b1.a, b2.p, 1);
  68. b4.x.x = b3.x.x;
  69. b2.o = uint8_t(uvec2(b2.p).x);
  70. b2.p = b2.v[1].y;
  71. uvec3 v3 = uvec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]);
  72. uvec3 u3 = uvec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]);
  73. b2.x[0] = b2.x[0];
  74. b2.x[1] = b5.x[1];
  75. b2.p.x = b1.a;
  76. b2.o = b2.p.x;
  77. b2.p = u8vec2(uvec2(1, 2));
  78. b2.o = uint8_t(3u);
  79. }