From 67037ed4a125f618fbc759ed8935060f0b3503e4 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 20 Jun 2018 22:27:16 +0100 Subject: [PATCH] Fix GLES initial state readback of compressed cubemaps --- renderdoc/driver/gl/gl_initstate.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/gl/gl_initstate.cpp b/renderdoc/driver/gl/gl_initstate.cpp index 0fd55403d..7d1e2d9e3 100644 --- a/renderdoc/driver/gl/gl_initstate.cpp +++ b/renderdoc/driver/gl/gl_initstate.cpp @@ -781,6 +781,9 @@ void GLResourceManager::PrepareTextureInitialContents(ResourceId liveid, Resourc { size_t size = GetCompressedByteSize(w, h, d, details.internalFormat); + if(details.curType == eGL_TEXTURE_CUBE_MAP) + size /= 6; + byte *buf = new byte[size]; if(IsGLES) @@ -1475,8 +1478,11 @@ bool GLResourceManager::Serialise_InitialState(SerialiserType &ser, ResourceId r { if(IsGLES) { - details.compressedData[i].resize(size); - memcpy(details.compressedData[i].data(), scratchBuf, size); + size_t startOffs = + IsCubeFace(targets[trg]) ? CubeTargetIndex(targets[trg]) * size : 0; + + details.compressedData[i].resize(startOffs + size); + memcpy(details.compressedData[i].data() + startOffs, scratchBuf, size); } if(TextureState.dim == 1)