[Mesa-dev] [PATCH 2/4] radeon/r200: mark state atoms as dirty after blits
sroland at vmware.com
sroland at vmware.com
Sat Jul 11 11:39:45 PDT 2015
From: Roland Scheidegger <sroland at vmware.com>
Blit submits lots of packets which are usually handled by state atoms, so
these must be dirtied.
Not sure if this fixes anything, but it was a concern raised by bug 51658
(with this all issues there seen as actual bugs should be fixed, with the
exception of the patch to upload non-used texenv state atoms which I just
don't understand).
---
src/mesa/drivers/dri/r200/r200_blit.c | 16 ++++++++++++++++
src/mesa/drivers/dri/radeon/radeon_blit.c | 8 ++++++++
2 files changed, 24 insertions(+)
diff --git a/src/mesa/drivers/dri/r200/r200_blit.c b/src/mesa/drivers/dri/r200/r200_blit.c
index 3adc694..0e6afa0 100644
--- a/src/mesa/drivers/dri/r200/r200_blit.c
+++ b/src/mesa/drivers/dri/r200/r200_blit.c
@@ -547,5 +547,21 @@ unsigned r200_blit(struct gl_context *ctx,
radeonFlush(ctx);
+ /* We submitted those packets outside our state atom mechanism. Thus
+ * make sure the atoms are resubmitted the next time. */
+ r200->hw.cst.dirty = GL_TRUE;
+ r200->hw.ctx.dirty = GL_TRUE;
+ r200->hw.vap.dirty = GL_TRUE;
+ r200->hw.msk.dirty = GL_TRUE;
+ r200->hw.pix[0].dirty = GL_TRUE;
+ r200->hw.pix[1].dirty = GL_TRUE;
+ r200->hw.pix[2].dirty = GL_TRUE;
+ r200->hw.pix[3].dirty = GL_TRUE;
+ r200->hw.sci.dirty = GL_TRUE;
+ r200->hw.set.dirty = GL_TRUE;
+ r200->hw.tex[0].dirty = GL_TRUE;
+ r200->hw.vte.dirty = GL_TRUE;
+ r200->hw.vtx.dirty = GL_TRUE;
+
return GL_TRUE;
}
diff --git a/src/mesa/drivers/dri/radeon/radeon_blit.c b/src/mesa/drivers/dri/radeon/radeon_blit.c
index 0de1751..028e8b0 100644
--- a/src/mesa/drivers/dri/radeon/radeon_blit.c
+++ b/src/mesa/drivers/dri/radeon/radeon_blit.c
@@ -425,5 +425,13 @@ unsigned r100_blit(struct gl_context *ctx,
radeonFlush(ctx);
+ /* We submitted those packets outside our state atom mechanism. Thus
+ * make sure they are all resubmitted the next time. */
+ r100->hw.ctx.dirty = GL_TRUE;
+ r100->hw.msk.dirty = GL_TRUE;
+ r100->hw.set.dirty = GL_TRUE;
+ r100->hw.tex[0].dirty = GL_TRUE;
+ r100->hw.txr[0].dirty = GL_TRUE;
+
return GL_TRUE;
}
--
2.1.4
More information about the mesa-dev
mailing list