spv.16bitstorage.frag 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #version 450 core
  2. #extension GL_EXT_shader_16bit_storage : enable
  3. struct S
  4. {
  5. float16_t x;
  6. f16vec2 y;
  7. f16vec3 z;
  8. };
  9. layout(column_major, std140) uniform B1
  10. {
  11. float16_t a;
  12. f16vec2 b;
  13. f16vec3 c;
  14. float16_t d[2];
  15. S g;
  16. S h[2];
  17. int j;
  18. } b1;
  19. layout(row_major, std430) buffer B2
  20. {
  21. float16_t o;
  22. f16vec2 p;
  23. f16vec3 q;
  24. float16_t r[2];
  25. S u;
  26. S v[2];
  27. f16vec2 x[100];
  28. float16_t w[];
  29. } b2;
  30. layout(row_major, std140) uniform B5
  31. {
  32. float16_t o;
  33. f16vec2 p;
  34. f16vec3 q;
  35. float16_t r[2];
  36. S u;
  37. S v[2];
  38. f16vec2 x[100];
  39. float16_t w[100];
  40. } b5;
  41. struct S2 {
  42. mat4x4 x;
  43. float16_t y;
  44. float 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 = f16vec2(vec3(b2.q).xy);
  62. b2.p = f16vec2(vec3(b5.q).xy);
  63. b2.r[0] = b2.r[0];
  64. b2.r[1] = b5.r[1];
  65. b2.p = b2.p;
  66. float x0 = float(b1.a);
  67. vec4 x1 = vec4(b1.a, b2.p, 1.0);
  68. b4.x.x = b3.x.x;
  69. b2.o = float16_t(vec2(b2.p).x);
  70. b2.p = b2.v[1].y;
  71. vec3 v3 = vec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]);
  72. vec3 u3 = vec3(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 = f16vec2(vec2(1.0, 2.0));
  78. b2.o = float16_t(3.0);
  79. }