summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2017-09-17 11:28:21 +0200
committerNicolai Hähnle <[email protected]>2017-10-02 15:07:44 +0200
commita3fa3b2e025f2a7d1eed45b332a89bc0d66ee0e4 (patch)
tree42f9d35e4fe7364b10249af23956e1f11515f0b1
parent4d74432dd3b64814aca7d31fa133d5ee8bce9026 (diff)
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: [email protected] Reviewed-by: Marek Olšák <[email protected]>
-rw-r--r--src/gallium/drivers/radeonsi/si_state_draw.c9
1 files 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 fb91d936c96..42807c03091 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) {