radeonsi: remove si_create_sampler_view_custom and related code

This was used for compressed and subsampled gfx copies.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16215>
This commit is contained in:
Marek Olšák 2022-04-25 03:52:59 -04:00
parent cf1e562fdd
commit 584e996ddd
4 changed files with 8 additions and 45 deletions

View File

@ -470,7 +470,7 @@ static void si_set_sampler_view_desc(struct si_context *sctx, struct si_sampler_
bool is_separate_stencil = tex->db_compatible && sview->is_stencil_sampler;
memcpy(desc, sview->state, 8 * 4);
si_set_mutable_tex_desc_fields(sctx->screen, tex, sview->base_level_info, sview->base_level,
si_set_mutable_tex_desc_fields(sctx->screen, tex, sview->base_level_info, 0,
sview->base.u.tex.first_level, sview->block_width,
is_separate_stencil, 0, desc);

View File

@ -700,7 +700,6 @@ struct si_sampler_view {
uint32_t state[8];
uint32_t fmask_state[8];
const struct legacy_surf_level *base_level_info;
ubyte base_level;
ubyte block_width;
bool is_stencil_sampler;
bool dcc_incompatible;

View File

@ -4365,22 +4365,15 @@ static void si_make_texture_descriptor(struct si_screen *screen, struct si_textu
* @param ctx context
* @param texture texture
* @param state sampler view template
* @param width0 width0 override (for compressed textures as int)
* @param height0 height0 override (for compressed textures as int)
* @param force_level set the base address to the level (for compressed textures)
*/
struct pipe_sampler_view *si_create_sampler_view_custom(struct pipe_context *ctx,
static struct pipe_sampler_view *si_create_sampler_view(struct pipe_context *ctx,
struct pipe_resource *texture,
const struct pipe_sampler_view *state,
unsigned width0, unsigned height0,
unsigned force_level)
const struct pipe_sampler_view *state)
{
struct si_context *sctx = (struct si_context *)ctx;
struct si_sampler_view *view = CALLOC_STRUCT_CL(si_sampler_view);
struct si_texture *tex = (struct si_texture *)texture;
unsigned base_level, first_level, last_level;
unsigned char state_swizzle[4];
unsigned height, depth, width;
unsigned last_layer = state->u.tex.last_layer;
enum pipe_format pipe_format;
const struct legacy_surf_level *surflevel;
@ -4413,23 +4406,6 @@ struct pipe_sampler_view *si_create_sampler_view_custom(struct pipe_context *ctx
state_swizzle[2] = state->swizzle_b;
state_swizzle[3] = state->swizzle_a;
base_level = 0;
first_level = state->u.tex.first_level;
last_level = state->u.tex.last_level;
width = width0;
height = height0;
depth = texture->depth0;
if (sctx->chip_class <= GFX8 && force_level) {
assert(force_level == first_level && force_level == last_level);
base_level = force_level;
first_level = 0;
last_level = 0;
width = u_minify(width, force_level);
height = u_minify(height, force_level);
depth = u_minify(depth, force_level);
}
/* This is not needed if gallium frontends set last_layer correctly. */
if (state->target == PIPE_TEXTURE_1D || state->target == PIPE_TEXTURE_2D ||
state->target == PIPE_TEXTURE_RECT || state->target == PIPE_TEXTURE_CUBE)
@ -4488,23 +4464,16 @@ struct pipe_sampler_view *si_create_sampler_view_custom(struct pipe_context *ctx
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, first_level, last_level,
state->u.tex.first_layer, last_layer, width, height, depth, view->state, view->fmask_state);
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,
view->state, view->fmask_state);
view->base_level_info = &surflevel[base_level];
view->base_level = base_level;
view->base_level_info = &surflevel[0];
view->block_width = util_format_get_blockwidth(pipe_format);
return &view->base;
}
static struct pipe_sampler_view *si_create_sampler_view(struct pipe_context *ctx,
struct pipe_resource *texture,
const struct pipe_sampler_view *state)
{
return si_create_sampler_view_custom(ctx, texture, state, texture ? texture->width0 : 0,
texture ? texture->height0 : 0, 0);
}
static void si_sampler_view_destroy(struct pipe_context *ctx, struct pipe_sampler_view *state)
{
struct si_sampler_view *view = (struct si_sampler_view *)state;

View File

@ -531,11 +531,6 @@ void si_init_cs_preamble_state(struct si_context *sctx, bool uses_reg_shadowing)
void si_make_buffer_descriptor(struct si_screen *screen, struct si_resource *buf,
enum pipe_format format, unsigned offset, unsigned size,
uint32_t *state);
struct pipe_sampler_view *si_create_sampler_view_custom(struct pipe_context *ctx,
struct pipe_resource *texture,
const struct pipe_sampler_view *state,
unsigned width0, unsigned height0,
unsigned force_level);
void si_set_sampler_depth_decompress_mask(struct si_context *sctx, struct si_texture *tex);
void si_update_fb_dirtiness_after_rendering(struct si_context *sctx);
void si_mark_display_dcc_dirty(struct si_context *sctx, struct si_texture *tex);