From 23c0c94ac36945c08ec21db8fa2b4e36d137320f Mon Sep 17 00:00:00 2001 From: Ilia Mirkin Date: Mon, 25 May 2015 21:12:46 -0400 Subject: [PATCH] nv30/draw: only use the DMA1 object (GART) if the bo is not in VRAM Instead of always having it in the data, let the bo placement decide it. This fixes glxgears with swtnl forced on. Signed-off-by: Ilia Mirkin Reviewed-by: Ben Skeggs Cc: "10.5 10.6" (cherry picked from commit fdad7dfbdae07b9273fc8f57e63258dbe542c9b5) --- src/gallium/drivers/nouveau/nv30/nv30_draw.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/nouveau/nv30/nv30_draw.c b/src/gallium/drivers/nouveau/nv30/nv30_draw.c index de8cde212fb..4fcc4340b23 100644 --- a/src/gallium/drivers/nouveau/nv30/nv30_draw.c +++ b/src/gallium/drivers/nouveau/nv30/nv30_draw.c @@ -127,7 +127,7 @@ nv30_render_draw_elements(struct vbuf_render *render, for (i = 0; i < r->vertex_info.num_attribs; i++) { PUSH_RESRC(push, NV30_3D(VTXBUF(i)), BUFCTX_VTXTMP, nv04_resource(r->buffer), r->offset + r->vtxptr[i], - NOUVEAU_BO_LOW | NOUVEAU_BO_RD, 0, 0); + NOUVEAU_BO_LOW | NOUVEAU_BO_RD, 0, NV30_3D_VTXBUF_DMA1); } if (!nv30_state_validate(nv30, FALSE)) @@ -172,7 +172,7 @@ nv30_render_draw_arrays(struct vbuf_render *render, unsigned start, uint nr) for (i = 0; i < r->vertex_info.num_attribs; i++) { PUSH_RESRC(push, NV30_3D(VTXBUF(i)), BUFCTX_VTXTMP, nv04_resource(r->buffer), r->offset + r->vtxptr[i], - NOUVEAU_BO_LOW | NOUVEAU_BO_RD, 0, 0); + NOUVEAU_BO_LOW | NOUVEAU_BO_RD, 0, NV30_3D_VTXBUF_DMA1); } if (!nv30_state_validate(nv30, FALSE)) @@ -245,7 +245,7 @@ vroute_add(struct nv30_render *r, uint attrib, uint sem, uint *idx) format = draw_translate_vinfo_format(emit); r->vtxfmt[attrib] = nv30_vtxfmt(pscreen, format)->hw; - r->vtxptr[attrib] = vinfo->size | NV30_3D_VTXBUF_DMA1; + r->vtxptr[attrib] = vinfo->size; vinfo->size += draw_translate_vinfo_size(emit); if (nv30_screen(pscreen)->eng3d->oclass < NV40_3D_CLASS) {