summaryrefslogtreecommitdiffstats
path: root/src/mesa/program/prog_parameter.c
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2011-07-30 10:49:49 -0700
committerIan Romanick <[email protected]>2011-08-16 14:09:40 -0700
commit41f8ffe5e07c4f389eb13d17ecf0ff776890e9bc (patch)
tree60bd671415336847a09be7d09a124fb829d93c1f /src/mesa/program/prog_parameter.c
parent6ad08989d7c10892919ce1cb9c88c4cf8b73e1dc (diff)
ir_to_mesa: Implement ir_binop_logic_or using an add w/saturate or add w/SLT
Logical-or is implemented using addition (followed by clampling to [0,1]) on values of 0.0 and 1.0. Replacing the logical-or operators with addition gives a + b which has a result on the range [0, 2]. Previously a SNE instruction was used to clamp the resulting logic value to [0,1]. In a fragment shader, using a saturate on the add has the same effect. Adding the saturate to the add is free, so (at least) one instruction is saved. In a vertex shader, using an SLT on the negation of the add result has the same effect. Many older shader architectures do not support the SNE instruction. It must be emulated using two SLT instructions and an ADD. On these architectures, the single SLT saves two instructions. Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/mesa/program/prog_parameter.c')
0 files changed, 0 insertions, 0 deletions