Fix Vulkan mesh output for tessellated quads

When selecting a draw with a tessellation evaluation shader using
layout(quads), RenderDoc would emit an "Unexpected output topology"
error.

Additional changes:

* Fixes a typo in the VK_EXT_transform_feedback name in various debug
  prints.

* Renames the "GS Out" 3D View tab in the Mesh Viewer to "GS/DS Out",
  to match the corresponding table. This affects all APIs.
This commit is contained in:
Wade Brainerd
2019-03-26 17:11:47 -04:00
committed by Baldur Karlsson
parent 6f07cc3ac4
commit cc0069e72f
4 changed files with 8 additions and 4 deletions
+1 -1
View File
@@ -568,7 +568,7 @@
</widget>
<widget class="QWidget" name="gsoutTab">
<attribute name="title">
<string>GS Out</string>
<string>GS/DS Out</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<property name="leftMargin">
@@ -4659,6 +4659,10 @@ void SPVModule::MakeReflection(GraphicsAPI sourceAPI, ShaderStage stage, const s
{
patchData.outTopo = Topology::TriangleStrip;
}
else if(mode.mode == spv::ExecutionModeQuads)
{
patchData.outTopo = Topology::TriangleList;
}
else if(mode.mode == spv::ExecutionModeDepthGreater)
{
for(SigParameter &sig : outputs)
+1 -1
View File
@@ -2758,7 +2758,7 @@ void VulkanReplay::FetchTessGSOut(uint32_t eventId)
if(!ObjDisp(m_Device)->CmdBeginTransformFeedbackEXT)
{
RDCLOG(
"VK_EXT_transform_feedback_extension not available, can't fetch tessellation/geometry "
"VK_EXT_transform_feedback extension not available, can't fetch tessellation/geometry "
"output");
return;
}
@@ -1173,12 +1173,12 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi
if(supportedExtensions.find(VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME) != supportedExtensions.end())
{
Extensions.push_back(VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME);
RDCLOG("Enabling VK_EXT_transform_feedback_extension");
RDCLOG("Enabling VK_EXT_transform_feedback extension");
}
else
{
RDCWARN(
"VK_EXT_transform_feedback_extension not available, mesh output from "
"VK_EXT_transform_feedback extension not available, mesh output from "
"geometry/tessellation stages will not be available");
}