diff options
author | Erik Faye-Lund <[email protected]> | 2019-04-30 13:41:39 +0200 |
---|---|---|
committer | Erik Faye-Lund <[email protected]> | 2019-05-01 13:53:02 +0000 |
commit | f753ac355e5bbd1129755224c54a73339da97cb1 (patch) | |
tree | 4b7d465344d6df1620cbb2df6913323a62682528 /src | |
parent | 0c6702cfa581d8126cac73c0a1d9980b3b6b94db (diff) |
softpipe: setup pixel_offset for all primitive types
If we don't update this for all primitive-types, we end up rendering
slightly offset points and lines up until the point where the first
triangle gets drawn. This is obviously not correct, and violates
OpenGL's repeatability rule.
Signed-off-by: Erik Faye-Lund <[email protected]>
Fixes: ca9c413647b ("softpipe: Respect gl_rasterization_rules in
primitive setup.")
Reviewed-By: Gert Wollny <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/softpipe/sp_setup.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/gallium/drivers/softpipe/sp_setup.c b/src/gallium/drivers/softpipe/sp_setup.c index ffe49260b9a..a91e4f588c8 100644 --- a/src/gallium/drivers/softpipe/sp_setup.c +++ b/src/gallium/drivers/softpipe/sp_setup.c @@ -390,17 +390,6 @@ setup_sort_vertices(struct setup_context *setup, return FALSE; } - - /* Prepare pixel offset for rasterisation: - * - pixel center (0.5, 0.5) for GL, or - * - assume (0.0, 0.0) for other APIs. - */ - if (setup->softpipe->rasterizer->half_pixel_center) { - setup->pixel_offset = 0.5f; - } else { - setup->pixel_offset = 0.0f; - } - return TRUE; } @@ -1476,6 +1465,16 @@ sp_setup_prepare(struct setup_context *setup) } } + /* Prepare pixel offset for rasterisation: + * - pixel center (0.5, 0.5) for GL, or + * - assume (0.0, 0.0) for other APIs. + */ + if (setup->softpipe->rasterizer->half_pixel_center) { + setup->pixel_offset = 0.5f; + } else { + setup->pixel_offset = 0.0f; + } + setup->max_layer = max_layer; sp->quad.first->begin( sp->quad.first ); |