Remove special case strings from vulkan stringification

This commit is contained in:
baldurk
2018-02-13 21:10:13 +00:00
parent 60324e7e38
commit 2d07861227
2 changed files with 44 additions and 24 deletions
+14 -16
View File
@@ -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();
}
@@ -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<VkImageMemoryBarrier> 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);
}
}
}