From 0e7d1cd62a2620ab9dbe60c34b51aeec76365b1a Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 24 May 2019 15:26:31 +0100 Subject: [PATCH] Fix handling of doubles in GL transform feedback --- renderdoc/driver/gl/gl_postvs.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/gl/gl_postvs.cpp b/renderdoc/driver/gl/gl_postvs.cpp index 130467003..14fd47c5b 100644 --- a/renderdoc/driver/gl/gl_postvs.cpp +++ b/renderdoc/driver/gl/gl_postvs.cpp @@ -872,6 +872,7 @@ void GLReplay::InitPostVSBuffers(uint32_t eventId) drv.glAttachShader(feedbackProg, stageShaders[i]); varyings.clear(); + matrixVaryings.clear(); stride = 0; posidx = -1; @@ -906,7 +907,9 @@ void GLReplay::InitPostVSBuffers(uint32_t eventId) if(sig.systemValue == ShaderBuiltin::Position) posidx = int32_t(varyings.size()) - 1; - stride += sizeof(float) * sig.compCount; + uint32_t elemSize = sig.compType == CompType::Double ? sizeof(double) : sizeof(float); + + stride += elemSize * sig.compCount; } // shift position attribute up to first, keeping order otherwise