Mesa (master): nvfx: fix nv3x fallout from state validation changes

Marek Olšák mareko at kemper.freedesktop.org
Thu Jan 26 13:17:52 UTC 2012


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

Author: Lucas Stach <dev at lynxeye.de>
Date:   Tue Jan 24 09:54:31 2012 +0100

nvfx: fix nv3x fallout from state validation changes

>From c998f732d42da5e962fe5da294493132c3e8dc5f Mon Sep 17 00:00:00 2001
From: Lucas Stach <dev at lynxeye.de>
Date: Tue, 24 Jan 2012 09:46:32 +0100
Subject: [PATCH] nvfx: fix nv3x fallout from state validation changes

Apparently nv3x needs some curde hacks to work properly. This
is clearly not the right fix, but it's the behaviour of the old
code and fixes regressions seen by users.

---

 src/gallium/drivers/nvfx/nvfx_state_emit.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/gallium/drivers/nvfx/nvfx_state_emit.c b/src/gallium/drivers/nvfx/nvfx_state_emit.c
index a959015..60ed2d0 100644
--- a/src/gallium/drivers/nvfx/nvfx_state_emit.c
+++ b/src/gallium/drivers/nvfx/nvfx_state_emit.c
@@ -244,6 +244,9 @@ nvfx_state_validate_common(struct nvfx_context *nvfx)
 	}
 
 	if(dirty & NVFX_NEW_SAMPLER) {
+		/* XXX: we take the big hammer here, I have no idea why this is needed
+		   to make this work properly */
+		nvfx->dirty &= ~NVFX_NEW_SAMPLER;
 		nvfx_fragtex_validate(nvfx);
 
 		// TODO: only set this if really necessary
@@ -303,7 +306,8 @@ nvfx_state_validate_common(struct nvfx_context *nvfx)
 	if(dirty & NVFX_NEW_SR)
 		nvfx_state_sr_validate(nvfx);
 
-	if(dirty & NVFX_NEW_VIEWPORT)
+	/* XXX: nv3x needs viewport revalidation after RAST or ZSA change */
+	if(dirty & (NVFX_NEW_VIEWPORT | NVFX_NEW_RAST | NVFX_NEW_ZSA))
 	{
 		nvfx_state_viewport_validate(nvfx);
 	}




More information about the mesa-commit mailing list