[Mesa-dev] [PATCH] i965: Use a minimum point width of 1.0.

Kenneth Graunke kenneth at whitecape.org
Sat Nov 17 09:40:02 UTC 2018


We advertise 1.0 as the minimum point width size, and we probably ought
to clamp gl_PointSize to the actual range we advertise ([1,255]).  In
particular, we don't seem to rasterize any points if the shader outputs
a point size smaller than 1.0, and that seems rather sketchy.

This fixes Piglit's vs-point_size-zero test, which writes 0 for
gl_PointSize and expects something to be rendered.  However, that test
may be technically incorrect - according to the OpenGL spec, "If the
value written to gl_PointSize is less than or equal to zero, results are
undefined."  Presumably "undefined" includes "don't render any points".

Of course, what the test expects is pretty /reasonable/ behavior, even
if not mandatory, so we may as well do what it wants...
---
 src/mesa/drivers/dri/i965/genX_state_upload.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c
index 5acd0922922..0a0add97d80 100644
--- a/src/mesa/drivers/dri/i965/genX_state_upload.c
+++ b/src/mesa/drivers/dri/i965/genX_state_upload.c
@@ -1547,7 +1547,7 @@ genX(upload_clip_state)(struct brw_context *brw)
       if (!brw_is_drawing_points(brw) && !brw_is_drawing_lines(brw))
          clip.ViewportXYClipTestEnable = true;
 
-      clip.MinimumPointWidth = 0.125;
+      clip.MinimumPointWidth = 1.0;
       clip.MaximumPointWidth = 255.875;
       clip.MaximumVPIndex = viewport_count - 1;
       if (_mesa_geometric_layers(fb) == 0)
-- 
2.19.1



More information about the mesa-dev mailing list