mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-12 13:00:32 +00:00
Bind a dummy texbuffer for GL render texture, as macOS seems to need it
This commit is contained in:
@@ -637,6 +637,17 @@ void GLReplay::InitDebugData()
|
||||
drv.glGenFramebuffers(1, &DebugData.pickPixelFBO);
|
||||
drv.glBindFramebuffer(eGL_FRAMEBUFFER, DebugData.pickPixelFBO);
|
||||
|
||||
drv.glGenBuffers(1, &DebugData.dummyTexBufferStore);
|
||||
drv.glBindBuffer(eGL_TEXTURE_BUFFER, DebugData.dummyTexBufferStore);
|
||||
drv.glNamedBufferDataEXT(DebugData.dummyTexBufferStore, 32, NULL, eGL_STATIC_DRAW);
|
||||
drv.glBindBuffer(eGL_TEXTURE_BUFFER, 0);
|
||||
|
||||
drv.glGenTextures(1, &DebugData.dummyTexBuffer);
|
||||
drv.glBindTexture(eGL_TEXTURE_BUFFER, DebugData.dummyTexBuffer);
|
||||
drv.glTextureBufferEXT(DebugData.dummyTexBuffer, eGL_TEXTURE_BUFFER, eGL_RGBA32F,
|
||||
DebugData.dummyTexBufferStore);
|
||||
drv.glBindTexture(eGL_TEXTURE_BUFFER, 0);
|
||||
|
||||
drv.glGenTextures(1, &DebugData.pickPixelTex);
|
||||
drv.glBindTexture(eGL_TEXTURE_2D, DebugData.pickPixelTex);
|
||||
|
||||
@@ -1081,6 +1092,9 @@ void GLReplay::DeleteDebugData()
|
||||
drv.glDeleteFramebuffers(1, &DebugData.pickPixelFBO);
|
||||
drv.glDeleteTextures(1, &DebugData.pickPixelTex);
|
||||
|
||||
drv.glDeleteTextures(1, &DebugData.dummyTexBuffer);
|
||||
drv.glDeleteBuffers(1, &DebugData.dummyTexBufferStore);
|
||||
|
||||
drv.glDeleteBuffers(1, &DebugData.genericUBO);
|
||||
|
||||
drv.glDeleteFramebuffers(1, &DebugData.customFBO);
|
||||
|
||||
@@ -236,6 +236,13 @@ bool GLReplay::RenderTextureInternal(TextureDisplay cfg, int flags)
|
||||
}
|
||||
}
|
||||
|
||||
// bind a dummy texbuffer - some drivers (macOS) have trouble when a buffer isn't bound.
|
||||
if(resType != RESTYPE_TEXBUFFER && DebugData.dummyTexBuffer)
|
||||
{
|
||||
drv.glActiveTexture((RDCGLenum)(eGL_TEXTURE0 + RESTYPE_TEXBUFFER));
|
||||
drv.glBindTexture(eGL_TEXTURE_BUFFER, DebugData.dummyTexBuffer);
|
||||
}
|
||||
|
||||
drv.glActiveTexture((RDCGLenum)(eGL_TEXTURE0 + resType));
|
||||
drv.glBindTexture(target, texname);
|
||||
|
||||
|
||||
@@ -363,6 +363,9 @@ private:
|
||||
GLuint pickPixelTex;
|
||||
GLuint pickPixelFBO;
|
||||
|
||||
GLuint dummyTexBuffer;
|
||||
GLuint dummyTexBufferStore;
|
||||
|
||||
GLuint quadoverdrawFragShader;
|
||||
GLuint quadoverdrawResolveProg;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user