|
|
@@ -124,10 +124,15 @@ RasterizerOpenGL::RasterizerOpenGL(Core::Frontend::EmuWindow& window, ScreenInfo
|
|
|
RasterizerOpenGL::~RasterizerOpenGL() {}
|
|
|
|
|
|
void RasterizerOpenGL::SetupVertexFormat() {
|
|
|
- MICROPROFILE_SCOPE(OpenGL_VAO);
|
|
|
- const auto& gpu = Core::System::GetInstance().GPU().Maxwell3D();
|
|
|
+ auto& gpu = Core::System::GetInstance().GPU().Maxwell3D();
|
|
|
const auto& regs = gpu.regs;
|
|
|
|
|
|
+ if (!gpu.dirty_flags.vertex_attrib_format)
|
|
|
+ return;
|
|
|
+ gpu.dirty_flags.vertex_attrib_format = false;
|
|
|
+
|
|
|
+ MICROPROFILE_SCOPE(OpenGL_VAO);
|
|
|
+
|
|
|
auto [iter, is_cache_miss] = vertex_array_cache.try_emplace(regs.vertex_attrib_format);
|
|
|
auto& VAO = iter->second;
|
|
|
|