mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-10-07 14:26:36 +00:00
Address turnip bug with depths
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#version 450
|
#version 450
|
||||||
|
|
||||||
precision mediump int;
|
|
||||||
precision highp float;
|
|
||||||
|
|
||||||
layout(binding = 0) uniform sampler2D depth_tex;
|
layout(binding = 0) uniform sampler2D depth_tex;
|
||||||
layout(binding = 1) uniform usampler2D stencil_tex;
|
layout(binding = 1) uniform usampler2D stencil_tex;
|
||||||
|
|
||||||
@@ -13,10 +13,10 @@ layout(location = 0) out vec4 color;
|
|||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
ivec2 coord = ivec2(gl_FragCoord.xy);
|
ivec2 coord = ivec2(gl_FragCoord.xy);
|
||||||
highp uint depth_val =
|
uint depth_val =
|
||||||
uint(textureLod(depth_tex, coord, 0).r * (exp2(32.0) - 1.0));
|
uint(roundEven(clamp(textureLod(depth_tex, coord, 0).r, 0.0, 1.0) * (exp2(24.0) - 1.0)));
|
||||||
lowp uint stencil_val = textureLod(stencil_tex, coord, 0).r;
|
uint stencil_val = textureLod(stencil_tex, coord, 0).r;
|
||||||
highp uvec4 components =
|
uvec4 components =
|
||||||
uvec4(stencil_val, (uvec3(depth_val) >> uvec3(24u, 16u, 8u)) & 0x000000FFu);
|
uvec4(stencil_val, (uvec3(depth_val) >> uvec3(16u, 8u, 0u)) & 0x000000FFu);
|
||||||
color.abgr = vec4(components) / (exp2(8.0) - 1.0);
|
color.abgr = vec4(components) / (exp2(8.0) - 1.0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#version 450
|
#version 450
|
||||||
|
|
||||||
precision mediump int;
|
|
||||||
precision highp float;
|
|
||||||
|
|
||||||
layout(binding = 0) uniform sampler2D depth_tex;
|
layout(binding = 0) uniform sampler2D depth_tex;
|
||||||
layout(binding = 1) uniform usampler2D stencil_tex;
|
layout(binding = 1) uniform usampler2D stencil_tex;
|
||||||
|
|
||||||
@@ -13,10 +13,10 @@ layout(location = 0) out vec4 color;
|
|||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
ivec2 coord = ivec2(gl_FragCoord.xy);
|
ivec2 coord = ivec2(gl_FragCoord.xy);
|
||||||
highp uint depth_val =
|
uint depth_val =
|
||||||
uint(textureLod(depth_tex, coord, 0).r * (exp2(32.0) - 1.0));
|
uint(roundEven(clamp(textureLod(depth_tex, coord, 0).r, 0.0, 1.0) * (exp2(24.0) - 1.0)));
|
||||||
lowp uint stencil_val = textureLod(stencil_tex, coord, 0).r;
|
uint stencil_val = textureLod(stencil_tex, coord, 0).r;
|
||||||
highp uvec4 components =
|
uvec4 components =
|
||||||
uvec4((uvec3(depth_val) >> uvec3(24u, 16u, 8u)) & 0x000000FFu, stencil_val);
|
uvec4((uvec3(depth_val) >> uvec3(16u, 8u, 0u)) & 0x000000FFu, stencil_val);
|
||||||
color.rgba = vec4(components) / (exp2(8.0) - 1.0);
|
color.rgba = vec4(components) / (exp2(8.0) - 1.0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user