diff --git a/util/test/demos/d3d11/d3d11_mesh_zoo.cpp b/util/test/demos/d3d11/d3d11_mesh_zoo.cpp index 0a32c865a..29d3fccb3 100644 --- a/util/test/demos/d3d11/d3d11_mesh_zoo.cpp +++ b/util/test/demos/d3d11/d3d11_mesh_zoo.cpp @@ -178,6 +178,12 @@ float4 main(v2f IN) : SV_Target0 ctx->Draw(4, 6); + setMarker("Lines"); + + ctx->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_LINELIST); + + ctx->Draw(4, 6); + setMarker("Stride 0"); IASetVertexBuffer(vb, 0, 0); diff --git a/util/test/demos/d3d12/d3d12_mesh_zoo.cpp b/util/test/demos/d3d12/d3d12_mesh_zoo.cpp index ced582c80..60d85e7fd 100644 --- a/util/test/demos/d3d12/d3d12_mesh_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_mesh_zoo.cpp @@ -191,6 +191,12 @@ float4 main(v2f IN) : SV_Target0 cmd->DrawInstanced(4, 1, 6, 0); + setMarker(cmd, "Lines"); + + cmd->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_LINELIST); + + cmd->DrawInstanced(4, 1, 6, 0); + setMarker(cmd, "Stride 0"); IASetVertexBuffer(cmd, vb, 0, 0); diff --git a/util/test/demos/gl/gl_mesh_zoo.cpp b/util/test/demos/gl/gl_mesh_zoo.cpp index f502b1d41..e5ec24266 100644 --- a/util/test/demos/gl/gl_mesh_zoo.cpp +++ b/util/test/demos/gl/gl_mesh_zoo.cpp @@ -291,6 +291,10 @@ void main() glDrawArrays(GL_POINTS, 6, 4); + setMarker("Lines"); + + glDrawArrays(GL_LINES, 6, 4); + setMarker("Stride 0"); glBindVertexArray(stride0vao); diff --git a/util/test/demos/vk/vk_mesh_zoo.cpp b/util/test/demos/vk/vk_mesh_zoo.cpp index 6ce43275c..f9f9b5b85 100644 --- a/util/test/demos/vk/vk_mesh_zoo.cpp +++ b/util/test/demos/vk/vk_mesh_zoo.cpp @@ -215,6 +215,10 @@ void main() VkPipeline pointspipe = createGraphicsPipeline(pipeCreateInfo); + pipeCreateInfo.inputAssemblyState.topology = VK_PRIMITIVE_TOPOLOGY_LINE_LIST; + + VkPipeline linespipe = createGraphicsPipeline(pipeCreateInfo); + pipeCreateInfo.vertexInputState.vertexBindingDescriptions = {{0, 0, VK_VERTEX_INPUT_RATE_VERTEX}}; pipeCreateInfo.layout = layout2; @@ -294,6 +298,12 @@ void main() vkCmdDraw(cmd, 4, 1, 6, 0); + setMarker(cmd, "Lines"); + + vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, linespipe); + + vkCmdDraw(cmd, 4, 1, 6, 0); + setMarker(cmd, "Stride 0"); vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, stride0pipe); diff --git a/util/test/rdtest/shared/Mesh_Zoo.py b/util/test/rdtest/shared/Mesh_Zoo.py index 7a648b2cd..7f194602c 100644 --- a/util/test/rdtest/shared/Mesh_Zoo.py +++ b/util/test/rdtest/shared/Mesh_Zoo.py @@ -369,6 +369,23 @@ class Mesh_Zoo(): rdtest.log.success("Point picking is as expected") + self.cfg.highlightVert = rd.MeshDisplay.NoHighlight + self.cfg.solidShadeMode = rd.SolidShade.Solid + + self.cache_output() + self.cfg.solidShadeMode = rd.SolidShade.Lit + self.cache_output() + + rdtest.log.success("Point solid and lit rendering works as expected") + + self.controller.SetFrameEvent(self.find_action("Lines").next.eventId, False) + + self.cache_output() + self.cfg.solidShadeMode = rd.SolidShade.Lit + self.cache_output() + + rdtest.log.success("Lines solid and lit rendering works as expected") + self.controller.SetFrameEvent(self.find_action("Stride 0").next.eventId, False) self.cfg.position = self.controller.GetPostVSData(0, 0, self.cfg.type)