diff --git a/rpcs3/Emu/RSX/Common/TextureUtils.cpp b/rpcs3/Emu/RSX/Common/TextureUtils.cpp index 4c92f18aaa..937508035b 100644 --- a/rpcs3/Emu/RSX/Common/TextureUtils.cpp +++ b/rpcs3/Emu/RSX/Common/TextureUtils.cpp @@ -854,7 +854,8 @@ namespace rsx bool texture_format_ex::hw_SRGB_possible() const { - return (texel_remap_control & GAMMA_CTRL_MASK) == GAMMA_RGB_MASK; + return encoded_remap == RSX_TEXTURE_REMAP_IDENTITY && + (texel_remap_control & GAMMA_CTRL_MASK) == GAMMA_RGB_MASK; } std::vector get_subresources_layout(const rsx::fragment_texture& texture) diff --git a/rpcs3/Emu/RSX/Common/TextureUtils.h b/rpcs3/Emu/RSX/Common/TextureUtils.h index eb64410418..31f43432dc 100644 --- a/rpcs3/Emu/RSX/Common/TextureUtils.h +++ b/rpcs3/Emu/RSX/Common/TextureUtils.h @@ -165,12 +165,14 @@ namespace rsx { return this->format_bits == that.format_bits && this->features == that.features && - this->host_features == that.host_features; + this->host_features == that.host_features && + this->encoded_remap == that.encoded_remap; } //private: u32 format_bits = 0; u32 features = 0; + u32 encoded_remap = 0; u32 texel_remap_control = 0; u32 host_features = 0; }; diff --git a/rpcs3/Emu/RSX/RSXTexture.cpp b/rpcs3/Emu/RSX/RSXTexture.cpp index 071a1c8a78..0d18cf0cd3 100644 --- a/rpcs3/Emu/RSX/RSXTexture.cpp +++ b/rpcs3/Emu/RSX/RSXTexture.cpp @@ -121,6 +121,7 @@ namespace rsx texture_format_ex result { format_bits }; result.features = format_features; result.texel_remap_control = format_convert; + result.encoded_remap = remap(); return result; }