freedreno/ir3: split out has_latency_to_hide()
Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4071>
This commit is contained in:
@@ -1198,6 +1198,30 @@ int ir3_ra(struct ir3_shader_variant *v, struct ir3_instruction **precolor, unsi
|
||||
/* legalize: */
|
||||
void ir3_legalize(struct ir3 *ir, struct ir3_shader_variant *so, int *max_bary);
|
||||
|
||||
static inline bool
|
||||
ir3_has_latency_to_hide(struct ir3 *ir)
|
||||
{
|
||||
foreach_block (block, &ir->block_list) {
|
||||
foreach_instr (instr, &block->instr_list) {
|
||||
if (is_tex(instr))
|
||||
return true;
|
||||
|
||||
if (is_load(instr)) {
|
||||
switch (instr->opc) {
|
||||
case OPC_LDLV:
|
||||
case OPC_LDL:
|
||||
case OPC_LDLW:
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
/* instruction helpers */
|
||||
|
||||
|
||||
@@ -772,34 +772,10 @@ sched_block(struct ir3_sched_ctx *ctx, struct ir3_block *block)
|
||||
}
|
||||
}
|
||||
|
||||
static bool
|
||||
has_latency_to_hide(struct ir3 *ir)
|
||||
{
|
||||
foreach_block (block, &ir->block_list) {
|
||||
foreach_instr (instr, &block->instr_list) {
|
||||
if (is_tex(instr))
|
||||
return true;
|
||||
|
||||
if (is_load(instr)) {
|
||||
switch (instr->opc) {
|
||||
case OPC_LDLV:
|
||||
case OPC_LDL:
|
||||
case OPC_LDLW:
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static void
|
||||
setup_thresholds(struct ir3_sched_ctx *ctx, struct ir3 *ir)
|
||||
{
|
||||
if (has_latency_to_hide(ir)) {
|
||||
if (ir3_has_latency_to_hide(ir)) {
|
||||
ctx->live_threshold_hi = 2 * 16 * 4;
|
||||
ctx->live_threshold_lo = 2 * 4 * 4;
|
||||
ctx->depth_threshold_hi = 6;
|
||||
|
||||
Reference in New Issue
Block a user