From 07dba4732f4e52162b64c6c652cec3a6b0997ccb Mon Sep 17 00:00:00 2001 From: Baldur Karlsson Date: Mon, 12 Mar 2018 17:11:11 +0000 Subject: [PATCH] 32-bit compile fixes --- renderdoc/driver/dxgi/dxgi_hooks.cpp | 4 ++-- renderdoc/driver/gl/gl_debug.cpp | 2 +- renderdoc/driver/gl/gl_postvs.cpp | 27 +++++++++++++++++++++------ 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/renderdoc/driver/dxgi/dxgi_hooks.cpp b/renderdoc/driver/dxgi/dxgi_hooks.cpp index eeda79061..f10be1ff6 100644 --- a/renderdoc/driver/dxgi/dxgi_hooks.cpp +++ b/renderdoc/driver/dxgi/dxgi_hooks.cpp @@ -54,7 +54,7 @@ struct RenderDocAnalysis : IDXGraphicsAnalysis unsigned int m_iRefcount = 0; // IDXGraphicsAnalysis - void BeginCapture() + void STDMETHODCALLTYPE BeginCapture() { void *dev = NULL, *wnd = NULL; RenderDoc::Inst().GetActiveWindow(dev, wnd); @@ -62,7 +62,7 @@ struct RenderDocAnalysis : IDXGraphicsAnalysis RenderDoc::Inst().StartFrameCapture(dev, wnd); } - void EndCapture() + void STDMETHODCALLTYPE EndCapture() { void *dev = NULL, *wnd = NULL; RenderDoc::Inst().GetActiveWindow(dev, wnd); diff --git a/renderdoc/driver/gl/gl_debug.cpp b/renderdoc/driver/gl/gl_debug.cpp index 86ad7df54..ee0a7faf2 100644 --- a/renderdoc/driver/gl/gl_debug.cpp +++ b/renderdoc/driver/gl/gl_debug.cpp @@ -700,7 +700,7 @@ void GLReplay::InitDebugData() gl.glBindTransformFeedback(eGL_TRANSFORM_FEEDBACK, DebugData.feedbackObj); gl.glBindBuffer(eGL_TRANSFORM_FEEDBACK_BUFFER, DebugData.feedbackBuffer); - gl.glNamedBufferDataEXT(DebugData.feedbackBuffer, DebugData.feedbackBufferSize, NULL, + gl.glNamedBufferDataEXT(DebugData.feedbackBuffer, (GLsizeiptr)DebugData.feedbackBufferSize, NULL, eGL_DYNAMIC_READ); gl.glBindBufferBase(eGL_TRANSFORM_FEEDBACK_BUFFER, 0, DebugData.feedbackBuffer); gl.glBindTransformFeedback(eGL_TRANSFORM_FEEDBACK, 0); diff --git a/renderdoc/driver/gl/gl_postvs.cpp b/renderdoc/driver/gl/gl_postvs.cpp index ca96ca25d..2fbf1abbe 100644 --- a/renderdoc/driver/gl/gl_postvs.cpp +++ b/renderdoc/driver/gl/gl_postvs.cpp @@ -376,8 +376,13 @@ void GLReplay::InitPostVSBuffers(uint32_t eventId) DebugData.feedbackBufferSize *= 2; RDCWARN("Resizing xfb buffer from %llu to %llu for output", oldSize, DebugData.feedbackBufferSize); - gl.glNamedBufferDataEXT(DebugData.feedbackBuffer, DebugData.feedbackBufferSize, NULL, - eGL_DYNAMIC_READ); + if(DebugData.feedbackBufferSize > INTPTR_MAX) + { + RDCERR("Too much data generated"); + DebugData.feedbackBufferSize = INTPTR_MAX; + } + gl.glNamedBufferDataEXT(DebugData.feedbackBuffer, (GLsizeiptr)DebugData.feedbackBufferSize, + NULL, eGL_DYNAMIC_READ); } // need to rebind this here because of an AMD bug that seems to ignore the buffer @@ -490,8 +495,13 @@ void GLReplay::InitPostVSBuffers(uint32_t eventId) DebugData.feedbackBufferSize *= 2; RDCWARN("Resizing xfb buffer from %llu to %llu for output", oldSize, DebugData.feedbackBufferSize); - gl.glNamedBufferDataEXT(DebugData.feedbackBuffer, DebugData.feedbackBufferSize, NULL, - eGL_DYNAMIC_READ); + if(DebugData.feedbackBufferSize > INTPTR_MAX) + { + RDCERR("Too much data generated"); + DebugData.feedbackBufferSize = INTPTR_MAX; + } + gl.glNamedBufferDataEXT(DebugData.feedbackBuffer, (GLsizeiptr)DebugData.feedbackBufferSize, + NULL, eGL_DYNAMIC_READ); } // need to rebind this here because of an AMD bug that seems to ignore the buffer @@ -1041,8 +1051,13 @@ void GLReplay::InitPostVSBuffers(uint32_t eventId) DebugData.feedbackBufferSize *= 2; RDCWARN("Conservatively resizing xfb buffer from %llu to %llu for output", oldSize, DebugData.feedbackBufferSize); - gl.glNamedBufferDataEXT(DebugData.feedbackBuffer, DebugData.feedbackBufferSize, NULL, - eGL_DYNAMIC_READ); + if(DebugData.feedbackBufferSize > INTPTR_MAX) + { + RDCERR("Too much data generated"); + DebugData.feedbackBufferSize = INTPTR_MAX; + } + gl.glNamedBufferDataEXT(DebugData.feedbackBuffer, (GLsizeiptr)DebugData.feedbackBufferSize, + NULL, eGL_DYNAMIC_READ); } GLenum idxType = eGL_UNSIGNED_BYTE;