From 5c97b1b8026698763a61a50baa60866424ea1aad Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 18 Nov 2015 16:06:52 +0100 Subject: [PATCH] Creating geometry shaders works better if you pass the right SPIR-V... --- renderdoc/data/renderdoc.rc | 2 +- renderdoc/driver/vulkan/vk_debug.cpp | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/renderdoc/data/renderdoc.rc b/renderdoc/data/renderdoc.rc index 05b4395ff..5a3c9e433 100644 --- a/renderdoc/data/renderdoc.rc +++ b/renderdoc/data/renderdoc.rc @@ -140,7 +140,7 @@ RESOURCE_genericvs_spv TYPE_EMBED "spv/genericvs.spv" RESOURCE_genericfs_spv TYPE_EMBED "spv/genericfs.spv" RESOURCE_fixedcolfs_spv TYPE_EMBED "spv/fixedcolfs.spv" RESOURCE_meshvs_spv TYPE_EMBED "spv/meshvs.spv" -RESOURCE_meshgs_spv TYPE_EMBED "spv/meshfs.spv" +RESOURCE_meshgs_spv TYPE_EMBED "spv/meshgs.spv" RESOURCE_meshfs_spv TYPE_EMBED "spv/meshfs.spv" #ifndef APSTUDIO_INVOKED diff --git a/renderdoc/driver/vulkan/vk_debug.cpp b/renderdoc/driver/vulkan/vk_debug.cpp index 2ae90f29e..e09e32e61 100644 --- a/renderdoc/driver/vulkan/vk_debug.cpp +++ b/renderdoc/driver/vulkan/vk_debug.cpp @@ -2274,14 +2274,9 @@ MeshDisplayPipelines VulkanDebugManager::CacheMeshDisplayPipelines(const MeshFor RDCASSERT(vkr == VK_SUCCESS); } - // seems to not be working at the moment, just make a solid-shaded pipeline vertAttrs[1].binding = 0; vi.bindingCount = 1; -#if 1 - vkr = vt->CreateGraphicsPipelines(Unwrap(m_Device), VK_NULL_HANDLE, 1, &pipeInfo, &cache.pipes[MeshDisplayPipelines::ePipe_Lit]); - RDCASSERT(vkr == VK_SUCCESS); -#else // flat lit pipeline, needs geometry shader to calculate face normals stages[0].shader = Unwrap(m_MeshShaders[0]); stages[0].stage = VK_SHADER_STAGE_VERTEX; @@ -2289,10 +2284,10 @@ MeshDisplayPipelines VulkanDebugManager::CacheMeshDisplayPipelines(const MeshFor stages[1].stage = VK_SHADER_STAGE_GEOMETRY; stages[2].shader = Unwrap(m_MeshShaders[2]); stages[2].stage = VK_SHADER_STAGE_FRAGMENT; + pipeInfo.stageCount = 3; vkr = vt->CreateGraphicsPipelines(Unwrap(m_Device), VK_NULL_HANDLE, 1, &pipeInfo, &cache.pipes[MeshDisplayPipelines::ePipe_Lit]); RDCASSERT(vkr == VK_SUCCESS); -#endif for(uint32_t i=0; i < MeshDisplayPipelines::ePipe_Count; i++) if(cache.pipes[i] != VK_NULL_HANDLE)