fsr_sharpening.glsl 887 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #version 430 core
  2. precision mediump float;
  3. layout (local_size_x = 64) in;
  4. layout(rgba8, binding = 0, location=0) uniform image2D imgOutput;
  5. layout( location=1 ) uniform sampler2D source;
  6. layout( location=2 ) uniform float sharpening;
  7. #define A_GPU 1
  8. #define A_GLSL 1
  9. #include "ffx_a.h"
  10. #define FSR_RCAS_F 1
  11. AU4 con0;
  12. AF4 FsrRcasLoadF(ASU2 p) { return AF4(texelFetch(source, p, 0)); }
  13. void FsrRcasInputF(inout AF1 r, inout AF1 g, inout AF1 b) {}
  14. #include "ffx_fsr1.h"
  15. void CurrFilter(AU2 pos)
  16. {
  17. AF3 c;
  18. FsrRcasF(c.r, c.g, c.b, pos, con0);
  19. imageStore(imgOutput, ASU2(pos), AF4(c, 1));
  20. }
  21. void main() {
  22. FsrRcasCon(con0, sharpening);
  23. AU2 gxy = ARmp8x8(gl_LocalInvocationID.x) + AU2(gl_WorkGroupID.x << 4u, gl_WorkGroupID.y << 4u);
  24. CurrFilter(gxy);
  25. gxy.x += 8u;
  26. CurrFilter(gxy);
  27. gxy.y += 8u;
  28. CurrFilter(gxy);
  29. gxy.x -= 8u;
  30. CurrFilter(gxy);
  31. }