nir: Add new texop nir_texop_tex_prefetch

This is like nir_texop_tex, but signals that the sampling coordinates
are immutable during the shader stage, in a way that allows the HW
that supports pre-dispatching sampling operations to pre-fetch
the result prior to scheduling the shader stage.

This is introduced to support the feature in Freedreno. Adreno HW
from a4xx supports it.

A NIR pass introduced later in this series will detect sampling
operations that are eligible for pre-dispatch, and replace
nir_texop_tex by this new op, to tell the backend to enable
pre-fetch.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
This commit is contained in:
Eduardo Lima Mitev
2019-07-10 09:48:21 +02:00
committed by Rob Clark
parent 27df3e015b
commit f1d4fadf1b
3 changed files with 6 additions and 0 deletions

View File

@@ -985,6 +985,9 @@ print_tex_instr(nir_tex_instr *instr, print_state *state)
case nir_texop_samples_identical:
fprintf(fp, "samples_identical ");
break;
case nir_texop_tex_prefetch:
fprintf(fp, "tex (pre-dispatchable) ");
break;
default:
unreachable("Invalid texture operation");
break;