summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/blorp/blorp.c10
-rw-r--r--src/intel/blorp/blorp_blit.c5
-rw-r--r--src/intel/blorp/blorp_clear.c15
-rw-r--r--src/intel/blorp/blorp_priv.h6
-rw-r--r--src/intel/compiler/brw_compiler.h6
-rw-r--r--src/intel/compiler/brw_fs.cpp10
-rw-r--r--src/intel/compiler/brw_shader.cpp6
-rw-r--r--src/intel/compiler/brw_vec4.cpp6
-rw-r--r--src/intel/compiler/brw_vec4_gs_visitor.cpp18
-rw-r--r--src/intel/compiler/brw_vec4_tcs.cpp6
-rw-r--r--src/intel/vulkan/anv_pipeline.c23
11 files changed, 40 insertions, 71 deletions
diff --git a/src/intel/blorp/blorp.c b/src/intel/blorp/blorp.c
index 7cc6335f2f6..5faba75b8db 100644
--- a/src/intel/blorp/blorp.c
+++ b/src/intel/blorp/blorp.c
@@ -162,8 +162,7 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
struct nir_shader *nir,
struct brw_wm_prog_key *wm_key,
bool use_repclear,
- struct brw_wm_prog_data *wm_prog_data,
- unsigned *program_size)
+ struct brw_wm_prog_data *wm_prog_data)
{
const struct brw_compiler *compiler = blorp->compiler;
@@ -194,7 +193,7 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
const unsigned *program =
brw_compile_fs(compiler, blorp->driver_ctx, mem_ctx, wm_key,
wm_prog_data, nir, NULL, -1, -1, false, use_repclear,
- NULL, program_size, NULL);
+ NULL, NULL);
return program;
}
@@ -202,8 +201,7 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
const unsigned *
blorp_compile_vs(struct blorp_context *blorp, void *mem_ctx,
struct nir_shader *nir,
- struct brw_vs_prog_data *vs_prog_data,
- unsigned *program_size)
+ struct brw_vs_prog_data *vs_prog_data)
{
const struct brw_compiler *compiler = blorp->compiler;
@@ -225,7 +223,7 @@ blorp_compile_vs(struct blorp_context *blorp, void *mem_ctx,
const unsigned *program =
brw_compile_vs(compiler, blorp->driver_ctx, mem_ctx,
&vs_key, vs_prog_data, nir,
- false, -1, program_size, NULL);
+ false, -1, NULL);
return program;
}
diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c
index 4507046dae5..9b5c1f1f8c1 100644
--- a/src/intel/blorp/blorp_blit.c
+++ b/src/intel/blorp/blorp_blit.c
@@ -1308,7 +1308,6 @@ brw_blorp_get_blit_kernel(struct blorp_context *blorp,
void *mem_ctx = ralloc_context(NULL);
const unsigned *program;
- unsigned program_size;
struct brw_wm_prog_data prog_data;
nir_shader *nir = brw_blorp_build_nir_shader(blorp, mem_ctx, prog_key);
@@ -1322,11 +1321,11 @@ brw_blorp_get_blit_kernel(struct blorp_context *blorp,
wm_key.multisample_fbo = prog_key->rt_samples > 1;
program = blorp_compile_fs(blorp, mem_ctx, nir, &wm_key, false,
- &prog_data, &program_size);
+ &prog_data);
bool result =
blorp->upload_shader(blorp, prog_key, sizeof(*prog_key),
- program, program_size,
+ program, prog_data.base.program_size,
&prog_data.base, sizeof(prog_data),
&params->wm_prog_kernel, &params->wm_prog_data);
diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c
index cd83fa13caf..8d758df155f 100644
--- a/src/intel/blorp/blorp_clear.c
+++ b/src/intel/blorp/blorp_clear.c
@@ -75,14 +75,13 @@ blorp_params_get_clear_kernel(struct blorp_context *blorp,
brw_blorp_init_wm_prog_key(&wm_key);
struct brw_wm_prog_data prog_data;
- unsigned program_size;
const unsigned *program =
blorp_compile_fs(blorp, mem_ctx, b.shader, &wm_key, use_replicated_data,
- &prog_data, &program_size);
+ &prog_data);
bool result =
blorp->upload_shader(blorp, &blorp_key, sizeof(blorp_key),
- program, program_size,
+ program, prog_data.base.program_size,
&prog_data.base, sizeof(prog_data),
&params->wm_prog_kernel, &params->wm_prog_data);
@@ -167,13 +166,12 @@ blorp_params_get_layer_offset_vs(struct blorp_context *blorp,
struct brw_vs_prog_data vs_prog_data;
memset(&vs_prog_data, 0, sizeof(vs_prog_data));
- unsigned program_size;
const unsigned *program =
- blorp_compile_vs(blorp, mem_ctx, b.shader, &vs_prog_data, &program_size);
+ blorp_compile_vs(blorp, mem_ctx, b.shader, &vs_prog_data);
bool result =
blorp->upload_shader(blorp, &blorp_key, sizeof(blorp_key),
- program, program_size,
+ program, vs_prog_data.base.base.program_size,
&vs_prog_data.base.base, sizeof(vs_prog_data),
&params->vs_prog_kernel, &params->vs_prog_data);
@@ -864,14 +862,13 @@ blorp_params_get_mcs_partial_resolve_kernel(struct blorp_context *blorp,
wm_key.multisample_fbo = true;
struct brw_wm_prog_data prog_data;
- unsigned program_size;
const unsigned *program =
blorp_compile_fs(blorp, mem_ctx, b.shader, &wm_key, false,
- &prog_data, &program_size);
+ &prog_data);
bool result =
blorp->upload_shader(blorp, &blorp_key, sizeof(blorp_key),
- program, program_size,
+ program, prog_data.base.program_size,
&prog_data.base, sizeof(prog_data),
&params->wm_prog_kernel, &params->wm_prog_data);
diff --git a/src/intel/blorp/blorp_priv.h b/src/intel/blorp/blorp_priv.h
index c7d5d308da7..d91e436c1c5 100644
--- a/src/intel/blorp/blorp_priv.h
+++ b/src/intel/blorp/blorp_priv.h
@@ -342,14 +342,12 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
struct nir_shader *nir,
struct brw_wm_prog_key *wm_key,
bool use_repclear,
- struct brw_wm_prog_data *wm_prog_data,
- unsigned *program_size);
+ struct brw_wm_prog_data *wm_prog_data);
const unsigned *
blorp_compile_vs(struct blorp_context *blorp, void *mem_ctx,
struct nir_shader *nir,
- struct brw_vs_prog_data *vs_prog_data,
- unsigned *program_size);
+ struct brw_vs_prog_data *vs_prog_data);
bool
blorp_ensure_sf_program(struct blorp_context *blorp,
diff --git a/src/intel/compiler/brw_compiler.h b/src/intel/compiler/brw_compiler.h
index fa5a3bf0274..17fc4e1b17c 100644
--- a/src/intel/compiler/brw_compiler.h
+++ b/src/intel/compiler/brw_compiler.h
@@ -1100,7 +1100,6 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,
const struct nir_shader *shader,
bool use_legacy_snorm_formula,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str);
/**
@@ -1116,7 +1115,6 @@ brw_compile_tcs(const struct brw_compiler *compiler,
struct brw_tcs_prog_data *prog_data,
const struct nir_shader *nir,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str);
/**
@@ -1133,7 +1131,6 @@ brw_compile_tes(const struct brw_compiler *compiler, void *log_data,
const struct nir_shader *shader,
struct gl_program *prog,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str);
/**
@@ -1149,7 +1146,6 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
const struct nir_shader *shader,
struct gl_program *prog,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str);
/**
@@ -1200,7 +1196,6 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
int shader_time_index16,
bool allow_spilling,
bool use_rep_send, struct brw_vue_map *vue_map,
- unsigned *final_assembly_size,
char **error_str);
/**
@@ -1215,7 +1210,6 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
struct brw_cs_prog_data *prog_data,
const struct nir_shader *shader,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str);
static inline uint32_t
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index d355675b2b8..814da8ad94d 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -6542,7 +6542,6 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
int shader_time_index8, int shader_time_index16,
bool allow_spilling,
bool use_rep_send, struct brw_vue_map *vue_map,
- unsigned *final_assembly_size,
char **error_str)
{
const struct gen_device_info *devinfo = compiler->devinfo;
@@ -6691,9 +6690,7 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,
prog_data->reg_blocks_0 = brw_register_blocks(simd16_grf_used);
}
- const unsigned *assembly = g.get_assembly(final_assembly_size);
- prog_data->base.program_size = *final_assembly_size;
- return assembly;
+ return g.get_assembly(&prog_data->base.program_size);
}
fs_reg *
@@ -6780,7 +6777,6 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
struct brw_cs_prog_data *prog_data,
const nir_shader *src_shader,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str)
{
nir_shader *shader = nir_shader_clone(mem_ctx, src_shader);
@@ -6892,9 +6888,7 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,
g.generate_code(cfg, prog_data->simd_size);
- const unsigned *assembly = g.get_assembly(final_assembly_size);
- prog_data->base.program_size = *final_assembly_size;
- return assembly;
+ return g.get_assembly(&prog_data->base.program_size);
}
/**
diff --git a/src/intel/compiler/brw_shader.cpp b/src/intel/compiler/brw_shader.cpp
index 7253f5d5531..fe230cd7cc2 100644
--- a/src/intel/compiler/brw_shader.cpp
+++ b/src/intel/compiler/brw_shader.cpp
@@ -1157,7 +1157,6 @@ brw_compile_tes(const struct brw_compiler *compiler,
const nir_shader *src_shader,
struct gl_program *prog,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str)
{
const struct gen_device_info *devinfo = compiler->devinfo;
@@ -1271,7 +1270,7 @@ brw_compile_tes(const struct brw_compiler *compiler,
g.generate_code(v.cfg, 8);
- assembly = g.get_assembly(final_assembly_size);
+ assembly = g.get_assembly(&prog_data->base.base.program_size);
} else {
brw::vec4_tes_visitor v(compiler, log_data, key, prog_data,
nir, mem_ctx, shader_time_index);
@@ -1286,9 +1285,8 @@ brw_compile_tes(const struct brw_compiler *compiler,
assembly = brw_vec4_generate_assembly(compiler, log_data, mem_ctx, nir,
&prog_data->base, v.cfg,
- final_assembly_size);
+ &prog_data->base.base.program_size);
}
- prog_data->base.base.program_size = *final_assembly_size;
return assembly;
}
diff --git a/src/intel/compiler/brw_vec4.cpp b/src/intel/compiler/brw_vec4.cpp
index 7d8cdfa74a3..bbe4585e0c7 100644
--- a/src/intel/compiler/brw_vec4.cpp
+++ b/src/intel/compiler/brw_vec4.cpp
@@ -2741,7 +2741,6 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,
const nir_shader *src_shader,
bool use_legacy_snorm_formula,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str)
{
const bool is_scalar = compiler->scalar_stage[MESA_SHADER_VERTEX];
@@ -2880,7 +2879,7 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,
g.enable_debug(debug_name);
}
g.generate_code(v.cfg, 8);
- assembly = g.get_assembly(final_assembly_size);
+ assembly = g.get_assembly(&prog_data->base.base.program_size);
}
if (!assembly) {
@@ -2898,10 +2897,9 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,
assembly = brw_vec4_generate_assembly(compiler, log_data, mem_ctx,
shader, &prog_data->base, v.cfg,
- final_assembly_size);
+ &prog_data->base.base.program_size);
}
- prog_data->base.base.program_size = *final_assembly_size;
return assembly;
}
diff --git a/src/intel/compiler/brw_vec4_gs_visitor.cpp b/src/intel/compiler/brw_vec4_gs_visitor.cpp
index 11b73f187cf..7848832e412 100644
--- a/src/intel/compiler/brw_vec4_gs_visitor.cpp
+++ b/src/intel/compiler/brw_vec4_gs_visitor.cpp
@@ -618,7 +618,6 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
const nir_shader *src_shader,
struct gl_program *prog,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str)
{
struct brw_gs_compile c;
@@ -868,9 +867,7 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
g.enable_debug(name);
}
g.generate_code(v.cfg, 8);
- const unsigned *ret = g.get_assembly(final_assembly_size);
- prog_data->base.base.program_size = *final_assembly_size;
- return ret;
+ return g.get_assembly(&prog_data->base.base.program_size);
}
}
@@ -899,12 +896,10 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
if (v.run()) {
/* Success! Backup is not needed */
ralloc_free(param);
- const unsigned *ret =
- brw_vec4_generate_assembly(compiler, log_data, mem_ctx, shader,
- &prog_data->base, v.cfg,
- final_assembly_size);
- prog_data->base.base.program_size = *final_assembly_size;
- return ret;
+ return brw_vec4_generate_assembly(compiler, log_data, mem_ctx,
+ shader, &prog_data->base, v.cfg,
+ &prog_data->base.base.
+ program_size);
} else {
/* These variables could be modified by the execution of the GS
* visitor if it packed the uniforms in the push constant buffer.
@@ -968,11 +963,10 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,
} else {
ret = brw_vec4_generate_assembly(compiler, log_data, mem_ctx, shader,
&prog_data->base, gs->cfg,
- final_assembly_size);
+ &prog_data->base.base.program_size);
}
delete gs;
- prog_data->base.base.program_size = *final_assembly_size;
return ret;
}
diff --git a/src/intel/compiler/brw_vec4_tcs.cpp b/src/intel/compiler/brw_vec4_tcs.cpp
index 04feb6bdf17..fdc44f1e544 100644
--- a/src/intel/compiler/brw_vec4_tcs.cpp
+++ b/src/intel/compiler/brw_vec4_tcs.cpp
@@ -382,7 +382,6 @@ brw_compile_tcs(const struct brw_compiler *compiler,
struct brw_tcs_prog_data *prog_data,
const nir_shader *src_shader,
int shader_time_index,
- unsigned *final_assembly_size,
char **error_str)
{
const struct gen_device_info *devinfo = compiler->devinfo;
@@ -488,7 +487,7 @@ brw_compile_tcs(const struct brw_compiler *compiler,
g.generate_code(v.cfg, 8);
- assembly = g.get_assembly(final_assembly_size);
+ assembly = g.get_assembly(&prog_data->base.base.program_size);
} else {
vec4_tcs_visitor v(compiler, log_data, key, prog_data,
nir, mem_ctx, shader_time_index, &input_vue_map);
@@ -504,10 +503,9 @@ brw_compile_tcs(const struct brw_compiler *compiler,
assembly = brw_vec4_generate_assembly(compiler, log_data, mem_ctx, nir,
&prog_data->base, v.cfg,
- final_assembly_size);
+ &prog_data->base.base.program_size);
}
- prog_data->base.base.program_size = *final_assembly_size;
return assembly;
}
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index 8a2e4f83ca7..907b24a758d 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -535,15 +535,15 @@ anv_pipeline_compile_vs(struct anv_pipeline *pipeline,
nir->info.outputs_written,
nir->info.separate_shader);
- unsigned code_size;
const unsigned *shader_code =
brw_compile_vs(compiler, NULL, mem_ctx, &key, &prog_data, nir,
- false, -1, &code_size, NULL);
+ false, -1, NULL);
if (shader_code == NULL) {
ralloc_free(mem_ctx);
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
}
+ unsigned code_size = prog_data.base.base.program_size;
bin = anv_pipeline_upload_kernel(pipeline, cache, sha1, 20,
shader_code, code_size,
&prog_data.base.base, sizeof(prog_data),
@@ -694,18 +694,18 @@ anv_pipeline_compile_tcs_tes(struct anv_pipeline *pipeline,
tes_key.inputs_read = tcs_key.outputs_written;
tes_key.patch_inputs_read = tcs_key.patch_outputs_written;
- unsigned code_size;
const int shader_time_index = -1;
const unsigned *shader_code;
shader_code =
brw_compile_tcs(compiler, NULL, mem_ctx, &tcs_key, &tcs_prog_data,
- tcs_nir, shader_time_index, &code_size, NULL);
+ tcs_nir, shader_time_index, NULL);
if (shader_code == NULL) {
ralloc_free(mem_ctx);
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
}
+ unsigned code_size = tcs_prog_data.base.base.program_size;
tcs_bin = anv_pipeline_upload_kernel(pipeline, cache,
tcs_sha1, sizeof(tcs_sha1),
shader_code, code_size,
@@ -720,12 +720,13 @@ anv_pipeline_compile_tcs_tes(struct anv_pipeline *pipeline,
shader_code =
brw_compile_tes(compiler, NULL, mem_ctx, &tes_key,
&tcs_prog_data.base.vue_map, &tes_prog_data, tes_nir,
- NULL, shader_time_index, &code_size, NULL);
+ NULL, shader_time_index, NULL);
if (shader_code == NULL) {
ralloc_free(mem_ctx);
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
}
+ code_size = tes_prog_data.base.base.program_size;
tes_bin = anv_pipeline_upload_kernel(pipeline, cache,
tes_sha1, sizeof(tes_sha1),
shader_code, code_size,
@@ -797,16 +798,16 @@ anv_pipeline_compile_gs(struct anv_pipeline *pipeline,
nir->info.outputs_written,
nir->info.separate_shader);
- unsigned code_size;
const unsigned *shader_code =
brw_compile_gs(compiler, NULL, mem_ctx, &key, &prog_data, nir,
- NULL, -1, &code_size, NULL);
+ NULL, -1, NULL);
if (shader_code == NULL) {
ralloc_free(mem_ctx);
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
}
/* TODO: SIMD8 GS */
+ const unsigned code_size = prog_data.base.base.program_size;
bin = anv_pipeline_upload_kernel(pipeline, cache, sha1, 20,
shader_code, code_size,
&prog_data.base.base, sizeof(prog_data),
@@ -921,15 +922,15 @@ anv_pipeline_compile_fs(struct anv_pipeline *pipeline,
anv_fill_binding_table(&prog_data.base, num_rts);
- unsigned code_size;
const unsigned *shader_code =
brw_compile_fs(compiler, NULL, mem_ctx, &key, &prog_data, nir,
- NULL, -1, -1, true, false, NULL, &code_size, NULL);
+ NULL, -1, -1, true, false, NULL, NULL);
if (shader_code == NULL) {
ralloc_free(mem_ctx);
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
}
+ unsigned code_size = prog_data.base.program_size;
bin = anv_pipeline_upload_kernel(pipeline, cache, sha1, 20,
shader_code, code_size,
&prog_data.base, sizeof(prog_data),
@@ -993,15 +994,15 @@ anv_pipeline_compile_cs(struct anv_pipeline *pipeline,
anv_fill_binding_table(&prog_data.base, 1);
- unsigned code_size;
const unsigned *shader_code =
brw_compile_cs(compiler, NULL, mem_ctx, &key, &prog_data, nir,
- -1, &code_size, NULL);
+ -1, NULL);
if (shader_code == NULL) {
ralloc_free(mem_ctx);
return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY);
}
+ const unsigned code_size = prog_data.base.program_size;
bin = anv_pipeline_upload_kernel(pipeline, cache, sha1, 20,
shader_code, code_size,
&prog_data.base, sizeof(prog_data),