intel/blorp: Plumb the stage through blorp upload_shader

Vulkan uses that for its own upload function -- even though for BLORP
it doesn't really currently care.  Neither Iris and i965 makes use of
it at the moment.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4170>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4170>
This commit is contained in:
Caio Marcelo de Oliveira Filho
2020-03-12 14:27:13 -07:00
parent 4c35bc7e61
commit 3dd0d12aa5
8 changed files with 15 additions and 15 deletions

View File

@@ -956,7 +956,7 @@ bool iris_blorp_lookup_shader(struct blorp_batch *blorp_batch,
uint32_t key_size, uint32_t key_size,
uint32_t *kernel_out, uint32_t *kernel_out,
void *prog_data_out); void *prog_data_out);
bool iris_blorp_upload_shader(struct blorp_batch *blorp_batch, bool iris_blorp_upload_shader(struct blorp_batch *blorp_batch, uint32_t stage,
const void *key, uint32_t key_size, const void *key, uint32_t key_size,
const void *kernel, uint32_t kernel_size, const void *kernel, uint32_t kernel_size,
const struct brw_stage_prog_data *prog_data, const struct brw_stage_prog_data *prog_data,

View File

@@ -221,7 +221,7 @@ iris_blorp_lookup_shader(struct blorp_batch *blorp_batch,
} }
bool bool
iris_blorp_upload_shader(struct blorp_batch *blorp_batch, iris_blorp_upload_shader(struct blorp_batch *blorp_batch, uint32_t stage,
const void *key, uint32_t key_size, const void *key, uint32_t key_size,
const void *kernel, UNUSED uint32_t kernel_size, const void *kernel, UNUSED uint32_t kernel_size,
const struct brw_stage_prog_data *prog_data_templ, const struct brw_stage_prog_data *prog_data_templ,

View File

@@ -292,7 +292,8 @@ blorp_ensure_sf_program(struct blorp_batch *batch,
&prog_data_tmp, &vue_map, &program_size); &prog_data_tmp, &vue_map, &program_size);
bool result = bool result =
blorp->upload_shader(batch, &key, sizeof(key), program, program_size, blorp->upload_shader(batch, MESA_SHADER_NONE,
&key, sizeof(key), program, program_size,
(void *)&prog_data_tmp, sizeof(prog_data_tmp), (void *)&prog_data_tmp, sizeof(prog_data_tmp),
&params->sf_prog_kernel, &params->sf_prog_data); &params->sf_prog_kernel, &params->sf_prog_data);

View File

@@ -49,6 +49,7 @@ struct blorp_context {
const void *key, uint32_t key_size, const void *key, uint32_t key_size,
uint32_t *kernel_out, void *prog_data_out); uint32_t *kernel_out, void *prog_data_out);
bool (*upload_shader)(struct blorp_batch *batch, bool (*upload_shader)(struct blorp_batch *batch,
uint32_t stage,
const void *key, uint32_t key_size, const void *key, uint32_t key_size,
const void *kernel, uint32_t kernel_size, const void *kernel, uint32_t kernel_size,
const struct brw_stage_prog_data *prog_data, const struct brw_stage_prog_data *prog_data,

View File

@@ -1520,7 +1520,8 @@ brw_blorp_get_blit_kernel(struct blorp_batch *batch,
&prog_data); &prog_data);
bool result = bool result =
blorp->upload_shader(batch, prog_key, sizeof(*prog_key), blorp->upload_shader(batch, MESA_SHADER_FRAGMENT,
prog_key, sizeof(*prog_key),
program, prog_data.base.program_size, program, prog_data.base.program_size,
&prog_data.base, sizeof(prog_data), &prog_data.base, sizeof(prog_data),
&params->wm_prog_kernel, &params->wm_prog_data); &params->wm_prog_kernel, &params->wm_prog_data);

View File

@@ -100,7 +100,8 @@ blorp_params_get_clear_kernel(struct blorp_batch *batch,
&prog_data); &prog_data);
bool result = bool result =
blorp->upload_shader(batch, &blorp_key, sizeof(blorp_key), blorp->upload_shader(batch, MESA_SHADER_FRAGMENT,
&blorp_key, sizeof(blorp_key),
program, prog_data.base.program_size, program, prog_data.base.program_size,
&prog_data.base, sizeof(prog_data), &prog_data.base, sizeof(prog_data),
&params->wm_prog_kernel, &params->wm_prog_data); &params->wm_prog_kernel, &params->wm_prog_data);
@@ -192,7 +193,8 @@ blorp_params_get_layer_offset_vs(struct blorp_batch *batch,
blorp_compile_vs(blorp, mem_ctx, b.shader, &vs_prog_data); blorp_compile_vs(blorp, mem_ctx, b.shader, &vs_prog_data);
bool result = bool result =
blorp->upload_shader(batch, &blorp_key, sizeof(blorp_key), blorp->upload_shader(batch, MESA_SHADER_VERTEX,
&blorp_key, sizeof(blorp_key),
program, vs_prog_data.base.base.program_size, program, vs_prog_data.base.base.program_size,
&vs_prog_data.base.base, sizeof(vs_prog_data), &vs_prog_data.base.base, sizeof(vs_prog_data),
&params->vs_prog_kernel, &params->vs_prog_data); &params->vs_prog_kernel, &params->vs_prog_data);
@@ -1170,7 +1172,8 @@ blorp_params_get_mcs_partial_resolve_kernel(struct blorp_batch *batch,
&prog_data); &prog_data);
bool result = bool result =
blorp->upload_shader(batch, &blorp_key, sizeof(blorp_key), blorp->upload_shader(batch, MESA_SHADER_FRAGMENT,
&blorp_key, sizeof(blorp_key),
program, prog_data.base.program_size, program, prog_data.base.program_size,
&prog_data.base, sizeof(prog_data), &prog_data.base, sizeof(prog_data),
&params->wm_prog_kernel, &params->wm_prog_data); &params->wm_prog_kernel, &params->wm_prog_data);

View File

@@ -51,7 +51,7 @@ lookup_blorp_shader(struct blorp_batch *batch,
} }
static bool static bool
upload_blorp_shader(struct blorp_batch *batch, upload_blorp_shader(struct blorp_batch *batch, uint32_t stage,
const void *key, uint32_t key_size, const void *key, uint32_t key_size,
const void *kernel, uint32_t kernel_size, const void *kernel, uint32_t kernel_size,
const struct brw_stage_prog_data *prog_data, const struct brw_stage_prog_data *prog_data,
@@ -69,12 +69,6 @@ upload_blorp_shader(struct blorp_batch *batch,
.sampler_count = 0, .sampler_count = 0,
}; };
/* The stage in anv_shader_bin is only useful for pipeline shaders, so just pass
* a dummy value here so we don't need to change BLORP API.
*
* TODO: Plumb the stage information to BLORP.
*/
gl_shader_stage stage = MESA_SHADER_NONE;
struct anv_shader_bin *bin = struct anv_shader_bin *bin =
anv_pipeline_cache_upload_kernel(&device->default_pipeline_cache, stage, anv_pipeline_cache_upload_kernel(&device->default_pipeline_cache, stage,
key, key_size, kernel, kernel_size, key, key_size, kernel, kernel_size,

View File

@@ -53,7 +53,7 @@ brw_blorp_lookup_shader(struct blorp_batch *batch,
} }
static bool static bool
brw_blorp_upload_shader(struct blorp_batch *batch, brw_blorp_upload_shader(struct blorp_batch *batch, uint32_t stage,
const void *key, uint32_t key_size, const void *key, uint32_t key_size,
const void *kernel, uint32_t kernel_size, const void *kernel, uint32_t kernel_size,
const struct brw_stage_prog_data *prog_data, const struct brw_stage_prog_data *prog_data,