Mesa (master): dri/nouveau: Call _mesa_update_state() after framebuffer invalidation.

Francisco Jerez currojerez at kemper.freedesktop.org
Sun Oct 31 01:08:46 UTC 2010


Module: Mesa
Branch: master
Commit: f102c5220c8b671d92c04dce803b9c1f474f7253
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f102c5220c8b671d92c04dce803b9c1f474f7253

Author: Francisco Jerez <currojerez at riseup.net>
Date:   Mon Oct 25 21:35:54 2010 +0200

dri/nouveau: Call _mesa_update_state() after framebuffer invalidation.

Previously nouveau_state_emit() was being called directly, sometimes
that doesn't work because it doesn't update the derived GL context.

---

 src/mesa/drivers/dri/nouveau/nouveau_context.c |    3 ++-
 src/mesa/drivers/dri/nouveau/nv10_context.c    |    4 ++++
 2 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/nouveau/nouveau_context.c b/src/mesa/drivers/dri/nouveau/nouveau_context.c
index 0ace139..c6cf781 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_context.c
+++ b/src/mesa/drivers/dri/nouveau/nouveau_context.c
@@ -365,5 +365,6 @@ nouveau_validate_framebuffer(struct gl_context *ctx)
 		validate_framebuffer(dri_ctx, dri_read,
 				     &dri_ctx->dri2.read_stamp);
 
-	nouveau_state_emit(ctx);
+	if (ctx->NewState & _NEW_BUFFERS)
+		_mesa_update_state(ctx);
 }
diff --git a/src/mesa/drivers/dri/nouveau/nv10_context.c b/src/mesa/drivers/dri/nouveau/nv10_context.c
index fdcb43b..78be401 100644
--- a/src/mesa/drivers/dri/nouveau/nv10_context.c
+++ b/src/mesa/drivers/dri/nouveau/nv10_context.c
@@ -24,6 +24,7 @@
  *
  */
 
+#include "main/state.h"
 #include "nouveau_driver.h"
 #include "nouveau_context.h"
 #include "nouveau_fbo.h"
@@ -184,6 +185,9 @@ nv10_clear(struct gl_context *ctx, GLbitfield buffers)
 			nv17_zclear(ctx, &buffers);
 		else
 			nv10_zclear(ctx, &buffers);
+
+		/* Emit the zclear state if it's dirty */
+		_mesa_update_state(ctx);
 	}
 
 	nouveau_clear(ctx, buffers);




More information about the mesa-commit mailing list