mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 13:40:11 +01:00
radeonsi/gfx10: add pipe_screen::make_texture_descriptor
Texture descriptors in gfx10 are very different. Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
4afce5efdd
commit
595a7f7c47
5 changed files with 19 additions and 16 deletions
|
|
@ -742,7 +742,7 @@ static void si_set_shader_image_desc(struct si_context *ctx,
|
|||
hw_level = 0;
|
||||
}
|
||||
|
||||
si_make_texture_descriptor(screen, tex,
|
||||
screen->make_texture_descriptor(screen, tex,
|
||||
false, res->b.b.target,
|
||||
view->format, swizzle,
|
||||
hw_level, hw_level,
|
||||
|
|
|
|||
|
|
@ -457,6 +457,19 @@ 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,
|
||||
uint32_t *state,
|
||||
uint32_t *fmask_state);
|
||||
|
||||
unsigned pa_sc_raster_config;
|
||||
unsigned pa_sc_raster_config_1;
|
||||
unsigned se_tile_repeat;
|
||||
|
|
|
|||
|
|
@ -3736,7 +3736,7 @@ static unsigned gfx9_border_color_swizzle(const unsigned char swizzle[4])
|
|||
/**
|
||||
* Build the sampler view descriptor for a texture.
|
||||
*/
|
||||
void
|
||||
static void
|
||||
si_make_texture_descriptor(struct si_screen *screen,
|
||||
struct si_texture *tex,
|
||||
bool sampler,
|
||||
|
|
@ -4224,7 +4224,7 @@ si_create_sampler_view_custom(struct pipe_context *ctx,
|
|||
state->u.tex.first_level,
|
||||
state->format);
|
||||
|
||||
si_make_texture_descriptor(sctx->screen, tex, true,
|
||||
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,
|
||||
|
|
@ -4970,6 +4970,8 @@ void si_init_state_functions(struct si_context *sctx)
|
|||
void si_init_screen_state_functions(struct si_screen *sscreen)
|
||||
{
|
||||
sscreen->b.is_format_supported = si_is_format_supported;
|
||||
|
||||
sscreen->make_texture_descriptor = si_make_texture_descriptor;
|
||||
}
|
||||
|
||||
static void si_set_grbm_gfx_index(struct si_context *sctx,
|
||||
|
|
|
|||
|
|
@ -536,18 +536,6 @@ si_make_buffer_descriptor(struct si_screen *screen, struct si_resource *buf,
|
|||
enum pipe_format format,
|
||||
unsigned offset, unsigned size,
|
||||
uint32_t *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,
|
||||
uint32_t *state,
|
||||
uint32_t *fmask_state);
|
||||
struct pipe_sampler_view *
|
||||
si_create_sampler_view_custom(struct pipe_context *ctx,
|
||||
struct pipe_resource *texture,
|
||||
|
|
|
|||
|
|
@ -683,7 +683,7 @@ static void si_set_tex_bo_metadata(struct si_screen *sscreen,
|
|||
bool is_array = util_texture_is_array(res->target);
|
||||
uint32_t desc[8];
|
||||
|
||||
si_make_texture_descriptor(sscreen, tex, true,
|
||||
sscreen->make_texture_descriptor(sscreen, tex, true,
|
||||
res->target, res->format,
|
||||
swizzle, 0, res->last_level, 0,
|
||||
is_array ? res->array_size - 1 : 0,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue