summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/failover/fo_state_emit.c
diff options
context:
space:
mode:
authorMichal Krol <michal@vmware.com>2010-02-23 16:09:10 +0100
committerMichal Krol <michal@vmware.com>2010-02-23 16:09:10 +0100
commit9187b25a15145933ca014556e109b17ecf38ece4 (patch)
treeb0520024b3787537d30438bc782720226c8e9367 /src/gallium/drivers/failover/fo_state_emit.c
parentf6106566081978f663cf08e54bb8908cb58a5316 (diff)
failover: Fix after sampler view changes.
Diffstat (limited to 'src/gallium/drivers/failover/fo_state_emit.c')
-rw-r--r--src/gallium/drivers/failover/fo_state_emit.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/gallium/drivers/failover/fo_state_emit.c b/src/gallium/drivers/failover/fo_state_emit.c
index 1c37668027..171151e1ee 100644
--- a/src/gallium/drivers/failover/fo_state_emit.c
+++ b/src/gallium/drivers/failover/fo_state_emit.c
@@ -102,12 +102,24 @@ failover_state_emit( struct failover_context *failover )
failover->sw_vertex_sampler_state);
}
- if (failover->dirty & FO_NEW_TEXTURE) {
- failover->sw->set_fragment_sampler_views( failover->sw, failover->num_sampler_views,
- failover->sampler_views );
+ if (failover->dirty & FO_NEW_SAMPLER_VIEW) {
+ struct pipe_sampler_view *fragment_views[PIPE_MAX_SAMPLERS];
+ struct pipe_sampler_view *vertex_views[PIPE_MAX_VERTEX_SAMPLERS];
+ uint i;
+
+ for (i = 0; i < failover->num_fragment_sampler_views; i++) {
+ fragment_views[i] = failover->fragment_sampler_views[i]->sw;
+ }
+ failover->sw->set_fragment_sampler_views(failover->sw,
+ failover->num_fragment_sampler_views,
+ fragment_views);
+
+ for (i = 0; i < failover->num_vertex_sampler_views; i++) {
+ vertex_views[i] = failover->vertex_sampler_views[i]->sw;
+ }
failover->sw->set_vertex_sampler_views(failover->sw,
- failover->num_vertex_sampler_views,
- failover->vertex_sampler_views);
+ failover->num_vertex_sampler_views,
+ vertex_views);
}
if (failover->dirty & FO_NEW_VERTEX_BUFFER) {