diff --git a/renderdoc/driver/d3d12/d3d12_rendermesh.cpp b/renderdoc/driver/d3d12/d3d12_rendermesh.cpp index 742059528..906f594ab 100644 --- a/renderdoc/driver/d3d12/d3d12_rendermesh.cpp +++ b/renderdoc/driver/d3d12/d3d12_rendermesh.cpp @@ -411,7 +411,12 @@ void D3D12Replay::RenderMesh(uint32_t eventId, const std::vector &se { default: case SolidShade::Solid: pipe = cache.pipes[MeshDisplayPipelines::ePipe_SolidDepth]; break; - case SolidShade::Lit: pipe = cache.pipes[MeshDisplayPipelines::ePipe_Lit]; break; + case SolidShade::Lit: + pipe = cache.pipes[MeshDisplayPipelines::ePipe_Lit]; + // point list topologies don't have lighting obvious, just render them as solid + if(!pipe) + pipe = cache.pipes[MeshDisplayPipelines::ePipe_SolidDepth]; + break; case SolidShade::Secondary: pipe = cache.pipes[MeshDisplayPipelines::ePipe_Secondary]; break; } diff --git a/renderdoc/driver/vulkan/vk_rendermesh.cpp b/renderdoc/driver/vulkan/vk_rendermesh.cpp index daa1f1267..826fc2597 100644 --- a/renderdoc/driver/vulkan/vk_rendermesh.cpp +++ b/renderdoc/driver/vulkan/vk_rendermesh.cpp @@ -340,7 +340,7 @@ MeshDisplayPipelines VulkanDebugManager::CacheMeshDisplayPipelines(VkPipelineLay stages[2].stage = VK_SHADER_STAGE_GEOMETRY_BIT; pipeInfo.stageCount = 3; - if(stages[2].module != VK_NULL_HANDLE) + if(stages[2].module != VK_NULL_HANDLE && ia.topology != VK_PRIMITIVE_TOPOLOGY_POINT_LIST) { vkr = vt->CreateGraphicsPipelines(Unwrap(m_Device), VK_NULL_HANDLE, 1, &pipeInfo, NULL, &cache.pipes[MeshDisplayPipelines::ePipe_Lit]); @@ -585,7 +585,12 @@ void VulkanReplay::RenderMesh(uint32_t eventId, const std::vector &s { default: case SolidShade::Solid: pipe = cache.pipes[MeshDisplayPipelines::ePipe_SolidDepth]; break; - case SolidShade::Lit: pipe = cache.pipes[MeshDisplayPipelines::ePipe_Lit]; break; + case SolidShade::Lit: + pipe = cache.pipes[MeshDisplayPipelines::ePipe_Lit]; + // point list topologies don't have lighting obvious, just render them as solid + if(!pipe) + pipe = cache.pipes[MeshDisplayPipelines::ePipe_SolidDepth]; + break; case SolidShade::Secondary: pipe = cache.pipes[MeshDisplayPipelines::ePipe_Secondary]; break; }