Add easy to disable #define to control whether MSAA is used or not

This commit is contained in:
baldurk
2016-02-07 18:46:49 +01:00
parent 49c72c5a85
commit 4ec19f5b2c
3 changed files with 13 additions and 10 deletions
+5 -5
View File
@@ -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
+5 -5
View File
@@ -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);
+3
View File
@@ -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;