spv.multiStruct.comp 656 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #version 450 core
  2. struct MyStruct
  3. {
  4. vec2 foo[2];
  5. bool sb;
  6. };
  7. layout(binding = 0, std430) buffer SSBO0
  8. {
  9. MyStruct a;
  10. } inBuf;
  11. layout(binding = 1, std430) buffer SSBO1
  12. {
  13. MyStruct b;
  14. } outBuf;
  15. layout(binding = 2, std140) uniform UBO
  16. {
  17. MyStruct c;
  18. } uBuf;
  19. struct Nested {
  20. float f;
  21. MyStruct S[2];
  22. };
  23. layout(binding = 2, std140) uniform UBON
  24. {
  25. Nested N1;
  26. } uBufN;
  27. layout(binding = 1, std430) buffer SSBO1N
  28. {
  29. Nested N2;
  30. } outBufN;
  31. void main()
  32. {
  33. MyStruct t = inBuf.a;
  34. outBuf.b = t;
  35. t = uBuf.c;
  36. outBuf.b = t;
  37. Nested n = uBufN.N1;
  38. outBufN.N2 = n;
  39. }