From e90ffdb8e14fedc4131a30675400275d5c77b5e2 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Thu, 20 Sep 2018 20:31:59 -0700 Subject: [PATCH] GE Debugger: Fix tex preview race condition. If we redraw the tex preview first, we need this for the VAO. Oops. --- Windows/GEDebugger/VertexPreview.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Windows/GEDebugger/VertexPreview.cpp b/Windows/GEDebugger/VertexPreview.cpp index 3dd9c8486b..8fa7daa050 100644 --- a/Windows/GEDebugger/VertexPreview.cpp +++ b/Windows/GEDebugger/VertexPreview.cpp @@ -392,8 +392,10 @@ void CGEDebugger::UpdatePrimPreview(u32 op, int which) { glBindVertexArray(previewVao); glEnableVertexAttribArray(previewProgram->a_position); - glGenBuffers(1, &ibuf); - glGenBuffers(1, &vbuf); + if (ibuf == 0) + glGenBuffers(1, &ibuf); + if (vbuf == 0) + glGenBuffers(1, &vbuf); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibuf); glBindBuffer(GL_ARRAY_BUFFER, vbuf); @@ -451,11 +453,15 @@ void CGEDebugger::UpdatePrimPreview(u32 op, int which) { glScissor((GLint)x, (GLint)-(y + fh - secondWindow->Height()), (GLsizei)fw, (GLsizei)fh); BindPreviewProgram(texPreviewProgram); - if (texPreviewVao == 0 && gl_extensions.ARB_vertex_array_object) { + if (texPreviewVao == 0 && vbuf != 0 && ibuf != 0 && gl_extensions.ARB_vertex_array_object) { glGenVertexArrays(1, &texPreviewVao); glBindVertexArray(texPreviewVao); glEnableVertexAttribArray(texPreviewProgram->a_position); + if (ibuf == 0) + glGenBuffers(1, &ibuf); + if (vbuf == 0) + glGenBuffers(1, &vbuf); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibuf); glBindBuffer(GL_ARRAY_BUFFER, vbuf);