From 87ff58b1d713df6f4c292e56d1af20c0bfb9598f Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Wed, 30 Dec 2020 02:02:07 -0300 Subject: host_shaders: Add helper to blit depth stencil fragment shader --- src/video_core/host_shaders/CMakeLists.txt | 1 + .../host_shaders/vulkan_blit_depth_stencil.frag | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 src/video_core/host_shaders/vulkan_blit_depth_stencil.frag diff --git a/src/video_core/host_shaders/CMakeLists.txt b/src/video_core/host_shaders/CMakeLists.txt index 5b24f9866..7059c2d2a 100644 --- a/src/video_core/host_shaders/CMakeLists.txt +++ b/src/video_core/host_shaders/CMakeLists.txt @@ -9,6 +9,7 @@ set(SHADER_FILES opengl_present.vert pitch_unswizzle.comp vulkan_blit_color_float.frag + vulkan_blit_depth_stencil.frag vulkan_present.frag vulkan_present.vert ) diff --git a/src/video_core/host_shaders/vulkan_blit_depth_stencil.frag b/src/video_core/host_shaders/vulkan_blit_depth_stencil.frag new file mode 100644 index 000000000..19bb23a5a --- /dev/null +++ b/src/video_core/host_shaders/vulkan_blit_depth_stencil.frag @@ -0,0 +1,16 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#version 450 +#extension GL_ARB_shader_stencil_export : require + +layout(binding = 0) uniform sampler2D depth_tex; +layout(binding = 1) uniform isampler2D stencil_tex; + +layout(location = 0) in vec2 texcoord; + +void main() { + gl_FragDepth = textureLod(depth_tex, texcoord, 0).r; + gl_FragStencilRefARB = textureLod(stencil_tex, texcoord, 0).r; +} -- cgit v1.2.3