Skip to content

draw: fix stippling of fractional lines

Erik Faye-Lund requested to merge kusma/mesa:draw-fractional-stipple into main

The OpenGL 4.6 specification, section 14.5.2.1 (Line Stipple) says:

The masking is achieved using three parameters: the 16-bit line stipple p, the line repeat count r, and an integer stipple counter s.

This is pretty clear that the stipple counter shouldn't carry fractional parts. But we also don't really do anything useful with the fractional part anyway, apart from skewing the third or later line-segments

Properly carrying over the fractional parts as the Vulkan specification allows for rectangular lines is trickier than this and would require us to use a shorter output-line at the start of the following line-segments.

But let's just do what the OpenGL specification describes, and the Vulkan specification allows for now.

This, combined with the following patch for the vulkan CTS makes the last two rasterization-tests pass for me:

https://github.com/KhronosGroup/VK-GL-CTS/pull/279

Fixes the "spec/!opengl 1.1/linestipple/line strip" piglit-test.

Edited by Erik Faye-Lund

Merge request reports