diff options
author | Rob Clark <[email protected]> | 2014-02-23 14:40:41 -0500 |
---|---|---|
committer | Rob Clark <[email protected]> | 2014-03-02 11:26:35 -0500 |
commit | 26530716ab9398703f91285381033073f47e8bd4 (patch) | |
tree | b7d4c19fd40f508083ca0a9a86a9c07bac8ff122 /src/gallium/drivers/freedreno/freedreno_lowering.h | |
parent | 8dd70125fc5ea45b206df50bac00f15d6e5da38c (diff) |
freedreno/lowering: two-sided-color
Add option to generate fragment shader to emulate two sided color.
Additional inputs are added to shader for BCOLOR's (on corresponding to
each COLOR input). CMP instructions are used to select whether to use
COLOR or BCOLOR.
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno/freedreno_lowering.h')
-rw-r--r-- | src/gallium/drivers/freedreno/freedreno_lowering.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/gallium/drivers/freedreno/freedreno_lowering.h b/src/gallium/drivers/freedreno/freedreno_lowering.h index 2862e5d3b6b..2d36d8faf81 100644 --- a/src/gallium/drivers/freedreno/freedreno_lowering.h +++ b/src/gallium/drivers/freedreno/freedreno_lowering.h @@ -33,6 +33,25 @@ #include "tgsi/tgsi_scan.h" struct fd_lowering_config { + /* For fragment shaders, generate a shader that emulates two + * sided color by inserting a BGCOLOR input for each COLOR + * input, and insert a CMP instruction to select the correct + * color to use based on the TGSI_SEMANTIC_FACE input. + * + * Note that drivers which use this to emulate two sided color + * will: + * a) need to generate (on demand) alternate shaders to use + * depending on the rasterizer state (ie. whether two + * sided shading enabled) + * b) expect to see the BGCOLOR semantic name in fragment + * shaders. During linkage, the driver should simply + * map VS.OUT.BGCOLOR[n] to FS.IN.BGCOLOR[n] (in the + * same was as linking other outs/ins). + */ + unsigned color_two_side : 1; + + /* TODO support for alpha_to_one as well?? */ + /* Individual OPC lowerings, if lower_<opc> is TRUE then * enable lowering of TGSI_OPCODE_<opc> */ |