From f40f65f5d2123c79ffa4c8587d20dada624b5047 Mon Sep 17 00:00:00 2001 From: Squall-Leonhart Date: Mon, 16 Oct 2023 03:17:53 +1100 Subject: Another missing copy connected to Bravely Default II adds blit_image_helper.ConvertABGR8ToD32F and fragment shader for performing ABGR and BGRA to D32F copies --- src/video_core/host_shaders/convert_abgr8_to_d32f.frag | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/video_core/host_shaders/convert_abgr8_to_d32f.frag (limited to 'src/video_core/host_shaders/convert_abgr8_to_d32f.frag') diff --git a/src/video_core/host_shaders/convert_abgr8_to_d32f.frag b/src/video_core/host_shaders/convert_abgr8_to_d32f.frag new file mode 100644 index 000000000..a1880b916 --- /dev/null +++ b/src/video_core/host_shaders/convert_abgr8_to_d32f.frag @@ -0,0 +1,18 @@ +// SPDX-FileCopyrightText: Copyright 2023 Your Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#version 450 + +layout(binding = 0) uniform sampler2D color_texture; + +void main() { + ivec2 coord = ivec2(gl_FragCoord.xy); + vec4 color = texelFetch(color_texture, coord, 0).abgr; + + uvec4 bytes = uvec4(color * (exp2(8) - 1.0f)) << uvec4(24, 16, 8, 0); + uint depth_unorm = bytes.x | bytes.y | bytes.z | bytes.w; + + float depth_float = uintBitsToFloat(depth_unorm); + + gl_FragDepth = depth_float; +} -- cgit v1.2.3