فهرست منبع

host_shaders: Add helper to blit depth stencil fragment shader

ReinUsesLisp 5 سال پیش
والد
کامیت
87ff58b1d7
2فایلهای تغییر یافته به همراه17 افزوده شده و 0 حذف شده
  1. 1 0
      src/video_core/host_shaders/CMakeLists.txt
  2. 16 0
      src/video_core/host_shaders/vulkan_blit_depth_stencil.frag

+ 1 - 0
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
 )

+ 16 - 0
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;
+}