intel/blorp: Simplify blorp_compile_fs() interface
Take multisample_fbo parameter instead of a brw_wm_key. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27581>
This commit is contained in:
+9
-12
@@ -250,13 +250,6 @@ blorp_params_init(struct blorp_params *params)
|
||||
params->num_layers = 1;
|
||||
}
|
||||
|
||||
void
|
||||
brw_blorp_init_wm_prog_key(struct brw_wm_prog_key *wm_key)
|
||||
{
|
||||
memset(wm_key, 0, sizeof(*wm_key));
|
||||
wm_key->nr_color_regions = 1;
|
||||
}
|
||||
|
||||
void
|
||||
brw_blorp_init_cs_prog_key(struct brw_cs_prog_key *cs_key)
|
||||
{
|
||||
@@ -266,12 +259,11 @@ brw_blorp_init_cs_prog_key(struct brw_cs_prog_key *cs_key)
|
||||
const unsigned *
|
||||
blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
|
||||
struct nir_shader *nir,
|
||||
struct brw_wm_prog_key *wm_key,
|
||||
bool multisample_fbo,
|
||||
bool use_repclear,
|
||||
struct brw_wm_prog_data *wm_prog_data)
|
||||
{
|
||||
const struct brw_compiler *compiler = blorp->compiler;
|
||||
|
||||
nir->options = compiler->nir_options[MESA_SHADER_FRAGMENT];
|
||||
|
||||
memset(wm_prog_data, 0, sizeof(*wm_prog_data));
|
||||
@@ -284,11 +276,16 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
|
||||
nir_remove_dead_variables(nir, nir_var_shader_in, NULL);
|
||||
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
|
||||
|
||||
struct brw_wm_prog_key wm_key;
|
||||
memset(&wm_key, 0, sizeof(wm_key));
|
||||
wm_key.multisample_fbo = multisample_fbo ? BRW_ALWAYS : BRW_NEVER;
|
||||
wm_key.nr_color_regions = 1;
|
||||
|
||||
if (blorp->compiler->devinfo->ver < 6) {
|
||||
if (nir->info.fs.uses_discard)
|
||||
wm_key->iz_lookup |= BRW_WM_IZ_PS_KILL_ALPHATEST_BIT;
|
||||
wm_key.iz_lookup |= BRW_WM_IZ_PS_KILL_ALPHATEST_BIT;
|
||||
|
||||
wm_key->input_slots_valid = nir->info.inputs_read | VARYING_BIT_POS;
|
||||
wm_key.input_slots_valid = nir->info.inputs_read | VARYING_BIT_POS;
|
||||
}
|
||||
|
||||
struct brw_compile_fs_params params = {
|
||||
@@ -298,7 +295,7 @@ blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
|
||||
.log_data = blorp->driver_ctx,
|
||||
.debug_flag = DEBUG_BLORP,
|
||||
},
|
||||
.key = wm_key,
|
||||
.key = &wm_key,
|
||||
.prog_data = wm_prog_data,
|
||||
|
||||
.use_rep_send = use_repclear,
|
||||
|
||||
@@ -1517,11 +1517,9 @@ blorp_get_blit_kernel_fs(struct blorp_batch *batch,
|
||||
nir->info.name =
|
||||
ralloc_strdup(nir, blorp_shader_type_to_name(key->base.shader_type));
|
||||
|
||||
struct brw_wm_prog_key wm_key;
|
||||
brw_blorp_init_wm_prog_key(&wm_key);
|
||||
wm_key.multisample_fbo = key->rt_samples > 1 ? BRW_ALWAYS : BRW_NEVER;
|
||||
const bool multisample_fbo = key->rt_samples > 1;
|
||||
|
||||
program = blorp_compile_fs(blorp, mem_ctx, nir, &wm_key, false,
|
||||
program = blorp_compile_fs(blorp, mem_ctx, nir, multisample_fbo, false,
|
||||
&prog_data);
|
||||
|
||||
bool result =
|
||||
|
||||
@@ -90,12 +90,10 @@ blorp_params_get_clear_kernel_fs(struct blorp_batch *batch,
|
||||
frag_color->data.location = FRAG_RESULT_COLOR;
|
||||
nir_store_var(&b, frag_color, color, 0xf);
|
||||
|
||||
struct brw_wm_prog_key wm_key;
|
||||
brw_blorp_init_wm_prog_key(&wm_key);
|
||||
|
||||
struct brw_wm_prog_data prog_data;
|
||||
const bool multisample_fbo = false;
|
||||
const unsigned *program =
|
||||
blorp_compile_fs(blorp, mem_ctx, b.shader, &wm_key, use_replicated_data,
|
||||
blorp_compile_fs(blorp, mem_ctx, b.shader, multisample_fbo, use_replicated_data,
|
||||
&prog_data);
|
||||
|
||||
bool result =
|
||||
@@ -1386,13 +1384,10 @@ blorp_params_get_mcs_partial_resolve_kernel(struct blorp_batch *batch,
|
||||
}
|
||||
nir_store_var(&b, frag_color, clear_color, 0xf);
|
||||
|
||||
struct brw_wm_prog_key wm_key;
|
||||
brw_blorp_init_wm_prog_key(&wm_key);
|
||||
wm_key.multisample_fbo = BRW_ALWAYS;
|
||||
|
||||
struct brw_wm_prog_data prog_data;
|
||||
const bool multisample_fbo = true;
|
||||
const unsigned *program =
|
||||
blorp_compile_fs(blorp, mem_ctx, b.shader, &wm_key, false,
|
||||
blorp_compile_fs(blorp, mem_ctx, b.shader, multisample_fbo, false,
|
||||
&prog_data);
|
||||
|
||||
bool result =
|
||||
|
||||
@@ -415,7 +415,6 @@ struct blorp_blit_prog_key
|
||||
bool blorp_blitter_supports_aux(const struct intel_device_info *devinfo,
|
||||
enum isl_aux_usage aux_usage);
|
||||
|
||||
void brw_blorp_init_wm_prog_key(struct brw_wm_prog_key *wm_key);
|
||||
void brw_blorp_init_cs_prog_key(struct brw_cs_prog_key *cs_key);
|
||||
|
||||
const char *blorp_shader_type_to_name(enum blorp_shader_type type);
|
||||
@@ -424,7 +423,7 @@ const char *blorp_shader_pipeline_to_name(enum blorp_shader_pipeline pipe);
|
||||
const unsigned *
|
||||
blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
|
||||
struct nir_shader *nir,
|
||||
struct brw_wm_prog_key *wm_key,
|
||||
bool multisample_fbo,
|
||||
bool use_repclear,
|
||||
struct brw_wm_prog_data *wm_prog_data);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user