mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-22 22:46:41 +00:00
Add easy to disable #define to control whether MSAA is used or not
This commit is contained in:
@@ -737,7 +737,7 @@ VulkanDebugManager::VulkanDebugManager(WrappedVulkan *driver, VkDevice dev)
|
||||
|
||||
vt->CreateRenderPass(Unwrap(dev), &rpinfo, &RGBA16RP);
|
||||
|
||||
attDesc.samples = 4;
|
||||
attDesc.samples = VULKAN_MESH_VIEW_SAMPLES;
|
||||
attDesc.format = VK_FORMAT_R8G8B8A8_SRGB;
|
||||
|
||||
vt->CreateRenderPass(Unwrap(dev), &rpinfo, &RGBA8MSRP);
|
||||
@@ -829,7 +829,7 @@ VulkanDebugManager::VulkanDebugManager(WrappedVulkan *driver, VkDevice dev)
|
||||
|
||||
GetResourceManager()->WrapResource(Unwrap(dev), m_CheckerboardPipeline);
|
||||
|
||||
msaa.rasterSamples = 4;
|
||||
msaa.rasterSamples = VULKAN_MESH_VIEW_SAMPLES;
|
||||
pipeInfo.renderPass = RGBA8MSRP;
|
||||
|
||||
vkr = vt->CreateGraphicsPipelines(Unwrap(dev), VK_NULL_HANDLE, 1, &pipeInfo, &m_CheckerboardMSAAPipeline);
|
||||
@@ -2899,7 +2899,7 @@ MeshDisplayPipelines VulkanDebugManager::CacheMeshDisplayPipelines(const MeshFor
|
||||
|
||||
VkPipelineMultisampleStateCreateInfo msaa = {
|
||||
VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, NULL,
|
||||
4, false, 0.0f, NULL,
|
||||
VULKAN_MESH_VIEW_SAMPLES, false, 0.0f, NULL,
|
||||
};
|
||||
|
||||
VkPipelineDepthStencilStateCreateInfo ds = {
|
||||
@@ -2937,14 +2937,14 @@ MeshDisplayPipelines VulkanDebugManager::CacheMeshDisplayPipelines(const MeshFor
|
||||
VkAttachmentDescription attDesc[] = {
|
||||
{
|
||||
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION, NULL,
|
||||
VK_FORMAT_R8G8B8A8_SRGB, 4,
|
||||
VK_FORMAT_R8G8B8A8_SRGB, VULKAN_MESH_VIEW_SAMPLES,
|
||||
VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_STORE_OP_STORE,
|
||||
VK_ATTACHMENT_LOAD_OP_DONT_CARE, VK_ATTACHMENT_STORE_OP_DONT_CARE,
|
||||
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
|
||||
},
|
||||
{
|
||||
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION, NULL,
|
||||
VK_FORMAT_D32_SFLOAT, 4,
|
||||
VK_FORMAT_D32_SFLOAT, VULKAN_MESH_VIEW_SAMPLES,
|
||||
VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_STORE_OP_STORE,
|
||||
VK_ATTACHMENT_LOAD_OP_DONT_CARE, VK_ATTACHMENT_STORE_OP_DONT_CARE,
|
||||
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
|
||||
|
||||
@@ -362,7 +362,7 @@ void VulkanReplay::OutputWindow::Create(WrappedVulkan *driver, VkDevice device,
|
||||
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, NULL,
|
||||
VK_IMAGE_TYPE_2D, VK_FORMAT_D32_SFLOAT,
|
||||
{ width, height, 1 },
|
||||
1, 1, 4,
|
||||
1, 1, VULKAN_MESH_VIEW_SAMPLES,
|
||||
VK_IMAGE_TILING_OPTIMAL,
|
||||
VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT|VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
|
||||
0, VK_SHARING_MODE_EXCLUSIVE, 0, NULL,
|
||||
@@ -414,14 +414,14 @@ void VulkanReplay::OutputWindow::Create(WrappedVulkan *driver, VkDevice device,
|
||||
VkAttachmentDescription attDesc[] = {
|
||||
{
|
||||
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION, NULL,
|
||||
imformat, depth ? 4U : 1U,
|
||||
imformat, depth ? VULKAN_MESH_VIEW_SAMPLES : 1U,
|
||||
VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_STORE_OP_STORE,
|
||||
VK_ATTACHMENT_LOAD_OP_DONT_CARE, VK_ATTACHMENT_STORE_OP_DONT_CARE,
|
||||
VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
|
||||
},
|
||||
{
|
||||
VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION, NULL,
|
||||
VK_FORMAT_D32_SFLOAT, depth ? 4U : 1U,
|
||||
VK_FORMAT_D32_SFLOAT, depth ? VULKAN_MESH_VIEW_SAMPLES : 1U,
|
||||
VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_STORE_OP_STORE,
|
||||
VK_ATTACHMENT_LOAD_OP_DONT_CARE, VK_ATTACHMENT_STORE_OP_DONT_CARE,
|
||||
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
|
||||
@@ -470,7 +470,7 @@ void VulkanReplay::OutputWindow::Create(WrappedVulkan *driver, VkDevice device,
|
||||
VkImageCreateInfo imInfo = {
|
||||
VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, NULL,
|
||||
VK_IMAGE_TYPE_2D, imformat, { width, height, 1 },
|
||||
1, 1, depth ? 4U : 1U,
|
||||
1, 1, depth ? VULKAN_MESH_VIEW_SAMPLES : 1U,
|
||||
VK_IMAGE_TILING_OPTIMAL,
|
||||
VK_IMAGE_USAGE_TRANSFER_DESTINATION_BIT|VK_IMAGE_USAGE_TRANSFER_SOURCE_BIT|VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
|
||||
0, VK_SHARING_MODE_EXCLUSIVE, 0, NULL,
|
||||
@@ -2438,7 +2438,7 @@ void VulkanReplay::FlipOutputWindow(uint64_t id)
|
||||
{ outw.width, outw.height, 1 },
|
||||
};
|
||||
|
||||
if(outw.dsimg != VK_NULL_HANDLE)
|
||||
if(outw.dsimg != VK_NULL_HANDLE && VULKAN_MESH_VIEW_SAMPLES > 1U)
|
||||
vt->CmdResolveImage(Unwrap(cmd), Unwrap(outw.bb), VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL, Unwrap(outw.colimg[outw.curidx]), VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL, 1, &resolve);
|
||||
else
|
||||
vt->CmdCopyImage(Unwrap(cmd), Unwrap(outw.bb), VK_IMAGE_LAYOUT_TRANSFER_SOURCE_OPTIMAL, Unwrap(outw.colimg[outw.curidx]), VK_IMAGE_LAYOUT_TRANSFER_DESTINATION_OPTIMAL, 1, &cpy);
|
||||
|
||||
@@ -57,6 +57,9 @@ using std::map;
|
||||
// similar to RDCUNIMPLEMENTED but for things that are hit often so we don't want to fire the debugbreak.
|
||||
#define VULKANNOTIMP(...) do { static bool msgprinted = false; if(!msgprinted) RDCDEBUG("Vulkan not implemented - " __VA_ARGS__); msgprinted = true; } while(0)
|
||||
|
||||
// allows easy disabling of MSAA
|
||||
#define VULKAN_MESH_VIEW_SAMPLES 1U
|
||||
|
||||
class WrappedVulkan;
|
||||
class VulkanDebugManager;
|
||||
class VulkanResourceManager;
|
||||
|
||||
Reference in New Issue
Block a user