diff options
author | Chris Forbes <[email protected]> | 2014-12-05 19:43:13 +1300 |
---|---|---|
committer | Chris Forbes <[email protected]> | 2014-12-07 11:46:42 +1300 |
commit | ed56c16820aea0e115768d77861fe266380f2595 (patch) | |
tree | f5240441c2013780a4d1f97a88b5e6e7697e9b8e /src/mesa/drivers/dri | |
parent | 092c73a7c32b240a26ffeab2ee475f6d590540b2 (diff) |
i965/Gen6-7: Fix point sprites with PolygonMode(GL_POINT)
This was an oversight in the original patch. When PolygonMode is
used, then front faces, back faces, or both may be rendered as
points and are affected by point sprite state.
Note that SNB/IVB can't actually be fully conformant here, for
a legacy context -- we don't have separate sets of pointsprite
enables for front and back faces. Haswell ignores pointsprite
state correctly in hardware for non-point rasterization, so can
do this correctly, but it doesn't seem worth it.
Signed-off-by: Chris Forbes <[email protected]>
Cc: "10.4" <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86764
Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen6_sf_state.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c index ccb6b302474..fc73c572da7 100644 --- a/src/mesa/drivers/dri/i965/gen6_sf_state.c +++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c @@ -133,6 +133,12 @@ static bool is_drawing_points(const struct brw_context *brw) { /* Determine if the primitives *reaching the SF* are points */ + /* _NEW_POLYGON */ + if (brw->ctx.Polygon.FrontMode == GL_POINT || + brw->ctx.Polygon.BackMode == GL_POINT) { + return true; + } + if (brw->geometry_program) { /* BRW_NEW_GEOMETRY_PROGRAM */ return brw->geometry_program->OutputType == GL_POINTS; |