diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index ce27833442..150e70f42f 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -250,7 +250,9 @@ void GLGSRender::end() if (rsx::method_registers.fragment_textures[i].enabled()) { *sampler_state = m_gl_texture_cache.upload_texture(unused, rsx::method_registers.fragment_textures[i], m_rtts); - m_gl_sampler_states[i].apply(rsx::method_registers.fragment_textures[i]); + + if (m_textures_dirty[i]) + m_gl_sampler_states[i].apply(rsx::method_registers.fragment_textures[i]); } else { diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 4881d523f0..6d55de692e 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -1101,7 +1101,7 @@ void VKGSRender::end() mip_mode = VK_SAMPLER_MIPMAP_MODE_NEAREST; } - if (fs_sampler_handles[i]) + if (fs_sampler_handles[i] && m_textures_dirty[i]) { if (!fs_sampler_handles[i]->matches(wrap_s, wrap_t, wrap_r, false, lod_bias, af_level, min_lod, max_lod, min_filter, mag_filter, mip_mode, border_color, fs_sampler_state[i]->is_depth_texture, depth_compare))