summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Clark <[email protected]>2015-04-22 13:08:44 -0400
committerRob Clark <[email protected]>2015-04-22 13:20:28 -0400
commita86918312320ccc2e6dafae25fd5800ef62b3710 (patch)
treeb8927fe9d2ee6791f7bb676df401c2cba0bb40ac
parent632ea2a1139f4b228ca55331e411dbae9920c28d (diff)
freedreno/a4xx: primitive-restart
This was the missing bit to get dolphin-emu working on a4xx. Signed-off-by: Rob Clark <[email protected]>
-rw-r--r--src/gallium/drivers/freedreno/a4xx/fd4_emit.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/a4xx/fd4_emit.c b/src/gallium/drivers/freedreno/a4xx/fd4_emit.c
index 353873daa05..4b6eb646aa7 100644
--- a/src/gallium/drivers/freedreno/a4xx/fd4_emit.c
+++ b/src/gallium/drivers/freedreno/a4xx/fd4_emit.c
@@ -466,10 +466,15 @@ fd4_emit_state(struct fd_context *ctx, struct fd_ringbuffer *ring,
* when it changes.
*/
if (emit->info) {
+ const struct pipe_draw_info *info = emit->info;
uint32_t val = fd4_rasterizer_stateobj(ctx->rasterizer)
->pc_prim_vtx_cntl;
+ if (info->indexed && info->primitive_restart)
+ val |= A4XX_PC_PRIM_VTX_CNTL_PRIMITIVE_RESTART;
+
val |= COND(vp->writes_psize, A4XX_PC_PRIM_VTX_CNTL_PSIZE);
+
if (fp->total_in > 0) {
uint32_t varout = align(fp->total_in, 16) / 16;
if (varout > 1)