diff --git a/src/dxvk/shaders/dxvk_copy_color_1d.frag b/src/dxvk/shaders/dxvk_copy_color_1d.frag new file mode 100644 index 000000000..76e83dac3 --- /dev/null +++ b/src/dxvk/shaders/dxvk_copy_color_1d.frag @@ -0,0 +1,16 @@ +#version 450 + +layout(set = 0, binding = 0) +uniform sampler1DArray s_image; + +layout(location = 0) out vec4 o_color; + +layout(push_constant) +uniform u_info_t { + ivec2 offset; +} u_info; + +void main() { + o_color = texelFetch(s_image, + ivec2(gl_FragCoord.x + u_info.offset.x, gl_Layer), 0); +} \ No newline at end of file diff --git a/src/dxvk/shaders/dxvk_copy_color_2d.frag b/src/dxvk/shaders/dxvk_copy_color_2d.frag new file mode 100644 index 000000000..db76c2483 --- /dev/null +++ b/src/dxvk/shaders/dxvk_copy_color_2d.frag @@ -0,0 +1,16 @@ +#version 450 + +layout(set = 0, binding = 0) +uniform sampler2DArray s_image; + +layout(location = 0) out vec4 o_color; + +layout(push_constant) +uniform u_info_t { + ivec2 offset; +} u_info; + +void main() { + o_color = texelFetch(s_image, + ivec3(gl_FragCoord.xy + u_info.offset, gl_Layer), 0); +} \ No newline at end of file diff --git a/src/dxvk/shaders/dxvk_copy_color_ms.frag b/src/dxvk/shaders/dxvk_copy_color_ms.frag new file mode 100644 index 000000000..61b81241d --- /dev/null +++ b/src/dxvk/shaders/dxvk_copy_color_ms.frag @@ -0,0 +1,17 @@ +#version 450 + +layout(set = 0, binding = 0) +uniform sampler2DMSArray s_image; + +layout(location = 0) out vec4 o_color; + +layout(push_constant) +uniform u_info_t { + ivec2 offset; +} u_info; + +void main() { + o_color = texelFetch(s_image, + ivec3(gl_FragCoord.xy + u_info.offset, gl_Layer), + gl_SampleID); +} \ No newline at end of file diff --git a/src/dxvk/shaders/dxvk_copy_depth_1d.frag b/src/dxvk/shaders/dxvk_copy_depth_1d.frag new file mode 100644 index 000000000..7150db10d --- /dev/null +++ b/src/dxvk/shaders/dxvk_copy_depth_1d.frag @@ -0,0 +1,14 @@ +#version 450 + +layout(set = 0, binding = 0) +uniform sampler1DArray s_image; + +layout(push_constant) +uniform u_info_t { + ivec2 offset; +} u_info; + +void main() { + gl_FragDepth = texelFetch(s_image, + ivec2(gl_FragCoord.x + u_info.offset.x, gl_Layer), 0).r; +} \ No newline at end of file diff --git a/src/dxvk/shaders/dxvk_copy_depth_2d.frag b/src/dxvk/shaders/dxvk_copy_depth_2d.frag new file mode 100644 index 000000000..a5eaf4e93 --- /dev/null +++ b/src/dxvk/shaders/dxvk_copy_depth_2d.frag @@ -0,0 +1,14 @@ +#version 450 + +layout(set = 0, binding = 0) +uniform sampler2DArray s_image; + +layout(push_constant) +uniform u_info_t { + ivec2 offset; +} u_info; + +void main() { + gl_FragDepth = texelFetch(s_image, + ivec3(gl_FragCoord.xy + u_info.offset, gl_Layer), 0).r; +} \ No newline at end of file diff --git a/src/dxvk/shaders/dxvk_copy_depth_ms.frag b/src/dxvk/shaders/dxvk_copy_depth_ms.frag new file mode 100644 index 000000000..4264c0387 --- /dev/null +++ b/src/dxvk/shaders/dxvk_copy_depth_ms.frag @@ -0,0 +1,15 @@ +#version 450 + +layout(set = 0, binding = 0) +uniform sampler2DMSArray s_image; + +layout(push_constant) +uniform u_info_t { + ivec2 offset; +} u_info; + +void main() { + gl_FragDepth = texelFetch(s_image, + ivec3(gl_FragCoord.xy + u_info.offset, gl_Layer), + gl_SampleID).r; +} \ No newline at end of file