Mesa (master): radeonsi: deduce rast_prim correctly for tessellation point mode

Nicolai Hähnle nh at kemper.freedesktop.org
Mon Oct 2 13:07:58 UTC 2017


Module: Mesa
Branch: master
Commit: a3fa3b2e025f2a7d1eed45b332a89bc0d66ee0e4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3fa3b2e025f2a7d1eed45b332a89bc0d66ee0e4

Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Sun Sep 17 11:28:21 2017 +0200

radeonsi: deduce rast_prim correctly for tessellation point mode

Together with the previous patches, this fixes
dEQP-GLES31.functional.primitive_bounding_box.wide_points.*

Cc: mesa-stable at lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeonsi/si_state_draw.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index fb91d936c9..42807c0309 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -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) {




More information about the mesa-commit mailing list