diff options
author | Marek Olšák <[email protected]> | 2011-09-02 07:35:48 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2011-09-10 08:53:29 +0200 |
commit | c4519c3aec37f5cb3db8fe7e8ead13ae04e792b5 (patch) | |
tree | 364ef162d7c0f89b9733cc684bce277b23e2079c /src/gallium/drivers/r600/r600_state_common.c | |
parent | 9edd0b5ddf406ef089edebd12999ff2a26774ca3 (diff) |
r600g: fix texture array filtering
This fixes piglit/fbo-generatemipmap-array.
It looks like SQ_TEX_SAMPLER_WORD0_0.TEX_ARRAY_OVERRIDE should be set
for array textures in order to disable filtering between slices,
which adds a dependency between sampler views and sampler states.
This patch reworks sampler state updates such that they are postponed until
draw time. TEX_ARRAY_OVERRIDE is updated according to bound sampler views.
This also consolidates setting the texture state between vertex and
pixel shaders.
Diffstat (limited to 'src/gallium/drivers/r600/r600_state_common.c')
-rw-r--r-- | src/gallium/drivers/r600/r600_state_common.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index 4d23833671c..ac426847eb8 100644 --- a/src/gallium/drivers/r600/r600_state_common.c +++ b/src/gallium/drivers/r600/r600_state_common.c @@ -564,6 +564,10 @@ void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info *info) if (rctx->have_depth_fb || rctx->have_depth_texture) r600_flush_depth_textures(rctx); } + + if (rctx->chip_class < EVERGREEN) + r600_update_sampler_states(rctx); + u_vbuf_mgr_draw_begin(rctx->vbuf_mgr, info); r600_vertex_buffer_update(rctx); |