绘制水平或垂直线不会在表面上绘制。福尔康

时间:2017-03-22 16:38:25

标签: vulkan

没有画线的问题。但只有它完全垂直或水平。

假设我有分数A {400,300}和B {400,200}。现在,如果我尝试在这些点之间画一条线,它就不会在屏幕上找到它。

但是,如果我将A点更改为{401,300},程序将按照我打算运行的方式运行。

是否有明确的理由说明直线水平线或垂直线不会被绘制?还有一种规避方法吗?不要倾斜所有的直线。

部分管道设置:

inputAssembly.topology = vk::PrimitiveTopology::eLineStrip;
rasterInfo.polygonMode = vk::PolygonMode::eLine;

在intel igpu上使用VulkanSDK 1.0.42.1。

编辑: 好的,如果我在光栅化器上提高线宽超过1.f它将绘制。然而,并非每个gpu都能够做到这一点。但至少是一个时间怪癖。

1 个答案:

答案 0 :(得分:0)

(我知道这是一个非常古老的帖子,但没有提供答案。; - ))。

如果行宽大于1.0f - 只有在启用wideLines功能时才允许绘制此类行,并且只有在您使用的物理设备支持时才能启用它。如果不启用此功能,则在管道创建期间,您无法为线宽提供1.0以外的值。因此,即使它有效,它也只能是一个临时解决方案,因为您违反了规范。

这种行为表明它是驱动程序中的一个错误。试试最新版本(如果你还没有这样做),如果它没有帮助联系英特尔的支持并提交错误(如果你还没有这样做的话;-) )。