From e6686df74b024d83966a06405ac5b3fd06c3dae3 Mon Sep 17 00:00:00 2001 From: Janos Pantos Date: Thu, 23 Feb 2017 18:08:25 +0100 Subject: [PATCH] Fix creating fake color/depth and output textures in case of GLES. --- renderdoc/driver/gl/gl_driver.cpp | 4 ++-- renderdoc/driver/gl/gl_replay.cpp | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index 6348cfb30..54d87e6b3 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -891,7 +891,7 @@ void WrappedOpenGL::Initialise(GLInitParams ¶ms) else { gl.glTextureImage2DEXT(m_FakeBB_Color, target, 0, colfmt, params.width, params.height, 0, - eGL_RGBA, eGL_UNSIGNED_BYTE, NULL); + GetBaseFormat(colfmt), GetDataType(colfmt), NULL); gl.glTexParameteri(target, eGL_TEXTURE_MAX_LEVEL, 0); gl.glTexParameteri(target, eGL_TEXTURE_MIN_FILTER, eGL_NEAREST); gl.glTexParameteri(target, eGL_TEXTURE_MAG_FILTER, eGL_NEAREST); @@ -950,7 +950,7 @@ void WrappedOpenGL::Initialise(GLInitParams ¶ms) { gl.glTexParameteri(target, eGL_TEXTURE_MAX_LEVEL, 0); gl.glTextureImage2DEXT(m_FakeBB_DepthStencil, target, 0, depthfmt, params.width, - params.height, 0, eGL_DEPTH_COMPONENT, eGL_UNSIGNED_BYTE, NULL); + params.height, 0, GetBaseFormat(depthfmt), GetDataType(depthfmt), NULL); } if(stencil) diff --git a/renderdoc/driver/gl/gl_replay.cpp b/renderdoc/driver/gl/gl_replay.cpp index 68e3c1ea9..1ac3cd325 100644 --- a/renderdoc/driver/gl/gl_replay.cpp +++ b/renderdoc/driver/gl/gl_replay.cpp @@ -208,7 +208,7 @@ void GLReplay::CreateOutputWindowBackbuffer(OutputWindow &outwin, bool depth) gl.glBindTexture(eGL_TEXTURE_2D, outwin.BlitData.backbuffer); gl.glTextureImage2DEXT(outwin.BlitData.backbuffer, eGL_TEXTURE_2D, 0, eGL_SRGB8, outwin.width, - outwin.height, 0, eGL_RGBA, eGL_UNSIGNED_BYTE, NULL); + outwin.height, 0, eGL_RGB, eGL_UNSIGNED_BYTE, NULL); gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_MAX_LEVEL, 0); gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_MIN_FILTER, eGL_NEAREST); gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_MAG_FILTER, eGL_NEAREST); @@ -222,7 +222,8 @@ void GLReplay::CreateOutputWindowBackbuffer(OutputWindow &outwin, bool depth) gl.glBindTexture(eGL_TEXTURE_2D, outwin.BlitData.depthstencil); gl.glTextureImage2DEXT(outwin.BlitData.depthstencil, eGL_TEXTURE_2D, 0, eGL_DEPTH_COMPONENT24, - outwin.width, outwin.height, 0, eGL_DEPTH_COMPONENT, eGL_FLOAT, NULL); + outwin.width, outwin.height, 0, eGL_DEPTH_COMPONENT, eGL_UNSIGNED_INT, + NULL); gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_MAX_LEVEL, 0); gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_MIN_FILTER, eGL_NEAREST); gl.glTexParameteri(eGL_TEXTURE_2D, eGL_TEXTURE_MAG_FILTER, eGL_NEAREST);