diff --git a/renderdoc/driver/gl/wrappers/gl_draw_funcs.cpp b/renderdoc/driver/gl/wrappers/gl_draw_funcs.cpp index b1ffcf4ba..30a0ce57d 100644 --- a/renderdoc/driver/gl/wrappers/gl_draw_funcs.cpp +++ b/renderdoc/driver/gl/wrappers/gl_draw_funcs.cpp @@ -3168,6 +3168,14 @@ bool WrappedOpenGL::Serialise_glMultiDrawArraysIndirectCount(SerialiserType &ser EventUsage(m_CurEventID, ResourceUsage::Indirect)); } + { + GLuint buf = 0; + GL.glGetIntegerv(eGL_PARAMETER_BUFFER_BINDING, (GLint *)&buf); + + m_ResourceUses[GetResourceManager()->GetResID(BufferRes(GetCtx(), buf))].push_back( + EventUsage(m_CurEventID, ResourceUsage::Indirect)); + } + GLintptr offs = (GLintptr)offset; SDChunk *baseChunk = m_StructuredFile->chunks.back(); @@ -3404,6 +3412,14 @@ bool WrappedOpenGL::Serialise_glMultiDrawElementsIndirectCount(SerialiserType &s EventUsage(m_CurEventID, ResourceUsage::Indirect)); } + { + GLuint buf = 0; + GL.glGetIntegerv(eGL_PARAMETER_BUFFER_BINDING, (GLint *)&buf); + + m_ResourceUses[GetResourceManager()->GetResID(BufferRes(GetCtx(), buf))].push_back( + EventUsage(m_CurEventID, ResourceUsage::Indirect)); + } + GLintptr offs = (GLintptr)offset; SDChunk *baseChunk = m_StructuredFile->chunks.back(); diff --git a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp index 6dff31751..f40379f3d 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp @@ -2999,6 +2999,8 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndirectCount(SerialiserType &ser, actionNode.resourceUsage.push_back(make_rdcpair( GetResID(buffer), EventUsage(actionNode.action.eventId, ResourceUsage::Indirect))); + actionNode.resourceUsage.push_back(make_rdcpair( + GetResID(countBuffer), EventUsage(actionNode.action.eventId, ResourceUsage::Indirect))); m_BakedCmdBufferInfo[m_LastCmdBufferID].curEventID++; @@ -3345,6 +3347,8 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexedIndirectCount( actionNode.resourceUsage.push_back(make_rdcpair( GetResID(buffer), EventUsage(actionNode.action.eventId, ResourceUsage::Indirect))); + actionNode.resourceUsage.push_back(make_rdcpair( + GetResID(countBuffer), EventUsage(actionNode.action.eventId, ResourceUsage::Indirect))); m_BakedCmdBufferInfo[m_LastCmdBufferID].curEventID++; @@ -5121,6 +5125,8 @@ bool WrappedVulkan::Serialise_vkCmdDrawMeshTasksIndirectCountEXT( actionNode.resourceUsage.push_back(make_rdcpair( GetResID(buffer), EventUsage(actionNode.action.eventId, ResourceUsage::Indirect))); + actionNode.resourceUsage.push_back(make_rdcpair( + GetResID(countBuffer), EventUsage(actionNode.action.eventId, ResourceUsage::Indirect))); m_BakedCmdBufferInfo[m_LastCmdBufferID].curEventID++;