summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nvfx
diff options
context:
space:
mode:
authorLucas Stach <dev@lynxeye.de>2012-01-24 09:54:31 +0100
committerMarek Olšák <maraeo@gmail.com>2012-01-26 14:15:29 +0100
commit5ce741873954a40e482fa311ff35f53831356364 (patch)
tree4893ae6615a15b66441811e686f4d45b565099a7 /src/gallium/drivers/nvfx
parent1b417e176765116fd9185b7ea8d6cc8825c30aa3 (diff)
downloadexternal_mesa3d-5ce741873954a40e482fa311ff35f53831356364.zip
external_mesa3d-5ce741873954a40e482fa311ff35f53831356364.tar.gz
external_mesa3d-5ce741873954a40e482fa311ff35f53831356364.tar.bz2
nvfx: fix nv3x fallout from state validation changes
From c998f732d42da5e962fe5da294493132c3e8dc5f Mon Sep 17 00:00:00 2001 From: Lucas Stach <dev@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.
Diffstat (limited to 'src/gallium/drivers/nvfx')
-rw-r--r--src/gallium/drivers/nvfx/nvfx_state_emit.c6
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);
}