diff --git a/renderdoc/driver/d3d11/d3d11_postvs.cpp b/renderdoc/driver/d3d11/d3d11_postvs.cpp index c139d1a40..478052240 100644 --- a/renderdoc/driver/d3d11/d3d11_postvs.cpp +++ b/renderdoc/driver/d3d11/d3d11_postvs.cpp @@ -189,7 +189,8 @@ void D3D11Replay::InitPostVSBuffers(uint32_t eventId) const DrawcallDescription *drawcall = m_pDevice->GetDrawcall(eventId); - if(drawcall->numIndices == 0) + if(drawcall->numIndices == 0 || + ((drawcall->flags & DrawFlags::Instanced) && drawcall->numInstances == 0)) return; DXBC::DXBCFile *dxbcVS = wrappedVS->GetDXBC(); diff --git a/renderdoc/driver/d3d12/d3d12_postvs.cpp b/renderdoc/driver/d3d12/d3d12_postvs.cpp index f380d57ef..eacb34b3a 100644 --- a/renderdoc/driver/d3d12/d3d12_postvs.cpp +++ b/renderdoc/driver/d3d12/d3d12_postvs.cpp @@ -175,7 +175,7 @@ void D3D12Replay::InitPostVSBuffers(uint32_t eventId) const DrawcallDescription *drawcall = m_pDevice->GetDrawcall(eventId); - if(drawcall->numIndices == 0) + if(drawcall->numIndices == 0 || drawcall->numInstances == 0) return; DXBC::DXBCFile *dxbcVS = vs->GetDXBC(); diff --git a/renderdoc/driver/gl/gl_postvs.cpp b/renderdoc/driver/gl/gl_postvs.cpp index 7c4a64db8..1586bc850 100644 --- a/renderdoc/driver/gl/gl_postvs.cpp +++ b/renderdoc/driver/gl/gl_postvs.cpp @@ -164,7 +164,8 @@ void GLReplay::InitPostVSBuffers(uint32_t eventId) const DrawcallDescription *drawcall = m_pDriver->GetDrawcall(eventId); - if(drawcall->numIndices == 0) + if(drawcall->numIndices == 0 || + ((drawcall->flags & DrawFlags::Instanced) && drawcall->numInstances == 0)) { // draw is 0 length, nothing to do m_PostVSData[eventId] = GLPostVSData();