summaryrefslogtreecommitdiff
path: root/src/video_core/host_shaders
diff options
context:
space:
mode:
authorGravatar ameerj2021-06-15 20:16:16 -0400
committerGravatar ameerj2021-06-15 20:19:01 -0400
commit5fc8393125ef0084491b7acaec13e62fe593adf1 (patch)
tree160ed78eb6e0df36e8462e4982b4eaa7ce9d66b1 /src/video_core/host_shaders
parentyuzu_cmd/config: Add Accelerate ASTC and missing NVDEC emulation settings (diff)
downloadyuzu-5fc8393125ef0084491b7acaec13e62fe593adf1.tar.gz
yuzu-5fc8393125ef0084491b7acaec13e62fe593adf1.tar.xz
yuzu-5fc8393125ef0084491b7acaec13e62fe593adf1.zip
astc_decoder: Fix LDR CEM1 endpoint calculation
Per the spec, L1 is clamped to the value 0xff if it is greater than 0xff. An oversight caused us to take the maximum of L1 and 0xff, rather than the minimum. Huge thanks to wwylele for finding this. Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
Diffstat (limited to 'src/video_core/host_shaders')
-rw-r--r--src/video_core/host_shaders/astc_decoder.comp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/video_core/host_shaders/astc_decoder.comp b/src/video_core/host_shaders/astc_decoder.comp
index 703e34587..eaba1b103 100644
--- a/src/video_core/host_shaders/astc_decoder.comp
+++ b/src/video_core/host_shaders/astc_decoder.comp
@@ -763,7 +763,7 @@ void ComputeEndpoints(out uvec4 ep1, out uvec4 ep2, uint color_endpoint_mode) {
763 case 1: { 763 case 1: {
764 READ_UINT_VALUES(2) 764 READ_UINT_VALUES(2)
765 uint L0 = (v[0] >> 2) | (v[1] & 0xC0); 765 uint L0 = (v[0] >> 2) | (v[1] & 0xC0);
766 uint L1 = max(L0 + (v[1] & 0x3F), 0xFFU); 766 uint L1 = min(L0 + (v[1] & 0x3F), 0xFFU);
767 ep1 = uvec4(0xFF, L0, L0, L0); 767 ep1 = uvec4(0xFF, L0, L0, L0);
768 ep2 = uvec4(0xFF, L1, L1, L1); 768 ep2 = uvec4(0xFF, L1, L1, L1);
769 break; 769 break;