From: Rob Clark Date: Fri, 28 Feb 2020 23:45:53 +0000 (-0800) Subject: freedreno/ir3: fix has_latency_to_hide X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9ae93be8fbdf753e07fbf1b707ce3bc89105b5a9;p=mesa.git freedreno/ir3: fix has_latency_to_hide Also count tex-prefetch instructions. And only let the no-latency rule kick in for frag shaders. Signed-off-by: Rob Clark Part-of: --- diff --git a/src/freedreno/ir3/ir3.h b/src/freedreno/ir3/ir3.h index a44663f4238..5cde264a580 100644 --- a/src/freedreno/ir3/ir3.h +++ b/src/freedreno/ir3/ir3.h @@ -1201,9 +1201,16 @@ 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) { + /* VS/GS/TCS/TESS co-exist with frag shader invocations, but we don't + * know the nature of the fragment shader. Just assume it will have + * latency to hide: + */ + if (ir->type != MESA_SHADER_FRAGMENT) + return true; + foreach_block (block, &ir->block_list) { foreach_instr (instr, &block->instr_list) { - if (is_tex(instr)) + if (is_tex_or_prefetch(instr)) return true; if (is_load(instr)) {