mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
panfrost: Wire up gpu_variant to pan_compile_inputs
Reviewed-by: Eric R. Smith <eric.smith@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37231>
This commit is contained in:
parent
7e914e7bff
commit
59ac9b4c9e
6 changed files with 16 additions and 5 deletions
|
|
@ -18,9 +18,11 @@ DERIVE_HASH_TABLE(pan_blend_shader_key);
|
|||
|
||||
void
|
||||
pan_blend_shader_cache_init(struct pan_blend_shader_cache *cache,
|
||||
unsigned gpu_id, struct pan_pool *bin_pool)
|
||||
unsigned gpu_id, uint32_t gpu_variant,
|
||||
struct pan_pool *bin_pool)
|
||||
{
|
||||
cache->gpu_id = gpu_id;
|
||||
cache->gpu_variant = gpu_variant;
|
||||
cache->bin_pool = bin_pool;
|
||||
cache->shaders = pan_blend_shader_key_table_create(NULL);
|
||||
pthread_mutex_init(&cache->lock, NULL);
|
||||
|
|
@ -95,6 +97,7 @@ GENX(pan_blend_get_shader_locked)(struct pan_blend_shader_cache *cache,
|
|||
/* Compile the NIR shader */
|
||||
struct pan_compile_inputs inputs = {
|
||||
.gpu_id = cache->gpu_id,
|
||||
.gpu_variant = cache->gpu_variant,
|
||||
.is_blend = true,
|
||||
.blend.nr_samples = key.nr_samples,
|
||||
.pushable_ubos = BITFIELD_BIT(PAN_UBO_SYSVALS),
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ struct panfrost_blend_state {
|
|||
|
||||
struct pan_blend_shader_cache {
|
||||
unsigned gpu_id;
|
||||
uint32_t gpu_variant;
|
||||
struct pan_pool *bin_pool;
|
||||
struct hash_table *shaders;
|
||||
pthread_mutex_t lock;
|
||||
|
|
@ -77,7 +78,8 @@ struct pan_blend_shader {
|
|||
uint64_t panfrost_get_blend(struct panfrost_batch *batch, unsigned rt);
|
||||
|
||||
void pan_blend_shader_cache_init(struct pan_blend_shader_cache *cache,
|
||||
unsigned gpu_id, struct pan_pool *bin_pool);
|
||||
unsigned gpu_id, uint32_t gpu_variant,
|
||||
struct pan_pool *bin_pool);
|
||||
|
||||
void pan_blend_shader_cache_cleanup(struct pan_blend_shader_cache *cache);
|
||||
|
||||
|
|
|
|||
|
|
@ -4467,10 +4467,12 @@ GENX(panfrost_cmdstream_screen_init)(struct panfrost_screen *screen)
|
|||
screen->vtbl.select_tile_size = GENX(pan_select_tile_size);
|
||||
|
||||
pan_blend_shader_cache_init(&dev->blend_shaders, panfrost_device_gpu_id(dev),
|
||||
dev->kmod.props.gpu_variant,
|
||||
&screen->mempools.bin.base);
|
||||
|
||||
GENX(pan_fb_preload_cache_init)
|
||||
(&dev->fb_preload_cache, panfrost_device_gpu_id(dev), &dev->blend_shaders,
|
||||
(&dev->fb_preload_cache, panfrost_device_gpu_id(dev),
|
||||
dev->kmod.props.gpu_variant, &dev->blend_shaders,
|
||||
&screen->mempools.bin.base, &screen->mempools.desc.base);
|
||||
|
||||
dev->precomp_cache = GENX(panfrost_precomp_cache_init)(screen);
|
||||
|
|
|
|||
|
|
@ -547,6 +547,7 @@ pan_preload_get_shader(struct pan_fb_preload_cache *cache,
|
|||
|
||||
struct pan_compile_inputs inputs = {
|
||||
.gpu_id = cache->gpu_id,
|
||||
.gpu_variant = cache->gpu_variant,
|
||||
.is_blit = true,
|
||||
.no_idvs = true,
|
||||
};
|
||||
|
|
@ -1417,11 +1418,12 @@ pan_preload_prefill_preload_shader_cache(struct pan_fb_preload_cache *cache)
|
|||
|
||||
void
|
||||
GENX(pan_fb_preload_cache_init)(
|
||||
struct pan_fb_preload_cache *cache, unsigned gpu_id,
|
||||
struct pan_fb_preload_cache *cache, unsigned gpu_id, uint32_t gpu_variant,
|
||||
struct pan_blend_shader_cache *blend_shader_cache, struct pan_pool *bin_pool,
|
||||
struct pan_pool *desc_pool)
|
||||
{
|
||||
cache->gpu_id = gpu_id;
|
||||
cache->gpu_variant = gpu_variant;
|
||||
cache->shaders.preload = pan_preload_shader_key_table_create(NULL);
|
||||
cache->shaders.pool = bin_pool;
|
||||
pthread_mutex_init(&cache->shaders.lock, NULL);
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ struct pan_pool;
|
|||
|
||||
struct pan_fb_preload_cache {
|
||||
unsigned gpu_id;
|
||||
uint32_t gpu_variant;
|
||||
struct {
|
||||
struct pan_pool *pool;
|
||||
struct hash_table *preload;
|
||||
|
|
@ -52,7 +53,7 @@ struct pan_fb_preload_cache {
|
|||
|
||||
#ifdef PAN_ARCH
|
||||
void GENX(pan_fb_preload_cache_init)(
|
||||
struct pan_fb_preload_cache *cache, unsigned gpu_id,
|
||||
struct pan_fb_preload_cache *cache, unsigned gpu_id, uint32_t gpu_variant,
|
||||
struct pan_blend_shader_cache *blend_shader_cache, struct pan_pool *bin_pool,
|
||||
struct pan_pool *desc_pool);
|
||||
|
||||
|
|
|
|||
|
|
@ -145,6 +145,7 @@ panfrost_shader_compile(struct panfrost_screen *screen, const nir_shader *ir,
|
|||
|
||||
struct pan_compile_inputs inputs = {
|
||||
.gpu_id = panfrost_device_gpu_id(dev),
|
||||
.gpu_variant = dev->kmod.props.gpu_variant,
|
||||
};
|
||||
|
||||
/* Lower this early so the backends don't have to worry about it */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue