From 2d07861227f9c4382c3a71aa4121defbc6c7c609 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 13 Feb 2018 21:09:31 +0000 Subject: [PATCH] Remove special case strings from vulkan stringification --- renderdoc/driver/vulkan/vk_stringise.cpp | 30 +++++++-------- .../driver/vulkan/wrappers/vk_cmd_funcs.cpp | 38 +++++++++++++++---- 2 files changed, 44 insertions(+), 24 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_stringise.cpp b/renderdoc/driver/vulkan/vk_stringise.cpp index 5edb7cdf6..2cc424eec 100644 --- a/renderdoc/driver/vulkan/vk_stringise.cpp +++ b/renderdoc/driver/vulkan/vk_stringise.cpp @@ -731,9 +731,9 @@ std::string DoStringise(const VkAttachmentLoadOp &el) { BEGIN_ENUM_STRINGISE(VkAttachmentLoadOp); { - case VK_ATTACHMENT_LOAD_OP_LOAD: return "Load"; - case VK_ATTACHMENT_LOAD_OP_CLEAR: return "Clear"; - case VK_ATTACHMENT_LOAD_OP_DONT_CARE: return "Don't Care"; + STRINGISE_ENUM(VK_ATTACHMENT_LOAD_OP_LOAD) + STRINGISE_ENUM(VK_ATTACHMENT_LOAD_OP_CLEAR) + STRINGISE_ENUM(VK_ATTACHMENT_LOAD_OP_DONT_CARE) } END_ENUM_STRINGISE(); } @@ -963,19 +963,17 @@ std::string DoStringise(const VkImageLayout &el) { BEGIN_ENUM_STRINGISE(VkImageLayout); { - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_UNDEFINED, "UNDEFINED"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_GENERAL, "GENERAL"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, "COLOR_ATTACHMENT_OPTIMAL"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, - "DEPTH_STENCIL_ATTACHMENT_OPTIMAL"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, - "DEPTH_STENCIL_READ_ONLY_OPTIMAL"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, "SHADER_READ_ONLY_OPTIMAL"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, "TRANSFER_SRC_OPTIMAL"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, "TRANSFER_DST_OPTIMAL"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_PREINITIALIZED, "PREINITIALIZED"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, "PRESENT_SRC_KHR"); - STRINGISE_ENUM_NAMED(VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, "SHARED_PRESENT_SRC_KHR"); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_UNDEFINED); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_GENERAL); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_PREINITIALIZED); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_PRESENT_SRC_KHR); + STRINGISE_ENUM(VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR); } END_ENUM_STRINGISE(); } diff --git a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp index 5268ee36d..1dafb6c5d 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_cmd_funcs.cpp @@ -24,6 +24,27 @@ #include "../vk_core.h" +static std::string ToHumanStr(const VkAttachmentLoadOp &el) +{ + BEGIN_ENUM_STRINGISE(VkAttachmentLoadOp); + { + case VK_ATTACHMENT_LOAD_OP_LOAD: return "Load"; + case VK_ATTACHMENT_LOAD_OP_CLEAR: return "Clear"; + case VK_ATTACHMENT_LOAD_OP_DONT_CARE: return "Don't Care"; + } + END_ENUM_STRINGISE(); +} + +static std::string ToHumanStr(const VkAttachmentStoreOp &el) +{ + BEGIN_ENUM_STRINGISE(VkAttachmentStoreOp); + { + case VK_ATTACHMENT_STORE_OP_STORE: return "Store"; + case VK_ATTACHMENT_STORE_OP_DONT_CARE: return "Don't Care"; + } + END_ENUM_STRINGISE(); +} + std::vector WrappedVulkan::GetImplicitRenderPassBarriers(uint32_t subpass) { ResourceId rp, fb; @@ -272,7 +293,7 @@ string WrappedVulkan::MakeRenderPassOpString(bool store) else { // all colour ops are the same, print it - opDesc = store ? ToStr(atts[col0].storeOp) : ToStr(atts[col0].loadOp); + opDesc = store ? ToHumanStr(atts[col0].storeOp) : ToHumanStr(atts[col0].loadOp); } // do we have depth? @@ -285,7 +306,8 @@ string WrappedVulkan::MakeRenderPassOpString(bool store) // if there's no stencil, just print depth op if(!hasStencil) { - opDesc += "D=" + (store ? ToStr(atts[dsAttach].storeOp) : ToStr(atts[dsAttach].loadOp)); + opDesc += + "D=" + (store ? ToHumanStr(atts[dsAttach].storeOp) : ToHumanStr(atts[dsAttach].loadOp)); } else { @@ -293,19 +315,19 @@ string WrappedVulkan::MakeRenderPassOpString(bool store) { // if depth and stencil have same op, print together, otherwise separately if(atts[dsAttach].storeOp == atts[dsAttach].stencilStoreOp) - opDesc += "DS=" + ToStr(atts[dsAttach].storeOp); + opDesc += "DS=" + ToHumanStr(atts[dsAttach].storeOp); else - opDesc += - "D=" + ToStr(atts[dsAttach].storeOp) + ", S=" + ToStr(atts[dsAttach].stencilStoreOp); + opDesc += "D=" + ToHumanStr(atts[dsAttach].storeOp) + ", S=" + + ToHumanStr(atts[dsAttach].stencilStoreOp); } else { // if depth and stencil have same op, print together, otherwise separately if(atts[dsAttach].loadOp == atts[dsAttach].stencilLoadOp) - opDesc += "DS=" + ToStr(atts[dsAttach].loadOp); + opDesc += "DS=" + ToHumanStr(atts[dsAttach].loadOp); else - opDesc += - "D=" + ToStr(atts[dsAttach].loadOp) + ", S=" + ToStr(atts[dsAttach].stencilLoadOp); + opDesc += "D=" + ToHumanStr(atts[dsAttach].loadOp) + ", S=" + + ToHumanStr(atts[dsAttach].stencilLoadOp); } } }