Skip to content

Commit f7ef43b

Browse files
GS/HW: Match TEXA behavior on shuffles between renderers.
1 parent 2821290 commit f7ef43b

4 files changed

Lines changed: 4 additions & 13 deletions

File tree

bin/resources/shaders/dx11/tfx.fx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1375,10 +1375,7 @@ PS_OUTPUT ps_main(PS_INPUT input)
13751375
uint4 denorm_c = uint4(C);
13761376
uint2 denorm_TA = uint2(float2(TA.xy) * 255.0f + 0.5f);
13771377
C.rb = (float2)float((denorm_c.r >> 3) | (((denorm_c.g >> 3) & 0x7u) << 5));
1378-
if (denorm_c.a & 0x80u)
1379-
C.ga = (float2)float((denorm_c.g >> 6) | ((denorm_c.b >> 3) << 2) | (denorm_TA.y & 0x80u));
1380-
else
1381-
C.ga = (float2)float((denorm_c.g >> 6) | ((denorm_c.b >> 3) << 2) | (denorm_TA.x & 0x80u));
1378+
C.ga = (float2)float((denorm_c.g >> 6) | ((denorm_c.b >> 3) << 2) | (denorm_TA.x & 0x80u));
13821379
}
13831380
else if (PS_SHUFFLE_ACROSS)
13841381
{

bin/resources/shaders/opengl/tfx_fs.glsl

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1323,10 +1323,7 @@ void ps_main()
13231323
uvec2 denorm_TA = uvec2(vec2(TA.xy) * 255.0f + 0.5f);
13241324

13251325
C.rb = vec2(float((denorm_c.r >> 3) | (((denorm_c.g >> 3) & 0x7u) << 5)));
1326-
if (bool(denorm_c.a & 0x80u))
1327-
C.ga = vec2(float((denorm_c.g >> 6) | ((denorm_c.b >> 3) << 2) | (denorm_TA.y & 0x80u)));
1328-
else
1329-
C.ga = vec2(float((denorm_c.g >> 6) | ((denorm_c.b >> 3) << 2) | (denorm_TA.x & 0x80u)));
1326+
C.ga = vec2(float((denorm_c.g >> 6) | ((denorm_c.b >> 3) << 2) | (denorm_TA.x & 0x80u)));
13301327
#elif PS_SHUFFLE_ACROSS
13311328
#if(PS_PROCESS_BA == SHUFFLE_READWRITE && PS_PROCESS_RG == SHUFFLE_READWRITE)
13321329
C.br = C.rb;

pcsx2/GS/Renderers/Metal/tfx.metal

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1431,10 +1431,7 @@ struct PSMain
14311431
uint2 denorm_TA = uint2(cb.ta * 255.5f);
14321432

14331433
C.rb = (denorm_c.r >> 3) | (((denorm_c.g >> 3) & 0x7) << 5);
1434-
if (denorm_c.a & 0x80)
1435-
C.ga = (denorm_c.g >> 6) | ((denorm_c.b >> 3) << 2) | (denorm_TA.y & 0x80);
1436-
else
1437-
C.ga = (denorm_c.g >> 6) | ((denorm_c.b >> 3) << 2) | (denorm_TA.x & 0x80);
1434+
C.ga = (denorm_c.g >> 6) | ((denorm_c.b >> 3) << 2) | (denorm_TA.x & 0x80);
14381435
}
14391436
else if (PS_SHUFFLE_ACROSS)
14401437
{

pcsx2/ShaderCacheVersion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33

44
/// Version number for GS and other shaders. Increment whenever any of the contents of the
55
/// shaders change, to invalidate the cache.
6-
static constexpr u32 SHADER_CACHE_VERSION = 89; // Last changed in PR 14188
6+
static constexpr u32 SHADER_CACHE_VERSION = 90; // Last changed in PR 14349

0 commit comments

Comments
 (0)