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 <erik.faye-lund@collabora.com>
Fixes: ca9c413647
("softpipe: Respect gl_rasterization_rules in
primitive setup.")
Reviewed-By: Gert Wollny <gert.wollny@collabora.com>
This commit is contained in:
parent
0c6702cfa5
commit
f753ac355e
|
@ -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 );
|
||||
|
|
Loading…
Reference in New Issue