diff options
author | Brian Paul <brianp@vmware.com> | 2013-09-12 16:11:03 -0600 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2013-09-12 18:14:19 -0600 |
commit | eb284c79bed658caf91b5dd9a00298406004c42f (patch) | |
tree | 2446e047f1b91c5f33ff0710f22453dab3011862 | |
parent | bba8049d7e44c6101f9495db28f386234a2dc68c (diff) |
freedreno: use new bind_sampler_states() function
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_texture.c | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_texture.c b/src/gallium/drivers/freedreno/freedreno_texture.c index ff8a445dec..fc0c8aa334 100644 --- a/src/gallium/drivers/freedreno/freedreno_texture.c +++ b/src/gallium/drivers/freedreno/freedreno_texture.c @@ -92,20 +92,29 @@ static void set_sampler_views(struct fd_texture_stateobj *prog, } static void -fd_fragtex_sampler_states_bind(struct pipe_context *pctx, +fd_sampler_states_bind(struct pipe_context *pctx, + unsigned shader, unsigned start, unsigned nr, void **hwcso) { struct fd_context *ctx = fd_context(pctx); - /* on a2xx, since there is a flat address space for textures/samplers, - * a change in # of fragment textures/samplers will trigger patching and - * re-emitting the vertex shader: - */ - if (nr != ctx->fragtex.num_samplers) - ctx->dirty |= FD_DIRTY_TEXSTATE; + assert(start == 0); - bind_sampler_states(&ctx->fragtex, nr, hwcso); - ctx->dirty |= FD_DIRTY_FRAGTEX; + if (shader == PIPE_SHADER_FRAGMENT) { + /* on a2xx, since there is a flat address space for textures/samplers, + * a change in # of fragment textures/samplers will trigger patching and + * re-emitting the vertex shader: + */ + if (nr != ctx->fragtex.num_samplers) + ctx->dirty |= FD_DIRTY_TEXSTATE; + + bind_sampler_states(&ctx->fragtex, nr, hwcso); + ctx->dirty |= FD_DIRTY_FRAGTEX; + } + else if (shader == PIPE_SHADER_VERTEX) { + bind_sampler_states(&ctx->verttex, nr, hwcso); + ctx->dirty |= FD_DIRTY_VERTTEX; + } } @@ -127,16 +136,6 @@ fd_fragtex_set_sampler_views(struct pipe_context *pctx, unsigned nr, } static void -fd_verttex_sampler_states_bind(struct pipe_context *pctx, - unsigned nr, void **hwcso) -{ - struct fd_context *ctx = fd_context(pctx); - bind_sampler_states(&ctx->verttex, nr, hwcso); - ctx->dirty |= FD_DIRTY_VERTTEX; -} - - -static void fd_verttex_set_sampler_views(struct pipe_context *pctx, unsigned nr, struct pipe_sampler_view **views) { @@ -152,9 +151,8 @@ fd_texture_init(struct pipe_context *pctx) pctx->sampler_view_destroy = fd_sampler_view_destroy; - pctx->bind_fragment_sampler_states = fd_fragtex_sampler_states_bind; + pctx->bind_sampler_states = fd_sampler_states_bind; pctx->set_fragment_sampler_views = fd_fragtex_set_sampler_views; - pctx->bind_vertex_sampler_states = fd_verttex_sampler_states_bind; pctx->set_vertex_sampler_views = fd_verttex_set_sampler_views; } |