From a6fb1e2577b7c31616ee043fc3dbf649af9e03ff Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 10 Oct 2015 01:11:46 +0200 Subject: [PATCH] Reorder CmdDraw parameters --- renderdoc/driver/vulkan/vk_core.h | 12 ++--- renderdoc/driver/vulkan/vk_debug.cpp | 2 +- renderdoc/driver/vulkan/vk_hookset_defs.h | 10 ++-- renderdoc/driver/vulkan/vk_replay.cpp | 14 +++--- .../driver/vulkan/wrappers/vk_draw_funcs.cpp | 50 +++++++++---------- 5 files changed, 44 insertions(+), 44 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_core.h b/renderdoc/driver/vulkan/vk_core.h index 81436075e..a181f7dfc 100644 --- a/renderdoc/driver/vulkan/vk_core.h +++ b/renderdoc/driver/vulkan/vk_core.h @@ -946,18 +946,18 @@ public: IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdDraw, VkCmdBuffer cmdBuffer, - uint32_t firstVertex, uint32_t vertexCount, - uint32_t firstInstance, - uint32_t instanceCount); + uint32_t instanceCount, + uint32_t firstVertex, + uint32_t firstInstance); IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdDrawIndexed, VkCmdBuffer cmdBuffer, - uint32_t firstIndex, uint32_t indexCount, + uint32_t instanceCount, + uint32_t firstIndex, int32_t vertexOffset, - uint32_t firstInstance, - uint32_t instanceCount); + uint32_t firstInstance); IMPLEMENT_FUNCTION_SERIALISED(void, vkCmdDrawIndirect, VkCmdBuffer cmdBuffer, diff --git a/renderdoc/driver/vulkan/vk_debug.cpp b/renderdoc/driver/vulkan/vk_debug.cpp index c7b6e1849..4639047c7 100644 --- a/renderdoc/driver/vulkan/vk_debug.cpp +++ b/renderdoc/driver/vulkan/vk_debug.cpp @@ -1013,7 +1013,7 @@ void VulkanDebugManager::RenderTextInternal(const TextPrintState &textstate, flo // VKTODOMED strip + instance ID doesn't seem to work atm? instance ID comes through 0 // for now, do lists, but want to change back - vt->CmdDraw(Unwrap(textstate.cmd), 0, 6*(uint32_t)strlen(text), 0, 1); + vt->CmdDraw(Unwrap(textstate.cmd), 6*(uint32_t)strlen(text), 1, 0, 0); vt->CmdEndRenderPass(Unwrap(textstate.cmd)); } diff --git a/renderdoc/driver/vulkan/vk_hookset_defs.h b/renderdoc/driver/vulkan/vk_hookset_defs.h index 096d2941d..e5e75f9ad 100644 --- a/renderdoc/driver/vulkan/vk_hookset_defs.h +++ b/renderdoc/driver/vulkan/vk_hookset_defs.h @@ -179,8 +179,8 @@ HookDefine3(VkResult, vkCreateImage, VkDevice, device, const VkImageCreateInfo*, pCreateInfo, VkImage*, pImage); \ HookDefine2(void, vkDestroyImage, VkDevice, device, VkImage, image); \ HookDefine4(VkResult, vkGetImageSubresourceLayout, VkDevice, device, VkImage, image, const VkImageSubresource*, pSubresource, VkSubresourceLayout*, pLayout); \ - HookDefine3(VkResult, vkGetBufferMemoryRequirements, VkDevice, device, VkBuffer, buffer, VkMemoryRequirements*, VkMemoryRequirements); \ - HookDefine3(VkResult, vkGetImageMemoryRequirements, VkDevice, device, VkImage, image, VkMemoryRequirements*, VkMemoryRequirements); \ + HookDefine3(VkResult, vkGetBufferMemoryRequirements, VkDevice, device, VkBuffer, buffer, VkMemoryRequirements*, pMemoryRequirements); \ + HookDefine3(VkResult, vkGetImageMemoryRequirements, VkDevice, device, VkImage, image, VkMemoryRequirements*, pMemoryRequirements); \ HookDefine3(VkResult, vkCreateImageView, VkDevice, device, const VkImageViewCreateInfo*, pCreateInfo, VkImageView*, pView); \ HookDefine2(void, vkDestroyImageView, VkDevice, device, VkImageView, imageView); \ HookDefine3(VkResult, vkCreateShader, VkDevice, device, const VkShaderCreateInfo*, pCreateInfo, VkShader*, pShader); \ @@ -233,8 +233,8 @@ HookDefine8(void, vkCmdBindDescriptorSets, VkCmdBuffer, cmdBuffer, VkPipelineBindPoint, pipelineBindPoint, VkPipelineLayout, layout, uint32_t, firstSet, uint32_t, setCount, const VkDescriptorSet*, pDescriptorSets, uint32_t, dynamicOffsetCount, const uint32_t*, pDynamicOffsets); \ HookDefine4(void, vkCmdBindIndexBuffer, VkCmdBuffer, cmdBuffer, VkBuffer, buffer, VkDeviceSize, offset, VkIndexType, indexType); \ HookDefine5(void, vkCmdBindVertexBuffers, VkCmdBuffer, cmdBuffer, uint32_t, startBinding, uint32_t, bindingCount, const VkBuffer*, pBuffers, const VkDeviceSize*, pOffsets); \ - HookDefine5(void, vkCmdDraw, VkCmdBuffer, cmdBuffer, uint32_t, firstVertex, uint32_t, vertexCount, uint32_t, firstInstance, uint32_t, instanceCount); \ - HookDefine6(void, vkCmdDrawIndexed, VkCmdBuffer, cmdBuffer, uint32_t, firstIndex, uint32_t, indexCount, int32_t, vertexOffset, uint32_t, firstInstance, uint32_t, instanceCount); \ + HookDefine5(void, vkCmdDraw, VkCmdBuffer, cmdBuffer, uint32_t, vertexCount, uint32_t, instanceCount, uint32_t, firstVertex, uint32_t, firstInstance); \ + HookDefine6(void, vkCmdDrawIndexed, VkCmdBuffer, cmdBuffer, uint32_t, indexCount, uint32_t, instanceCount, uint32_t, firstIndex, int32_t, vertexOffset, uint32_t, firstInstance); \ HookDefine5(void, vkCmdDrawIndirect, VkCmdBuffer, cmdBuffer, VkBuffer, buffer, VkDeviceSize, offset, uint32_t, count, uint32_t, stride); \ HookDefine5(void, vkCmdDrawIndexedIndirect, VkCmdBuffer, cmdBuffer, VkBuffer, buffer, VkDeviceSize, offset, uint32_t, count, uint32_t, stride); \ HookDefine4(void, vkCmdDispatch, VkCmdBuffer, cmdBuffer, uint32_t, x, uint32_t, y, uint32_t, z); \ @@ -249,7 +249,7 @@ HookDefine6(void, vkCmdClearColorImage, VkCmdBuffer, cmdBuffer, VkImage, image, VkImageLayout, imageLayout, const VkClearColorValue*, pColor, uint32_t, rangeCount, const VkImageSubresourceRange*, pRanges); \ HookDefine6(void, vkCmdClearDepthStencilImage, VkCmdBuffer, cmdBuffer, VkImage, image, VkImageLayout, imageLayout, const VkClearDepthStencilValue*, pDepthStencil, uint32_t, rangeCount, const VkImageSubresourceRange*, pRanges); \ HookDefine6(void, vkCmdClearColorAttachment, VkCmdBuffer, cmdBuffer, uint32_t, colorAttachment, VkImageLayout, imageLayout, const VkClearColorValue*, pColor, uint32_t, rectCount, const VkRect3D*, pRects); \ - HookDefine6(void, vkCmdClearDepthStencilAttachment, VkCmdBuffer, cmdBuffer, VkImageAspectFlags, imageAspectMask, VkImageLayout, imageLayout, const VkClearDepthStencilValue*, pDepthStencil, uint32_t, rectCount, const VkRect3D*, pRects); \ + HookDefine6(void, vkCmdClearDepthStencilAttachment, VkCmdBuffer, cmdBuffer, VkImageAspectFlags, aspectMask, VkImageLayout, imageLayout, const VkClearDepthStencilValue*, pDepthStencil, uint32_t, rectCount, const VkRect3D*, pRects); \ HookDefine6(void, vkCmdPipelineBarrier, VkCmdBuffer, cmdBuffer, VkPipelineStageFlags, srcStageMask, VkPipelineStageFlags, destStageMask, VkBool32, byRegion, uint32_t, memBarrierCount, const void* const*, ppMemBarriers); \ HookDefine4(void, vkCmdBeginQuery, VkCmdBuffer, cmdBuffer, VkQueryPool, queryPool, uint32_t, slot, VkQueryControlFlags, flags); \ HookDefine3(void, vkCmdEndQuery, VkCmdBuffer, cmdBuffer, VkQueryPool, queryPool, uint32_t, slot); \ diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index d2d921835..49cc895cd 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -795,7 +795,7 @@ bool VulkanReplay::RenderTexture(TextureDisplay cfg) VkViewport viewport = { 0.0f, 0.0f, (float)outw.width, (float)outw.height, 0.0f, 1.0f }; vt->CmdSetViewport(Unwrap(cmd), 1, &viewport); - vt->CmdDraw(Unwrap(cmd), 0, 4, 0, 1); + vt->CmdDraw(Unwrap(cmd), 4, 1, 0, 0); vt->CmdEndRenderPass(Unwrap(cmd)); } @@ -863,8 +863,8 @@ void VulkanReplay::RenderCheckerboard(Vec3f light, Vec3f dark) VkViewport viewport = { 0.0f, 0.0f, (float)outw.width, (float)outw.height, 0.0f, 1.0f }; vt->CmdSetViewport(Unwrap(cmd), 1, &viewport); - - vt->CmdDraw(Unwrap(cmd), 0, 4, 0, 1); + + vt->CmdDraw(Unwrap(cmd), 4, 1, 0, 0); vt->CmdEndRenderPass(Unwrap(cmd)); } @@ -932,8 +932,8 @@ void VulkanReplay::RenderHighlightBox(float w, float h, float scale) VkDeviceSize zero = 0; vt->CmdBindVertexBuffers(Unwrap(cmd), 0, 1, UnwrapPtr(GetDebugManager()->m_OutlineStripVBO.buf), &zero); - - vt->CmdDraw(Unwrap(cmd), 0, 8, 0, 1); + + vt->CmdDraw(Unwrap(cmd), 8, 1, 0, 0); genericuniforms secondOutline; secondOutline.Offset = Vec4f(-xpixdim, ypixdim, 0.0f, 0.0f); @@ -941,8 +941,8 @@ void VulkanReplay::RenderHighlightBox(float w, float h, float scale) secondOutline.Color = Vec4f(0.0f, 0.0f, 0.0f, 1.0f); vt->CmdUpdateBuffer(Unwrap(cmd), Unwrap(GetDebugManager()->m_GenericUBO.buf), 0, sizeof(genericuniforms), (uint32_t *)&secondOutline); - - vt->CmdDraw(Unwrap(cmd), 0, 8, 0, 1); + + vt->CmdDraw(Unwrap(cmd), 8, 1, 0, 0); vt->CmdEndRenderPass(Unwrap(cmd)); } diff --git a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp index e03e96208..f080c1dff 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp @@ -27,16 +27,16 @@ bool WrappedVulkan::Serialise_vkCmdDraw( Serialiser* localSerialiser, VkCmdBuffer cmdBuffer, - uint32_t firstVertex, uint32_t vertexCount, - uint32_t firstInstance, - uint32_t instanceCount) + uint32_t instanceCount, + uint32_t firstVertex, + uint32_t firstInstance) { SERIALISE_ELEMENT(ResourceId, cmdid, GetResID(cmdBuffer)); - SERIALISE_ELEMENT(uint32_t, firstVtx, firstVertex); SERIALISE_ELEMENT(uint32_t, vtxCount, vertexCount); - SERIALISE_ELEMENT(uint32_t, firstInst, firstInstance); SERIALISE_ELEMENT(uint32_t, instCount, instanceCount); + SERIALISE_ELEMENT(uint32_t, firstVtx, firstVertex); + SERIALISE_ELEMENT(uint32_t, firstInst, firstInstance); if(m_State < WRITING) m_LastCmdBufferID = cmdid; @@ -46,14 +46,14 @@ bool WrappedVulkan::Serialise_vkCmdDraw( if(IsPartialCmd(cmdid) && InPartialRange()) { cmdBuffer = PartialCmdBuf(); - ObjDisp(cmdBuffer)->CmdDraw(Unwrap(cmdBuffer), firstVtx, vtxCount, firstInst, instCount); + ObjDisp(cmdBuffer)->CmdDraw(Unwrap(cmdBuffer), vtxCount, instCount, firstVtx, firstInst); } } else if(m_State == READING) { cmdBuffer = GetResourceManager()->GetLiveHandle(cmdid); - ObjDisp(cmdBuffer)->CmdDraw(Unwrap(cmdBuffer), firstVtx, vtxCount, firstInst, instCount); + ObjDisp(cmdBuffer)->CmdDraw(Unwrap(cmdBuffer), vtxCount, instCount, firstVtx, firstInst); const string desc = localSerialiser->GetDebugStr(); @@ -82,12 +82,12 @@ bool WrappedVulkan::Serialise_vkCmdDraw( void WrappedVulkan::vkCmdDraw( VkCmdBuffer cmdBuffer, - uint32_t firstVertex, uint32_t vertexCount, - uint32_t firstInstance, - uint32_t instanceCount) + uint32_t instanceCount, + uint32_t firstVertex, + uint32_t firstInstance) { - ObjDisp(cmdBuffer)->CmdDraw(Unwrap(cmdBuffer), firstVertex, vertexCount, firstInstance, instanceCount); + ObjDisp(cmdBuffer)->CmdDraw(Unwrap(cmdBuffer), vertexCount, instanceCount, firstVertex, firstInstance); if(m_State >= WRITING) { @@ -96,7 +96,7 @@ void WrappedVulkan::vkCmdDraw( CACHE_THREAD_SERIALISER(); SCOPED_SERIALISE_CONTEXT(DRAW); - Serialise_vkCmdDraw(localSerialiser, cmdBuffer, firstVertex, vertexCount, firstInstance, instanceCount); + Serialise_vkCmdDraw(localSerialiser, cmdBuffer, vertexCount, instanceCount, firstVertex, firstInstance); record->AddChunk(scope.Get()); } @@ -899,18 +899,18 @@ void WrappedVulkan::vkCmdClearDepthStencilAttachment( bool WrappedVulkan::Serialise_vkCmdDrawIndexed( Serialiser* localSerialiser, VkCmdBuffer cmdBuffer, - uint32_t firstIndex, uint32_t indexCount, + uint32_t instanceCount, + uint32_t firstIndex, int32_t vertexOffset, - uint32_t firstInstance, - uint32_t instanceCount) + uint32_t firstInstance) { SERIALISE_ELEMENT(ResourceId, cmdid, GetResID(cmdBuffer)); - SERIALISE_ELEMENT(uint32_t, firstIdx, firstIndex); SERIALISE_ELEMENT(uint32_t, idxCount, indexCount); - SERIALISE_ELEMENT(int32_t, vtxOffs, vertexOffset); - SERIALISE_ELEMENT(uint32_t, firstInst, firstInstance); SERIALISE_ELEMENT(uint32_t, instCount, instanceCount); + SERIALISE_ELEMENT(uint32_t, firstIdx, firstIndex); + SERIALISE_ELEMENT(int32_t, vtxOffs, vertexOffset); + SERIALISE_ELEMENT(uint32_t, firstInst, firstInstance); if(m_State < WRITING) m_LastCmdBufferID = cmdid; @@ -920,14 +920,14 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexed( if(IsPartialCmd(cmdid) && InPartialRange()) { cmdBuffer = PartialCmdBuf(); - ObjDisp(cmdBuffer)->CmdDrawIndexed(Unwrap(cmdBuffer), firstIdx, idxCount, vtxOffs, firstInst, instCount); + ObjDisp(cmdBuffer)->CmdDrawIndexed(Unwrap(cmdBuffer), idxCount, instCount, firstIdx, vtxOffs, firstInst); } } else if(m_State == READING) { cmdBuffer = GetResourceManager()->GetLiveHandle(cmdid); - ObjDisp(cmdBuffer)->CmdDrawIndexed(Unwrap(cmdBuffer), firstIdx, idxCount, vtxOffs, firstInst, instCount); + ObjDisp(cmdBuffer)->CmdDrawIndexed(Unwrap(cmdBuffer), idxCount, instCount, firstIdx, vtxOffs, firstInst); const string desc = localSerialiser->GetDebugStr(); @@ -956,13 +956,13 @@ bool WrappedVulkan::Serialise_vkCmdDrawIndexed( void WrappedVulkan::vkCmdDrawIndexed( VkCmdBuffer cmdBuffer, - uint32_t firstIndex, uint32_t indexCount, + uint32_t instanceCount, + uint32_t firstIndex, int32_t vertexOffset, - uint32_t firstInstance, - uint32_t instanceCount) + uint32_t firstInstance) { - ObjDisp(cmdBuffer)->CmdDrawIndexed(Unwrap(cmdBuffer), firstIndex, indexCount, vertexOffset, firstInstance, instanceCount); + ObjDisp(cmdBuffer)->CmdDrawIndexed(Unwrap(cmdBuffer), indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); if(m_State >= WRITING) { @@ -971,7 +971,7 @@ void WrappedVulkan::vkCmdDrawIndexed( CACHE_THREAD_SERIALISER(); SCOPED_SERIALISE_CONTEXT(DRAW_INDEXED); - Serialise_vkCmdDrawIndexed(localSerialiser, cmdBuffer, firstIndex, indexCount, vertexOffset, firstInstance, instanceCount); + Serialise_vkCmdDrawIndexed(localSerialiser, cmdBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance); record->AddChunk(scope.Get()); }