1
0
Fork 0
forked from suyu/suyu

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

This commit is contained in:
Fernando Sahmkow 2021-11-20 06:17:01 +01:00
parent 0857f82913
commit 4ca6e9a9e2
3 changed files with 6 additions and 6 deletions

View file

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

View file

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

View file

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