Mesa (main): zink: remove shader_id
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jul 6 18:15:32 UTC 2021
Module: Mesa
Branch: main
Commit: 0cf643db5d47ed0d778eb2d9979b464867c2fc6c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0cf643db5d47ed0d778eb2d9979b464867c2fc6c
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Fri May 14 15:17:03 2021 -0400
zink: remove shader_id
now that shaders are per-program, shader_id is no longer useful
Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11691>
---
src/gallium/drivers/zink/zink_compiler.c | 4 +---
src/gallium/drivers/zink/zink_compiler.h | 1 -
src/gallium/drivers/zink/zink_context.c | 4 ++--
src/gallium/drivers/zink/zink_draw.c | 4 ++--
src/gallium/drivers/zink/zink_program.c | 8 ++------
src/gallium/drivers/zink/zink_screen.h | 2 --
src/gallium/drivers/zink/zink_shader_keys.h | 3 ---
7 files changed, 7 insertions(+), 19 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c
index 40ca2c62a20..43770bba54b 100644
--- a/src/gallium/drivers/zink/zink_compiler.c
+++ b/src/gallium/drivers/zink/zink_compiler.c
@@ -931,7 +931,6 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir,
struct zink_shader *ret = CALLOC_STRUCT(zink_shader);
bool have_psiz = false;
- ret->shader_id = p_atomic_inc_return(&screen->shader_id);
ret->programs = _mesa_pointer_set_create(NULL);
nir_variable_mode indirect_derefs_modes = nir_var_function_temp;
@@ -1065,7 +1064,7 @@ zink_shader_free(struct zink_context *ctx, struct zink_shader *shader)
set_foreach(shader->programs, entry) {
if (shader->nir->info.stage == MESA_SHADER_COMPUTE) {
struct zink_compute_program *comp = (void*)entry->key;
- _mesa_hash_table_remove_key(ctx->compute_program_cache, &comp->shader->shader_id);
+ _mesa_hash_table_remove_key(ctx->compute_program_cache, comp->shader);
comp->shader = NULL;
bool in_use = comp == ctx->curr_compute;
if (in_use)
@@ -1123,7 +1122,6 @@ zink_shader_tcs_create(struct zink_context *ctx, struct zink_shader *vs)
{
unsigned vertices_per_patch = ctx->gfx_pipeline_state.vertices_per_patch;
struct zink_shader *ret = CALLOC_STRUCT(zink_shader);
- ret->shader_id = 0; //special value for internal shaders
ret->programs = _mesa_pointer_set_create(NULL);
nir_shader *nir = nir_shader_create(NULL, MESA_SHADER_TESS_CTRL, &zink_screen(ctx->base.screen)->nir_options, NULL);
diff --git a/src/gallium/drivers/zink/zink_compiler.h b/src/gallium/drivers/zink/zink_compiler.h
index 4f6a4ddfa77..94f4ffe158e 100644
--- a/src/gallium/drivers/zink/zink_compiler.h
+++ b/src/gallium/drivers/zink/zink_compiler.h
@@ -68,7 +68,6 @@ zink_tgsi_to_nir(struct pipe_screen *screen, const struct tgsi_token *tokens);
struct zink_shader {
struct util_live_shader base;
- unsigned shader_id;
struct nir_shader *nir;
struct zink_so_info streamout;
diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c
index 0076942bb93..decdfba5624 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -3553,8 +3553,8 @@ zink_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
hash_gfx_program,
equals_gfx_program);
ctx->compute_program_cache = _mesa_hash_table_create(NULL,
- _mesa_hash_uint,
- _mesa_key_uint_equal);
+ _mesa_hash_pointer,
+ _mesa_key_pointer_equal);
ctx->render_pass_cache = _mesa_hash_table_create(NULL,
hash_render_pass_state,
equals_render_pass_state);
diff --git a/src/gallium/drivers/zink/zink_draw.c b/src/gallium/drivers/zink/zink_draw.c
index bf52d886109..8339922212c 100644
--- a/src/gallium/drivers/zink/zink_draw.c
+++ b/src/gallium/drivers/zink/zink_draw.c
@@ -167,10 +167,10 @@ update_compute_program(struct zink_context *ctx)
if (ctx->dirty_shader_stages & bits) {
struct zink_compute_program *comp = NULL;
struct hash_entry *entry = _mesa_hash_table_search(ctx->compute_program_cache,
- &ctx->compute_stage->shader_id);
+ ctx->compute_stage);
if (!entry) {
comp = zink_create_compute_program(ctx, ctx->compute_stage);
- entry = _mesa_hash_table_insert(ctx->compute_program_cache, &comp->shader->shader_id, comp);
+ entry = _mesa_hash_table_insert(ctx->compute_program_cache, comp->shader, comp);
}
comp = (struct zink_compute_program*)(entry ? entry->data : NULL);
if (comp && comp != ctx->curr_compute) {
diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c
index 9fd07a4010d..b1a6fcdc84a 100644
--- a/src/gallium/drivers/zink/zink_program.c
+++ b/src/gallium/drivers/zink/zink_program.c
@@ -114,7 +114,6 @@ shader_key_vs_gen(struct zink_context *ctx, struct zink_shader *zs,
struct zink_vs_key *vs_key = &key->key.vs;
key->size = sizeof(struct zink_vs_key);
- vs_key->shader_id = zs->shader_id;
vs_key->clip_halfz = ctx->rast_state->base.clip_halfz;
switch (zs->nir->info.stage) {
case MESA_SHADER_VERTEX:
@@ -140,8 +139,6 @@ shader_key_fs_gen(struct zink_context *ctx, struct zink_shader *zs,
struct zink_fs_key *fs_key = &key->key.fs;
key->size = sizeof(struct zink_fs_key);
- fs_key->shader_id = zs->shader_id;
-
/* if gl_SampleMask[] is written to, we have to ensure that we get a shader with the same sample count:
* in GL, rast_samples==1 means ignore gl_SampleMask[]
* in VK, gl_SampleMask[] is never ignored
@@ -165,7 +162,6 @@ shader_key_tcs_gen(struct zink_context *ctx, struct zink_shader *zs,
struct zink_tcs_key *tcs_key = &key->key.tcs;
key->size = sizeof(struct zink_tcs_key);
- tcs_key->shader_id = zs->shader_id;
tcs_key->vertices_per_patch = ctx->gfx_pipeline_state.vertices_per_patch;
tcs_key->vs_outputs_written = shaders[PIPE_SHADER_VERTEX]->nir->info.outputs_written;
}
@@ -548,14 +544,14 @@ zink_create_compute_program(struct zink_context *ctx, struct zink_shader *shader
pipe_reference_init(&comp->base.reference, 1);
comp->base.is_compute = true;
/* TODO: cs shader keys placeholder for now */
- _mesa_hash_table_init(&comp->base.shader_cache[0], comp, _mesa_hash_u32, _mesa_key_u32_equal);
+ _mesa_hash_table_init(&comp->base.shader_cache[0], comp, _mesa_hash_pointer, _mesa_key_pointer_equal);
comp->module = CALLOC_STRUCT(zink_shader_module);
assert(comp->module);
pipe_reference_init(&comp->module->reference, 1);
comp->module->shader = zink_shader_compile(screen, shader, shader->nir, NULL);
assert(comp->module->shader);
- _mesa_hash_table_insert(&comp->base.shader_cache[0], &shader->shader_id, comp->module);
+ _mesa_hash_table_insert(&comp->base.shader_cache[0], shader, comp->module);
struct zink_shader_module *zm = NULL;
zink_shader_module_reference(zink_screen(ctx->base.screen), &zm, comp->module);
diff --git a/src/gallium/drivers/zink/zink_screen.h b/src/gallium/drivers/zink/zink_screen.h
index 470805bbf5d..b8af48f726c 100644
--- a/src/gallium/drivers/zink/zink_screen.h
+++ b/src/gallium/drivers/zink/zink_screen.h
@@ -92,8 +92,6 @@ struct zink_screen {
uint64_t mem_cache_size;
unsigned mem_cache_count;
- unsigned shader_id;
-
uint64_t total_video_mem;
uint64_t total_mem;
diff --git a/src/gallium/drivers/zink/zink_shader_keys.h b/src/gallium/drivers/zink/zink_shader_keys.h
index 6ce0a5ff4b7..867a0bff85f 100644
--- a/src/gallium/drivers/zink/zink_shader_keys.h
+++ b/src/gallium/drivers/zink/zink_shader_keys.h
@@ -27,14 +27,12 @@
# define ZINK_SHADER_KEYS_H
struct zink_vs_key {
- unsigned shader_id;
bool clip_halfz;
bool push_drawid;
bool last_vertex_stage;
};
struct zink_fs_key {
- unsigned shader_id;
uint8_t coord_replace_bits;
bool coord_replace_yinvert;
bool samples;
@@ -42,7 +40,6 @@ struct zink_fs_key {
};
struct zink_tcs_key {
- unsigned shader_id;
unsigned vertices_per_patch;
uint64_t vs_outputs_written;
};
More information about the mesa-commit
mailing list