diff options
author | Michal Krol <michal@vmware.com> | 2010-02-23 16:09:10 +0100 |
---|---|---|
committer | Michal Krol <michal@vmware.com> | 2010-02-23 16:09:10 +0100 |
commit | 9187b25a15145933ca014556e109b17ecf38ece4 (patch) | |
tree | b0520024b3787537d30438bc782720226c8e9367 /src/gallium/drivers/failover/fo_state_emit.c | |
parent | f6106566081978f663cf08e54bb8908cb58a5316 (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.c | 22 |
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) { |