diff options
author | Rob Clark <[email protected]> | 2015-02-25 13:54:25 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2015-03-03 10:41:00 -0500 |
commit | e9f2abe349886ae5423c7c31d201e7d587a3695a (patch) | |
tree | be373383fcc74246bb538a2d4228e0ebfee862f2 /src/gallium/drivers/freedreno/ir3/ir3.h | |
parent | 9d732d3125e1b39788a642a5723aeb54cb1983f3 (diff) |
freedreno/ir3: handle flat bypass for a4xx
We may not need this for later a4xx patchlevels, but we do at least need
this for patchlevel 0. Bypass bary.f for fetching varyings when flat
shading is needed (rather than configure via cmdstream). This requires
a special dummy bary.f w/ (ei) flag to signal to scheduler when all
varyings are consumed. And requires shader variants based on rasterizer
flatshade state to handle TGSI_INTERPOLATE_COLOR.
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/ir3/ir3.h')
-rw-r--r-- | src/gallium/drivers/freedreno/ir3/ir3.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/ir3/ir3.h b/src/gallium/drivers/freedreno/ir3/ir3.h index f90392b7297..18d59fa7d55 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3.h +++ b/src/gallium/drivers/freedreno/ir3/ir3.h @@ -427,6 +427,12 @@ static inline bool is_mem(struct ir3_instruction *instr) static inline bool is_input(struct ir3_instruction *instr) { + /* in some cases, ldlv is used to fetch varying without + * interpolation.. fortunately inloc is the first src + * register in either case + */ + if (is_mem(instr) && (instr->opc == OPC_LDLV)) + return true; return (instr->category == 2) && (instr->opc == OPC_BARY_F); } |