freedreno/a3xx: point size should not be divided by 2
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 17 Mar 2015 05:00:38 +0000 (01:00 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Sat, 28 Mar 2015 18:54:41 +0000 (14:54 -0400)
The division is probably a holdover from the days when the fixed point
inline functions generated by headergen were broken.

Also reduce the maximum point size to 4092 (vs 4096), which is what the
blob does.

Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.c
src/gallium/drivers/freedreno/freedreno_screen.c

index 4b926b50f44c5dbbf9c63b94dcf34417b3567733..345f688fd5f11ac1a78f8053eb1522ecd6542166 100644 (file)
@@ -50,7 +50,7 @@ fd3_rasterizer_state_create(struct pipe_context *pctx,
 
        if (cso->point_size_per_vertex) {
                psize_min = util_get_min_point_size(cso);
-               psize_max = 8192;
+               psize_max = 4092;
        } else {
                /* Force the point size to be as if the vertex output was disabled. */
                psize_min = cso->point_size;
@@ -67,9 +67,9 @@ fd3_rasterizer_state_create(struct pipe_context *pctx,
 */
        so->gras_cl_clip_cntl = A3XX_GRAS_CL_CLIP_CNTL_IJ_PERSP_CENTER; /* ??? */
        so->gras_su_point_minmax =
-                       A3XX_GRAS_SU_POINT_MINMAX_MIN(psize_min/2) |
-                       A3XX_GRAS_SU_POINT_MINMAX_MAX(psize_max/2);
-       so->gras_su_point_size   = A3XX_GRAS_SU_POINT_SIZE(cso->point_size/2);
+                       A3XX_GRAS_SU_POINT_MINMAX_MIN(psize_min) |
+                       A3XX_GRAS_SU_POINT_MINMAX_MAX(psize_max);
+       so->gras_su_point_size   = A3XX_GRAS_SU_POINT_SIZE(cso->point_size);
        so->gras_su_poly_offset_scale =
                        A3XX_GRAS_SU_POLY_OFFSET_SCALE_VAL(cso->offset_scale);
        so->gras_su_poly_offset_offset =
index 1e4708935ff6668a7eb646185364c510b6f146ba..68c81055f3da186ea4a81030b598e5002770cfc7 100644 (file)
@@ -300,7 +300,7 @@ fd_screen_get_paramf(struct pipe_screen *pscreen, enum pipe_capf param)
        case PIPE_CAPF_MAX_LINE_WIDTH_AA:
        case PIPE_CAPF_MAX_POINT_WIDTH:
        case PIPE_CAPF_MAX_POINT_WIDTH_AA:
-               return 8192.0f;
+               return 4092.0f;
        case PIPE_CAPF_MAX_TEXTURE_ANISOTROPY:
                return 16.0f;
        case PIPE_CAPF_MAX_TEXTURE_LOD_BIAS: