Browse Source

TextureCache: Assure full conversions on depth/stencil write shaders.

pull/15/merge
Fernando Sahmkow 4 years ago
parent
commit
4ca6e9a9e2
  1. 4
      src/video_core/host_shaders/convert_abgr8_to_d24s8.frag
  2. 4
      src/video_core/host_shaders/convert_b10g11r11_to_d24s8.frag
  3. 4
      src/video_core/host_shaders/convert_r16g16_to_d24s8.frag

4
src/video_core/host_shaders/convert_abgr8_to_d24s8.frag

@ -3,7 +3,7 @@
// Refer to the license.txt file included.
#version 450
// #extension GL_ARB_shader_stencil_export : require
#extension GL_ARB_shader_stencil_export : require
layout(binding = 0) uniform sampler2D color_texture;
@ -13,5 +13,5 @@ void main() {
uint depth_unorm = (color.r << 16) | (color.g << 8) | color.b;
gl_FragDepth = float(depth_unorm) / (exp2(24.0) - 1.0f);
// gl_FragStencilRefARB = int(color.a);
gl_FragStencilRefARB = int(color.a);
}

4
src/video_core/host_shaders/convert_b10g11r11_to_d24s8.frag

@ -3,7 +3,7 @@
// Refer to the license.txt file included.
#version 450
// #extension GL_ARB_shader_stencil_export : require
#extension GL_ARB_shader_stencil_export : require
layout(binding = 0) uniform sampler2D color_texture;
@ -15,5 +15,5 @@ void main() {
| (uint(color.r * (exp2(11) - 1.0f)));
gl_FragDepth = float(depth_stencil_unorm >> 8) / (exp2(24.0) - 1.0f);
// gl_FragStencilRefARB = int(depth_stencil_unorm & 0x00FF);
gl_FragStencilRefARB = int(depth_stencil_unorm & 0x00FF);
}

4
src/video_core/host_shaders/convert_r16g16_to_d24s8.frag

@ -3,7 +3,7 @@
// Refer to the license.txt file included.
#version 450
// #extension GL_ARB_shader_stencil_export : require
#extension GL_ARB_shader_stencil_export : require
layout(binding = 0) uniform sampler2D color_texture;
@ -14,5 +14,5 @@ void main() {
| (uint(color.g * (exp2(16) - 1.0f)) << 16);
gl_FragDepth = float(depth_stencil_unorm >> 8) / (exp2(24.0) - 1.0f);
// gl_FragStencilRefARB = int(depth_stencil_unorm & 0x00FF);
gl_FragStencilRefARB = int(depth_stencil_unorm & 0x00FF);
}
Loading…
Cancel
Save