450.vert 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #version 450 core
  2. out gl_PerVertex {
  3. float gl_CullDistance[3];
  4. };
  5. void main()
  6. {
  7. gl_CullDistance[2] = 4.5;
  8. }
  9. out bool outb; // ERROR
  10. out sampler2D outo; // ERROR
  11. out float outa[4];
  12. out float outaa[4][2];
  13. struct S { float f; };
  14. out S outs;
  15. out S[4] outasa;
  16. out S outsa[4];
  17. struct SA { float f[4]; };
  18. out SA outSA;
  19. struct SS { float f; S s; };
  20. out SS outSS;
  21. layout(binding = 0) uniform atomic_uint aui;
  22. uint ui;
  23. void foo()
  24. {
  25. SS::f;
  26. atomicCounterAdd(aui, ui); // ERROR, need 4.6
  27. atomicCounterSubtract(aui, ui); // ERROR, need 4.6
  28. atomicCounterMin(aui, ui); // ERROR, need 4.6
  29. atomicCounterMax(aui, ui); // ERROR, need 4.6
  30. atomicCounterAnd(aui, ui); // ERROR, need 4.6
  31. atomicCounterOr(aui, ui); // ERROR, need 4.6
  32. atomicCounterXor(aui, ui); // ERROR, need 4.6
  33. atomicCounterExchange(aui, ui); // ERROR, need 4.6
  34. atomicCounterCompSwap(aui, ui, ui); // ERROR, need 4.6
  35. int a = gl_BaseVertex + gl_BaseInstance + gl_DrawID; // ERROR, need 4.6
  36. bool b1;
  37. anyInvocation(b1); // ERROR, need 4.6
  38. allInvocations(b1); // ERROR, need 4.6
  39. allInvocationsEqual(b1); // ERROR, need 4.6
  40. }
  41. ; // ERROR: no extraneous semicolons
  42. layout(location = 0) uniform locBlock { // ERROR, no location uniform block
  43. int a;
  44. };
  45. layout(location = 0) buffer locBuffBlock { // ERROR, no location on buffer block
  46. int b;
  47. };