diff --git a/rpcs3/Emu/RSX/Common/bitfield.hpp b/rpcs3/Emu/RSX/Common/bitfield.hpp index d3c1f9d2ca..35906909d2 100644 --- a/rpcs3/Emu/RSX/Common/bitfield.hpp +++ b/rpcs3/Emu/RSX/Common/bitfield.hpp @@ -107,6 +107,11 @@ namespace rsx public: bitmask_t() = default; + bitmask_type load() const + { + return m_data; + } + bool operator & (bitmask_type mask) const { return !!(m_data & mask); diff --git a/rpcs3/Emu/RSX/GL/GLDraw.cpp b/rpcs3/Emu/RSX/GL/GLDraw.cpp index 31eb2c80b0..360c252a83 100644 --- a/rpcs3/Emu/RSX/GL/GLDraw.cpp +++ b/rpcs3/Emu/RSX/GL/GLDraw.cpp @@ -649,7 +649,7 @@ void GLGSRender::emit_geometry(u32 sub_index) void GLGSRender::begin() { // Save shader state now before prefetch and loading happens - m_interpreter_state = (m_graphics_state & rsx::pipeline_state::invalidate_pipeline_bits); + m_interpreter_state = (m_graphics_state.load() & rsx::pipeline_state::invalidate_pipeline_bits); rsx::thread::begin(); diff --git a/rpcs3/Emu/RSX/VK/VKDraw.cpp b/rpcs3/Emu/RSX/VK/VKDraw.cpp index bca96c887d..3b9c11fb19 100644 --- a/rpcs3/Emu/RSX/VK/VKDraw.cpp +++ b/rpcs3/Emu/RSX/VK/VKDraw.cpp @@ -923,7 +923,7 @@ void VKGSRender::emit_geometry(u32 sub_index) void VKGSRender::begin() { // Save shader state now before prefetch and loading happens - m_interpreter_state = (m_graphics_state & rsx::pipeline_state::invalidate_pipeline_bits); + m_interpreter_state = (m_graphics_state.load() & rsx::pipeline_state::invalidate_pipeline_bits); rsx::thread::begin();