summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/swr/swr_state.h
diff options
context:
space:
mode:
authorGeorge Kyriazis <[email protected]>2017-04-19 13:55:26 -0500
committerGeorge Kyriazis <[email protected]>2017-05-08 21:28:53 -0500
commit909f72e0a2178ede4497c352933c608e6e8dab00 (patch)
treee3e1d9c3ff16d1338a861e890d82df45523e61c7 /src/gallium/drivers/swr/swr_state.h
parent26a9ed6f0fee1ea0a01e99f42e0f9101d3c53ef0 (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.h20
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