radeonsi: deduce rast_prim correctly for tessellation point mode
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Sun, 17 Sep 2017 09:28:21 +0000 (11:28 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Mon, 2 Oct 2017 13:07:44 +0000 (15:07 +0200)
Together with the previous patches, this fixes
dEQP-GLES31.functional.primitive_bounding_box.wide_points.*

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_state_draw.c

index fb91d936c96bed1048e8a690bd30d95cd034619c..42807c0309142d35190490415c49215cc88bfd36 100644 (file)
@@ -1249,9 +1249,12 @@ void si_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info)
         * current_rast_prim for this draw_vbo call. */
        if (sctx->gs_shader.cso)
                rast_prim = sctx->gs_shader.cso->gs_output_prim;
-       else if (sctx->tes_shader.cso)
-               rast_prim = sctx->tes_shader.cso->info.properties[TGSI_PROPERTY_TES_PRIM_MODE];
-       else
+       else if (sctx->tes_shader.cso) {
+               if (sctx->tes_shader.cso->info.properties[TGSI_PROPERTY_TES_POINT_MODE])
+                       rast_prim = PIPE_PRIM_POINTS;
+               else
+                       rast_prim = sctx->tes_shader.cso->info.properties[TGSI_PROPERTY_TES_PRIM_MODE];
+       } else
                rast_prim = info->mode;
 
        if (rast_prim != sctx->b.current_rast_prim) {