diff options
author | Fernando S <fsahmkow27@gmail.com> | 2021-11-28 12:16:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-28 12:16:31 +0100 |
commit | 3031223153d2b11d089acf5c50718372b5c24b6b (patch) | |
tree | cc459170f6a363e3e25a9bcf9d95316ec66093f7 /src/video_core/host_shaders/convert_d24s8_to_abgr8.frag | |
parent | Merge pull request #7438 from german77/homebrew2 (diff) | |
parent | Texture Cache: Secure insertions against deletions. (diff) | |
download | yuzu-3031223153d2b11d089acf5c50718372b5c24b6b.tar yuzu-3031223153d2b11d089acf5c50718372b5c24b6b.tar.gz yuzu-3031223153d2b11d089acf5c50718372b5c24b6b.tar.bz2 yuzu-3031223153d2b11d089acf5c50718372b5c24b6b.tar.lz yuzu-3031223153d2b11d089acf5c50718372b5c24b6b.tar.xz yuzu-3031223153d2b11d089acf5c50718372b5c24b6b.tar.zst yuzu-3031223153d2b11d089acf5c50718372b5c24b6b.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/host_shaders/convert_d24s8_to_abgr8.frag | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/video_core/host_shaders/convert_d24s8_to_abgr8.frag b/src/video_core/host_shaders/convert_d24s8_to_abgr8.frag index ff3bf8209..94368fb59 100644 --- a/src/video_core/host_shaders/convert_d24s8_to_abgr8.frag +++ b/src/video_core/host_shaders/convert_d24s8_to_abgr8.frag @@ -14,8 +14,10 @@ void main() { uint depth = uint(textureLod(depth_tex, coord, 0).r * (exp2(24.0) - 1.0f)); uint stencil = uint(textureLod(stencil_tex, coord, 0).r); - color.r = float(depth >> 16) / (exp2(8) - 1.0); - color.g = float((depth >> 8) & 0x00FF) / (exp2(8) - 1.0); - color.b = float(depth & 0x00FF) / (exp2(8) - 1.0); - color.a = float(stencil) / (exp2(8) - 1.0); + highp uint depth_val = + uint(textureLod(depth_tex, coord, 0).r * (exp2(32.0) - 1.0)); + lowp uint stencil_val = textureLod(stencil_tex, coord, 0).r; + highp uvec4 components = + uvec4(stencil_val, (uvec3(depth_val) >> uvec3(24u, 16u, 8u)) & 0x000000FFu); + color.abgr = vec4(components) / (exp2(8.0) - 1.0); } |