diff --git a/renderdoc/driver/gl/gl_manager.cpp b/renderdoc/driver/gl/gl_manager.cpp index e1bea4e8f..46ce76fbb 100644 --- a/renderdoc/driver/gl/gl_manager.cpp +++ b/renderdoc/driver/gl/gl_manager.cpp @@ -193,7 +193,7 @@ bool GLResourceManager::Prepare_InitialState(GLResource res) GLint maxLevel = 1000; gl.glGetTexParameteriv(details.curType, eGL_TEXTURE_MAX_LEVEL, &maxLevel); - mips = RDCMIN(mips, maxLevel); + mips = RDCMIN(mips, maxLevel+1); gl.glBindTexture(details.curType, tex); @@ -421,7 +421,7 @@ bool GLResourceManager::Serialise_InitialState(GLResource res) GLint maxLevel = 1000; gl.glGetTexParameteriv(details.curType, eGL_TEXTURE_MAX_LEVEL, &maxLevel); - imgmips = RDCMIN(imgmips, maxLevel); + imgmips = RDCMIN(imgmips, maxLevel+1); TextureStateInitialData *state = (TextureStateInitialData *)GetInitialContents(Id).blob; @@ -792,7 +792,7 @@ void GLResourceManager::Apply_InitialState(GLResource live, InitialContentData i GLint maxLevel = 1000; gl.glGetTexParameteriv(details.curType, eGL_TEXTURE_MAX_LEVEL, &maxLevel); - mips = RDCMIN(mips, maxLevel); + mips = RDCMIN(mips, maxLevel+1); // copy over mips for(int i=0; i < mips; i++) diff --git a/renderdoc/driver/gl/gl_replay.cpp b/renderdoc/driver/gl/gl_replay.cpp index ce48a102a..3e40241cf 100644 --- a/renderdoc/driver/gl/gl_replay.cpp +++ b/renderdoc/driver/gl/gl_replay.cpp @@ -517,7 +517,7 @@ void GLReplay::CacheTexture(ResourceId id) GLuint maxLevel = 1000; gl.glGetTexParameteriv(target, eGL_TEXTURE_MAX_LEVEL, (GLint *)&maxLevel); - tex.mips = RDCMIN(tex.mips, maxLevel); + tex.mips = RDCMIN(tex.mips, maxLevel+1); tex.numSubresources = tex.mips*tex.arraysize;