summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers
diff options
context:
space:
mode:
authorGert Wollny <[email protected]>2019-10-02 09:28:55 +0200
committerGert Wollny <[email protected]>2019-10-02 07:34:36 +0000
commitc5da8230deb0b1f885392224cfd3613d099ec440 (patch)
treebc05bb1cd5b3601e23bd537c5255fa4007496bfb /src/gallium/drivers
parentd855e19b87ef6ef674689404f452c7daf31e9486 (diff)
etnaviv: enable triangle strips only when the hardware supports it
Some hardware has a bug with triangle strips and it is signalled by the flag BUG_FIXED8 whether this bug has been fixed. So only enable triangle strips when this flag is set. Thanks: Jonathan Marek and Christian Gmeiner for the pointers v2: Add TODO to indicate that the handling should be refined (Jonathan & Christian) Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r--src/gallium/drivers/etnaviv/etnaviv_context.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gallium/drivers/etnaviv/etnaviv_context.c b/src/gallium/drivers/etnaviv/etnaviv_context.c
index 82254f9c1c1..9af564440c0 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_context.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_context.c
@@ -479,9 +479,15 @@ etna_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
1 << PIPE_PRIM_LINES |
1 << PIPE_PRIM_LINE_STRIP |
1 << PIPE_PRIM_TRIANGLES |
- 1 << PIPE_PRIM_TRIANGLE_STRIP |
1 << PIPE_PRIM_TRIANGLE_FAN;
+ /* TODO: The bug relates only to indexed draws, but here we signal
+ * that there is no support for triangle strips at all. This should
+ * be refined.
+ */
+ if (VIV_FEATURE(ctx->screen, chipMinorFeatures2, BUG_FIXES8))
+ ctx->prim_hwsupport |= 1 << PIPE_PRIM_TRIANGLE_STRIP;
+
if (VIV_FEATURE(ctx->screen, chipMinorFeatures2, LINE_LOOP))
ctx->prim_hwsupport |= 1 << PIPE_PRIM_LINE_LOOP;