Mesa (main): iris: Don't pass the shader key to iris_compile_[shader stage]
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Jul 28 18:00:25 UTC 2021
Module: Mesa
Branch: main
Commit: 2d1a2a1c095cbe0df84fa856bbd227ee61f751d1
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d1a2a1c095cbe0df84fa856bbd227ee61f751d1
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Thu Jun 3 12:06:49 2021 -0700
iris: Don't pass the shader key to iris_compile_[shader stage]
Use the copy of the key embedded in the compiled shader.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11229>
---
src/gallium/drivers/iris/iris_program.c | 52 +++++++++++++++------------------
1 file changed, 23 insertions(+), 29 deletions(-)
diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c
index 6fae0b5b794..5fcd4ef3d5c 100644
--- a/src/gallium/drivers/iris/iris_program.c
+++ b/src/gallium/drivers/iris/iris_program.c
@@ -1182,8 +1182,7 @@ iris_compile_vs(struct iris_screen *screen,
struct u_upload_mgr *uploader,
struct pipe_debug_callback *dbg,
struct iris_uncompiled_shader *ish,
- struct iris_compiled_shader *shader,
- const struct iris_vs_prog_key *key)
+ struct iris_compiled_shader *shader)
{
const struct brw_compiler *compiler = screen->compiler;
const struct intel_device_info *devinfo = &screen->devinfo;
@@ -1197,6 +1196,7 @@ iris_compile_vs(struct iris_screen *screen,
unsigned num_cbufs;
nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
+ const struct iris_vs_prog_key *const key = &shader->key.vs;
if (key->vue.nr_userclip_plane_consts) {
nir_function_impl *impl = nir_shader_get_entrypoint(nir);
@@ -1284,7 +1284,7 @@ iris_update_compiled_vs(struct iris_context *ice)
if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader,
&key, sizeof(key))) {
- iris_compile_vs(screen, uploader, &ice->dbg, ish, shader, &key);
+ iris_compile_vs(screen, uploader, &ice->dbg, ish, shader);
}
if (shader->compilation_failed)
@@ -1360,8 +1360,7 @@ iris_compile_tcs(struct iris_screen *screen,
struct u_upload_mgr *uploader,
struct pipe_debug_callback *dbg,
struct iris_uncompiled_shader *ish,
- struct iris_compiled_shader *shader,
- const struct iris_tcs_prog_key *key)
+ struct iris_compiled_shader *shader)
{
const struct brw_compiler *compiler = screen->compiler;
const struct nir_shader_compiler_options *options =
@@ -1380,6 +1379,7 @@ iris_compile_tcs(struct iris_screen *screen,
struct iris_binding_table bt;
+ const struct iris_tcs_prog_key *const key = &shader->key.tcs;
struct brw_tcs_prog_key brw_key = iris_to_brw_tcs_key(devinfo, key);
if (ish) {
@@ -1516,7 +1516,7 @@ iris_update_compiled_tcs(struct iris_context *ice)
(tcs == NULL || !iris_disk_cache_retrieve(screen, uploader, tcs, shader,
&key, sizeof(key)))) {
iris_compile_tcs(screen, ice->shaders.cache, uploader, &ice->dbg, tcs,
- shader, &key);
+ shader);
}
if (shader->compilation_failed)
@@ -1543,8 +1543,7 @@ iris_compile_tes(struct iris_screen *screen,
struct u_upload_mgr *uploader,
struct pipe_debug_callback *dbg,
struct iris_uncompiled_shader *ish,
- struct iris_compiled_shader *shader,
- const struct iris_tes_prog_key *key)
+ struct iris_compiled_shader *shader)
{
const struct brw_compiler *compiler = screen->compiler;
void *mem_ctx = ralloc_context(NULL);
@@ -1558,6 +1557,7 @@ iris_compile_tes(struct iris_screen *screen,
unsigned num_cbufs;
nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
+ const struct iris_tes_prog_key *const key = &shader->key.tes;
if (key->vue.nr_userclip_plane_consts) {
nir_function_impl *impl = nir_shader_get_entrypoint(nir);
@@ -1640,7 +1640,7 @@ iris_update_compiled_tes(struct iris_context *ice)
if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader,
&key, sizeof(key))) {
- iris_compile_tes(screen, uploader, &ice->dbg, ish, shader, &key);
+ iris_compile_tes(screen, uploader, &ice->dbg, ish, shader);
}
if (shader->compilation_failed)
@@ -1674,8 +1674,7 @@ iris_compile_gs(struct iris_screen *screen,
struct u_upload_mgr *uploader,
struct pipe_debug_callback *dbg,
struct iris_uncompiled_shader *ish,
- struct iris_compiled_shader *shader,
- const struct iris_gs_prog_key *key)
+ struct iris_compiled_shader *shader)
{
const struct brw_compiler *compiler = screen->compiler;
const struct intel_device_info *devinfo = &screen->devinfo;
@@ -1689,6 +1688,7 @@ iris_compile_gs(struct iris_screen *screen,
unsigned num_cbufs;
nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
+ const struct iris_gs_prog_key *const key = &shader->key.gs;
if (key->vue.nr_userclip_plane_consts) {
nir_function_impl *impl = nir_shader_get_entrypoint(nir);
@@ -1773,7 +1773,7 @@ iris_update_compiled_gs(struct iris_context *ice)
if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader,
&key, sizeof(key))) {
- iris_compile_gs(screen, uploader, &ice->dbg, ish, shader, &key);
+ iris_compile_gs(screen, uploader, &ice->dbg, ish, shader);
}
if (shader->compilation_failed)
@@ -1803,7 +1803,6 @@ iris_compile_fs(struct iris_screen *screen,
struct pipe_debug_callback *dbg,
struct iris_uncompiled_shader *ish,
struct iris_compiled_shader *shader,
- const struct iris_fs_prog_key *key,
struct brw_vue_map *vue_map)
{
const struct brw_compiler *compiler = screen->compiler;
@@ -1817,6 +1816,7 @@ iris_compile_fs(struct iris_screen *screen,
unsigned num_cbufs;
nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
+ const struct iris_fs_prog_key *const key = &shader->key.fs;
prog_data->use_alt_mode = ish->use_alt_mode;
@@ -1910,8 +1910,7 @@ iris_update_compiled_fs(struct iris_context *ice)
if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader,
&key, sizeof(key))) {
- iris_compile_fs(screen, uploader, &ice->dbg, ish, shader, &key,
- last_vue_map);
+ iris_compile_fs(screen, uploader, &ice->dbg, ish, shader, last_vue_map);
}
if (shader->compilation_failed)
@@ -2094,8 +2093,7 @@ iris_compile_cs(struct iris_screen *screen,
struct u_upload_mgr *uploader,
struct pipe_debug_callback *dbg,
struct iris_uncompiled_shader *ish,
- struct iris_compiled_shader *shader,
- const struct iris_cs_prog_key *key)
+ struct iris_compiled_shader *shader)
{
const struct brw_compiler *compiler = screen->compiler;
void *mem_ctx = ralloc_context(NULL);
@@ -2108,6 +2106,7 @@ iris_compile_cs(struct iris_screen *screen,
unsigned num_cbufs;
nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
+ const struct iris_cs_prog_key *const key = &shader->key.cs;
NIR_PASS_V(nir, brw_nir_lower_cs_intrinsics);
@@ -2172,7 +2171,7 @@ iris_update_compiled_cs(struct iris_context *ice)
if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader,
&key, sizeof(key))) {
- iris_compile_cs(screen, uploader, &ice->dbg, ish, shader, &key);
+ iris_compile_cs(screen, uploader, &ice->dbg, ish, shader);
}
if (shader->compilation_failed)
@@ -2450,7 +2449,7 @@ iris_create_compute_state(struct pipe_context *ctx,
if (!iris_disk_cache_retrieve(screen, uploader, ish, shader,
&key, sizeof(key))) {
- iris_compile_cs(screen, uploader, &ice->dbg, ish, shader, &key);
+ iris_compile_cs(screen, uploader, &ice->dbg, ish, shader);
}
}
@@ -2466,24 +2465,19 @@ iris_compile_shader(struct iris_screen *screen,
{
switch (ish->nir->info.stage) {
case MESA_SHADER_VERTEX:
- iris_compile_vs(screen, uploader, dbg, ish, shader,
- &shader->key.vs);
+ iris_compile_vs(screen, uploader, dbg, ish, shader);
break;
case MESA_SHADER_TESS_CTRL:
- iris_compile_tcs(screen, NULL, uploader, dbg, ish, shader,
- &shader->key.tcs);
+ iris_compile_tcs(screen, NULL, uploader, dbg, ish, shader);
break;
case MESA_SHADER_TESS_EVAL:
- iris_compile_tes(screen, uploader, dbg, ish, shader,
- &shader->key.tes);
+ iris_compile_tes(screen, uploader, dbg, ish, shader);
break;
case MESA_SHADER_GEOMETRY:
- iris_compile_gs(screen, uploader, dbg, ish, shader,
- &shader->key.gs);
+ iris_compile_gs(screen, uploader, dbg, ish, shader);
break;
case MESA_SHADER_FRAGMENT:
- iris_compile_fs(screen, uploader, dbg, ish, shader,
- &shader->key.fs, NULL);
+ iris_compile_fs(screen, uploader, dbg, ish, shader, NULL);
break;
default:
More information about the mesa-commit
mailing list