diff options
author | Neil Roberts <nroberts@igalia.com> | 2020-09-29 17:20:31 +0200 |
---|---|---|
committer | Neil Roberts <nroberts@igalia.com> | 2020-10-04 15:29:54 +0200 |
commit | d25504dae01eadf02a5364fc75bfcf490bc3831a (patch) | |
tree | 3629051c50e0d2e2e1af293bb9e20e6d039ef412 | |
parent | ef918f0e3354fbff4d9d73f6186a3dc970d43514 (diff) |
v3d: Make the function to set tex dirty state for a stage global
This moves the static function v3d_dirty_tex_state_for_shader_type from
v3dx_state.c to v3d_context.c and adds a declaration for it in the
header so that it can be used as a general utility function in a later
patch.
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6914>
-rw-r--r-- | src/gallium/drivers/v3d/v3d_context.c | 22 | ||||
-rw-r--r-- | src/gallium/drivers/v3d/v3d_context.h | 3 | ||||
-rw-r--r-- | src/gallium/drivers/v3d/v3dx_state.c | 22 |
3 files changed, 25 insertions, 22 deletions
diff --git a/src/gallium/drivers/v3d/v3d_context.c b/src/gallium/drivers/v3d/v3d_context.c index 185bdc687b4..2b39b74a272 100644 --- a/src/gallium/drivers/v3d/v3d_context.c +++ b/src/gallium/drivers/v3d/v3d_context.c @@ -194,6 +194,28 @@ v3d_get_real_line_width(struct v3d_context *v3d) return width; } +void +v3d_flag_dirty_sampler_state(struct v3d_context *v3d, + enum pipe_shader_type shader) +{ + switch (shader) { + case PIPE_SHADER_VERTEX: + v3d->dirty |= VC5_DIRTY_VERTTEX; + break; + case PIPE_SHADER_GEOMETRY: + v3d->dirty |= VC5_DIRTY_GEOMTEX; + break; + case PIPE_SHADER_FRAGMENT: + v3d->dirty |= VC5_DIRTY_FRAGTEX; + break; + case PIPE_SHADER_COMPUTE: + v3d->dirty |= VC5_DIRTY_COMPTEX; + break; + default: + unreachable("Unsupported shader stage"); + } +} + static void v3d_context_destroy(struct pipe_context *pctx) { diff --git a/src/gallium/drivers/v3d/v3d_context.h b/src/gallium/drivers/v3d/v3d_context.h index 74df773ca9a..baf58d924ea 100644 --- a/src/gallium/drivers/v3d/v3d_context.h +++ b/src/gallium/drivers/v3d/v3d_context.h @@ -703,6 +703,9 @@ bool v3d_line_smoothing_enabled(struct v3d_context *v3d); float v3d_get_real_line_width(struct v3d_context *v3d); +void v3d_flag_dirty_sampler_state(struct v3d_context *v3d, + enum pipe_shader_type shader); + #ifdef v3dX # include "v3dx_context.h" #else diff --git a/src/gallium/drivers/v3d/v3dx_state.c b/src/gallium/drivers/v3d/v3dx_state.c index ee41b9fa75e..ee4f7d8ce59 100644 --- a/src/gallium/drivers/v3d/v3dx_state.c +++ b/src/gallium/drivers/v3d/v3dx_state.c @@ -771,28 +771,6 @@ v3d_create_sampler_state(struct pipe_context *pctx, } static void -v3d_flag_dirty_sampler_state(struct v3d_context *v3d, - enum pipe_shader_type shader) -{ - switch (shader) { - case PIPE_SHADER_VERTEX: - v3d->dirty |= VC5_DIRTY_VERTTEX; - break; - case PIPE_SHADER_GEOMETRY: - v3d->dirty |= VC5_DIRTY_GEOMTEX; - break; - case PIPE_SHADER_FRAGMENT: - v3d->dirty |= VC5_DIRTY_FRAGTEX; - break; - case PIPE_SHADER_COMPUTE: - v3d->dirty |= VC5_DIRTY_COMPTEX; - break; - default: - unreachable("Unsupported shader stage"); - } -} - -static void v3d_sampler_states_bind(struct pipe_context *pctx, enum pipe_shader_type shader, unsigned start, unsigned nr, void **hwcso) |