mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-31 14:10:09 +01:00
radeonsi: remove the make_texture_descriptor indirect function call
Call gfx10_make_texture_descriptor from si_make_texture_descriptor and use si_make_texture_descriptor everywhere. This is more readable. Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30904>
This commit is contained in:
parent
a578ca8388
commit
f8788b2a38
5 changed files with 37 additions and 42 deletions
|
|
@ -752,13 +752,12 @@ static void si_set_shader_image_desc(struct si_context *ctx, const struct pipe_i
|
|||
}
|
||||
}
|
||||
|
||||
screen->make_texture_descriptor(
|
||||
screen, tex, false, res->b.b.target, view->format, swizzle, view_level, view_level,
|
||||
view->u.tex.first_layer, view->u.tex.last_layer, width, height, depth, false,
|
||||
desc, fmask_desc);
|
||||
si_make_texture_descriptor(screen, tex, false, res->b.b.target, view->format, swizzle,
|
||||
view_level, view_level, view->u.tex.first_layer,
|
||||
view->u.tex.last_layer, width, height, depth, false, desc,
|
||||
fmask_desc);
|
||||
si_set_mutable_tex_desc_fields(screen, tex, &tex->surface.u.legacy.level[level], level, level,
|
||||
util_format_get_blockwidth(view->format),
|
||||
false, access, desc);
|
||||
util_format_get_blockwidth(view->format), false, access, desc);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -513,13 +513,6 @@ struct si_screen {
|
|||
uint64_t debug_flags;
|
||||
char renderer_string[183];
|
||||
|
||||
void (*make_texture_descriptor)(struct si_screen *screen, struct si_texture *tex, bool sampler,
|
||||
enum pipe_texture_target target, enum pipe_format pipe_format,
|
||||
const unsigned char state_swizzle[4], unsigned first_level,
|
||||
unsigned last_level, unsigned first_layer, unsigned last_layer,
|
||||
unsigned width, unsigned height, unsigned depth,
|
||||
bool get_bo_metadata, uint32_t *state, uint32_t *fmask_state);
|
||||
|
||||
unsigned pa_sc_raster_config;
|
||||
unsigned pa_sc_raster_config_1;
|
||||
unsigned se_tile_repeat;
|
||||
|
|
|
|||
|
|
@ -3779,13 +3779,6 @@ static void gfx10_make_texture_descriptor(
|
|||
unsigned last_level, unsigned first_layer, unsigned last_layer, unsigned width, unsigned height,
|
||||
unsigned depth, bool get_bo_metadata, uint32_t *state, uint32_t *fmask_state)
|
||||
{
|
||||
if (!screen->info.has_image_opcodes && !get_bo_metadata) {
|
||||
cdna_emu_make_image_descriptor(screen, tex, sampler, target, pipe_format, state_swizzle,
|
||||
first_level, last_level, first_layer, last_layer, width,
|
||||
height, depth, state, fmask_state);
|
||||
return;
|
||||
}
|
||||
|
||||
struct pipe_resource *res = &tex->buffer.b.b;
|
||||
const struct util_format_description *desc;
|
||||
unsigned char swizzle[4];
|
||||
|
|
@ -3890,14 +3883,14 @@ static void gfx10_make_texture_descriptor(
|
|||
/**
|
||||
* Build the sampler view descriptor for a texture (SI-GFX9).
|
||||
*/
|
||||
static void si_make_texture_descriptor(struct si_screen *screen, struct si_texture *tex,
|
||||
bool sampler, enum pipe_texture_target target,
|
||||
enum pipe_format pipe_format,
|
||||
const unsigned char state_swizzle[4], unsigned first_level,
|
||||
unsigned last_level, unsigned first_layer,
|
||||
unsigned last_layer, unsigned width, unsigned height,
|
||||
unsigned depth, bool get_bo_metadata,
|
||||
uint32_t *state, uint32_t *fmask_state)
|
||||
void si_make_texture_descriptor(struct si_screen *screen, struct si_texture *tex,
|
||||
bool sampler, enum pipe_texture_target target,
|
||||
enum pipe_format pipe_format,
|
||||
const unsigned char state_swizzle[4], unsigned first_level,
|
||||
unsigned last_level, unsigned first_layer,
|
||||
unsigned last_layer, unsigned width, unsigned height,
|
||||
unsigned depth, bool get_bo_metadata,
|
||||
uint32_t *state, uint32_t *fmask_state)
|
||||
{
|
||||
if (!screen->info.has_image_opcodes && !get_bo_metadata) {
|
||||
cdna_emu_make_image_descriptor(screen, tex, sampler, target, pipe_format, state_swizzle,
|
||||
|
|
@ -3906,6 +3899,13 @@ static void si_make_texture_descriptor(struct si_screen *screen, struct si_textu
|
|||
return;
|
||||
}
|
||||
|
||||
if (screen->info.gfx_level >= GFX10) {
|
||||
gfx10_make_texture_descriptor(screen, tex, sampler, target, pipe_format, state_swizzle,
|
||||
first_level, last_level, first_layer, last_layer, width,
|
||||
height, depth, get_bo_metadata, state, fmask_state);
|
||||
return;
|
||||
}
|
||||
|
||||
struct pipe_resource *res = &tex->buffer.b.b;
|
||||
const struct util_format_description *desc;
|
||||
unsigned char swizzle[4];
|
||||
|
|
@ -4122,11 +4122,11 @@ static struct pipe_sampler_view *si_create_sampler_view(struct pipe_context *ctx
|
|||
view->dcc_incompatible =
|
||||
vi_dcc_formats_are_incompatible(texture, state->u.tex.first_level, state->format);
|
||||
|
||||
sctx->screen->make_texture_descriptor(
|
||||
sctx->screen, tex, true, state->target, pipe_format, state_swizzle,
|
||||
state->u.tex.first_level, state->u.tex.last_level,
|
||||
state->u.tex.first_layer, last_layer, texture->width0, texture->height0, texture->depth0,
|
||||
false, view->state, view->fmask_state);
|
||||
si_make_texture_descriptor(sctx->screen, tex, true, state->target, pipe_format, state_swizzle,
|
||||
state->u.tex.first_level, state->u.tex.last_level,
|
||||
state->u.tex.first_layer, last_layer, texture->width0,
|
||||
texture->height0, texture->depth0, false, view->state,
|
||||
view->fmask_state);
|
||||
|
||||
view->base_level_info = &surflevel[0];
|
||||
view->block_width = util_format_get_blockwidth(pipe_format);
|
||||
|
|
@ -4930,11 +4930,6 @@ void si_init_screen_state_functions(struct si_screen *sscreen)
|
|||
sscreen->b.create_vertex_state = si_pipe_create_vertex_state;
|
||||
sscreen->b.vertex_state_destroy = si_pipe_vertex_state_destroy;
|
||||
|
||||
if (sscreen->info.gfx_level >= GFX10)
|
||||
sscreen->make_texture_descriptor = gfx10_make_texture_descriptor;
|
||||
else
|
||||
sscreen->make_texture_descriptor = si_make_texture_descriptor;
|
||||
|
||||
util_vertex_state_cache_init(&sscreen->vertex_state_cache,
|
||||
si_create_vertex_state, si_vertex_state_destroy);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -621,6 +621,14 @@ struct pb_slab *si_bindless_descriptor_slab_alloc(void *priv, unsigned heap, uns
|
|||
void si_bindless_descriptor_slab_free(void *priv, struct pb_slab *pslab);
|
||||
void si_rebind_buffer(struct si_context *sctx, struct pipe_resource *buf);
|
||||
/* si_state.c */
|
||||
void si_make_texture_descriptor(struct si_screen *screen, struct si_texture *tex,
|
||||
bool sampler, enum pipe_texture_target target,
|
||||
enum pipe_format pipe_format,
|
||||
const unsigned char state_swizzle[4], unsigned first_level,
|
||||
unsigned last_level, unsigned first_layer,
|
||||
unsigned last_layer, unsigned width, unsigned height,
|
||||
unsigned depth, bool get_bo_metadata,
|
||||
uint32_t *state, uint32_t *fmask_state);
|
||||
void si_init_state_compute_functions(struct si_context *sctx);
|
||||
void si_init_state_functions(struct si_context *sctx);
|
||||
void si_init_screen_state_functions(struct si_screen *sscreen);
|
||||
|
|
|
|||
|
|
@ -618,10 +618,10 @@ static void si_set_tex_bo_metadata(struct si_screen *sscreen, struct si_texture
|
|||
bool is_array = util_texture_is_array(res->target);
|
||||
uint32_t desc[8];
|
||||
|
||||
sscreen->make_texture_descriptor(sscreen, tex, true, res->target,
|
||||
tex->is_depth ? tex->db_render_format : res->format, swizzle, 0,
|
||||
res->last_level, 0, is_array ? res->array_size - 1 : 0,
|
||||
res->width0, res->height0, res->depth0, true, desc, NULL);
|
||||
si_make_texture_descriptor(sscreen, tex, true, res->target,
|
||||
tex->is_depth ? tex->db_render_format : res->format, swizzle, 0,
|
||||
res->last_level, 0, is_array ? res->array_size - 1 : 0, res->width0,
|
||||
res->height0, res->depth0, true, desc, NULL);
|
||||
si_set_mutable_tex_desc_fields(sscreen, tex, &tex->surface.u.legacy.level[0], 0, 0,
|
||||
tex->surface.blk_w, false, 0, desc);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue