From 87ff58b1d713df6f4c292e56d1af20c0bfb9598f Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Wed, 30 Dec 2020 02:02:07 -0300
Subject: [PATCH] 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;
+}