st/mesa: Increase GL_POINT_SIZE_RANGE minimum to 1.0
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 13 Sep 2019 02:12:10 +0000 (19:12 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 16 Sep 2019 20:40:41 +0000 (13:40 -0700)
Table 23.54 of the OpenGL 4.5 spec lists the minimum values for
GL_POINT_SIZE_RANGE as [1, 1].  So zero is not allowed (even though
arguably this could be useful for MSAA rendering, where a sub-1px
point might cover only some samples...)

This fixes the WebGL 2.0 conformance suite's state.gl-get-calls test
on Chromium on Linux, which uses desktop OpenGL.  The test checks that
the minimum value of GL_ALIASED_POINT_SIZE_RANGE is 1.  Unfortunately,
that query doesn't exist in desktop GL, so it checks POINT_SIZE_RANGE,
which is the anti-aliased value.  There's not really anything better
for Chromium to do here, unfortunately.  When running Chromium with
--api=es3, it maps it to the correct query and the test already works.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/state_tracker/st_extensions.c

index ed81134..40e51f8 100644 (file)
@@ -132,11 +132,8 @@ void st_init_limits(struct pipe_screen *screen,
    c->MaxPointSizeAA =
       _maxf(1.0f, screen->get_paramf(screen, PIPE_CAPF_MAX_POINT_WIDTH_AA));
 
-   /* these are not queryable. Note that GL basically mandates a 1.0 minimum
-    * for non-aa sizes, but we can go down to 0.0 for aa points.
-    */
    c->MinPointSize = 1.0f;
-   c->MinPointSizeAA = 0.0f;
+   c->MinPointSizeAA = 1.0f;
 
    c->MaxTextureMaxAnisotropy =
       _maxf(2.0f,