450.frag 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #version 450 core
  2. in float in1;
  3. in vec2 in2;
  4. in vec3 in3;
  5. in vec4 in4;
  6. void main()
  7. {
  8. vec2 v2 = dFdxFine(in2);
  9. vec3 v3 = dFdyCoarse(in3);
  10. vec4 v4 = fwidth(in4);
  11. v4 = dFdyFine(in4);
  12. v3 = dFdyFine(in3);
  13. float f = dFdx(in1) + dFdxFine(in1) + dFdxCoarse(in1);
  14. v4 = fwidthCoarse(in4) + fwidthFine(in4);
  15. float cull = gl_CullDistance[2];
  16. float consts = gl_MaxCullDistances + gl_MaxCombinedClipAndCullDistances + gl_MaxSamples;
  17. if (gl_HelperInvocation)
  18. ++v4;
  19. int sum = gl_MaxVertexImageUniforms +
  20. gl_MaxFragmentImageUniforms +
  21. gl_MaxComputeImageUniforms +
  22. gl_MaxCombinedImageUniforms +
  23. gl_MaxCombinedShaderOutputResources;
  24. bool b1, b3, b;
  25. uint uin;
  26. bvec2 b2 = mix(bvec2(b1), bvec2(b3), bvec2(b));
  27. uint um = mix(uin, uin, b);
  28. ivec3 im3 = mix(ivec3(uin), ivec3(uin), bvec3(b));
  29. }
  30. uniform sampler2DMS s2dms;
  31. uniform usampler2DMSArray us2dmsa;
  32. layout(rgba32i) uniform iimage2DMS ii2dms;
  33. layout(rgba32f) uniform image2DMSArray i2dmsa;
  34. void foo()
  35. {
  36. int s = textureSamples(s2dms);
  37. s += textureSamples(us2dmsa);
  38. s += imageSamples(ii2dms);
  39. s += imageSamples(i2dmsa);
  40. float f = imageAtomicExchange(i2dmsa, ivec3(in3), 2, 4.5);
  41. }
  42. in float gl_CullDistance[6];
  43. float cull(int i)
  44. {
  45. return (i >= 6) ? gl_CullDistance[5] : gl_CullDistance[i];
  46. }
  47. layout(location = 6) in bName1 {
  48. float f;
  49. layout(location = 7) float g;
  50. mat4 m;
  51. } bInst1;
  52. layout(location = 12) in bName2 {
  53. float f;
  54. layout(location = 13) float g; // ERROR, location on array
  55. } bInst2[3];
  56. layout(early_fragment_tests) in float f; // ERROR, must be standalone