diff options
author | George Kyriazis <[email protected]> | 2017-04-19 13:55:26 -0500 |
---|---|---|
committer | George Kyriazis <[email protected]> | 2017-05-08 21:28:53 -0500 |
commit | 909f72e0a2178ede4497c352933c608e6e8dab00 (patch) | |
tree | e3e1d9c3ff16d1338a861e890d82df45523e61c7 /src/gallium/drivers/swr/swr_state.h | |
parent | 26a9ed6f0fee1ea0a01e99f42e0f9101d3c53ef0 (diff) |
swr: fix polygonmode for front==back
Rasterizer core only supports polygonmode front==back. Add logic for
populating fillMode for the rasterizer only for that case correctly.
Provide enum conversion between mesa enums and core enums.
The core renders lines/points as tris. Previously, code would enable
stipple for polygonmode != FILL. Modify stipple enable logic so that
this works correctly.
No regressions in vtk tests.
Fixes the following piglit tests:
pointsprite
gl-1.0-edgeflag-const
v2: remove cc stable, and remove "not implemented" assert
v3: modified commit message
Reviewed-by: Bruce Cherniak <[email protected]>
Diffstat (limited to 'src/gallium/drivers/swr/swr_state.h')
-rw-r--r-- | src/gallium/drivers/swr/swr_state.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gallium/drivers/swr/swr_state.h b/src/gallium/drivers/swr/swr_state.h index 9a8c4e1311c..7940a960d93 100644 --- a/src/gallium/drivers/swr/swr_state.h +++ b/src/gallium/drivers/swr/swr_state.h @@ -376,4 +376,24 @@ swr_convert_prim_topology(const unsigned mode) return TOP_UNKNOWN; } }; + +/* + * convert mesa PIPE_POLYGON_MODE_X to SWR enum SWR_FILLMODE + */ +static INLINE enum SWR_FILLMODE +swr_convert_fill_mode(const unsigned mode) +{ + switch(mode) { + case PIPE_POLYGON_MODE_FILL: + return SWR_FILLMODE_SOLID; + case PIPE_POLYGON_MODE_LINE: + return SWR_FILLMODE_WIREFRAME; + case PIPE_POLYGON_MODE_POINT: + return SWR_FILLMODE_POINT; + default: + assert(0 && "Unknown fillmode"); + return SWR_FILLMODE_SOLID; // at least do something sensible + } +} + #endif |