Skip to content

Commit 41e4f61

Browse files
committed
Ensure a VAO is bound for depth MSAA<->Array copies
1 parent 267eb7f commit 41e4f61

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

renderdoc/driver/gl/gl_msaa_array_conv.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,10 @@ void WrappedOpenGL::CopyDepthTex2DMSToArray(GLuint &destArray, GLuint srcMS, GLi
231231
GLRenderState rs;
232232
rs.FetchState(this);
233233

234+
GLuint vao = 0;
235+
drv.glGenVertexArrays(1, &vao);
236+
drv.glBindVertexArray(vao);
237+
234238
GLuint texs[3];
235239
drv.glGenTextures(3, texs);
236240
drv.glTextureView(texs[0], eGL_TEXTURE_2D_ARRAY, destArray, intFormat, 0, 1, 0,
@@ -331,10 +335,11 @@ void WrappedOpenGL::CopyDepthTex2DMSToArray(GLuint &destArray, GLuint srcMS, GLi
331335
}
332336
}
333337

338+
rs.ApplyState(this);
339+
340+
drv.glDeleteVertexArrays(1, &vao);
334341
drv.glDeleteFramebuffers(1, &fbo);
335342
drv.glDeleteTextures(3, texs);
336-
337-
rs.ApplyState(this);
338343
}
339344

340345
void WrappedOpenGL::CopyArrayToTex2DMS(GLuint destMS, GLuint srcArray, GLint width, GLint height,
@@ -464,6 +469,10 @@ void WrappedOpenGL::CopyDepthArrayToTex2DMS(GLuint destMS, GLuint srcArray, GLin
464469
GLRenderState rs;
465470
rs.FetchState(this);
466471

472+
GLuint vao = 0;
473+
drv.glGenVertexArrays(1, &vao);
474+
drv.glBindVertexArray(vao);
475+
467476
GLuint texs[3];
468477
drv.glGenTextures(3, texs);
469478
drv.glTextureView(texs[0], eGL_TEXTURE_2D_MULTISAMPLE_ARRAY, destMS, intFormat, 0, 1, 0, arraySize);
@@ -571,8 +580,9 @@ void WrappedOpenGL::CopyDepthArrayToTex2DMS(GLuint destMS, GLuint srcArray, GLin
571580
}
572581
}
573582

583+
rs.ApplyState(this);
584+
585+
drv.glDeleteVertexArrays(1, &vao);
574586
drv.glDeleteFramebuffers(1, &fbo);
575587
drv.glDeleteTextures(3, texs);
576-
577-
rs.ApplyState(this);
578588
}

0 commit comments

Comments
 (0)