summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/examples/37-gpudrivenrendering/cs_gdr_copy_z.sc
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/examples/37-gpudrivenrendering/cs_gdr_copy_z.sc')
-rw-r--r--3rdparty/bgfx/examples/37-gpudrivenrendering/cs_gdr_copy_z.sc26
1 files changed, 26 insertions, 0 deletions
diff --git a/3rdparty/bgfx/examples/37-gpudrivenrendering/cs_gdr_copy_z.sc b/3rdparty/bgfx/examples/37-gpudrivenrendering/cs_gdr_copy_z.sc
new file mode 100644
index 00000000000..b6365bdc614
--- /dev/null
+++ b/3rdparty/bgfx/examples/37-gpudrivenrendering/cs_gdr_copy_z.sc
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2018 Kostas Anagnostou. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ */
+
+#include "bgfx_compute.sh"
+
+SAMPLER2D(s_texOcclusionDepth, 0);
+IMAGE2D_WR(s_texOcclusionDepthOut, r32f, 1);
+
+uniform vec4 u_inputRTSize;
+
+NUM_THREADS(16, 16, 1)
+void main()
+{
+ // this shader can be used to both copy a mip over to the output and downscale it.
+
+ ivec2 coord = ivec2(gl_GlobalInvocationID.xy);
+
+ if (all(lessThan(coord.xy, u_inputRTSize.xy) ) )
+ {
+ float maxDepth = texelFetch(s_texOcclusionDepth, coord.xy, 0).x;
+
+ imageStore(s_texOcclusionDepthOut, coord, vec4(maxDepth,0,0,1) );
+ }
+}