freedreno/a4xx: primitive-restart
authorRob Clark <robclark@freedesktop.org>
Wed, 22 Apr 2015 17:08:44 +0000 (13:08 -0400)
committerRob Clark <robclark@freedesktop.org>
Wed, 22 Apr 2015 17:20:28 +0000 (13:20 -0400)
This was the missing bit to get dolphin-emu working on a4xx.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/a4xx/fd4_emit.c

index 353873daa05feac4198d3c2305315f52d0b54b8f..4b6eb646aa7aabd07f37625aa1bfbcdb59885676 100644 (file)
@@ -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)