llvmpipe: fix multisample lines.
This also needs another lines fix, but at least align the code with tri and points Cc: "20.3" <mesa-stable@lists.freedesktop.org> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7705>
This commit is contained in:
parent
d932720ff7
commit
2c0a078fdb
|
@ -71,10 +71,8 @@ dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units,Fail
|
||||||
dEQP-GLES3.functional.polygon_offset.fixed24_displacement_with_units,Fail
|
dEQP-GLES3.functional.polygon_offset.fixed24_displacement_with_units,Fail
|
||||||
dEQP-GLES3.functional.polygon_offset.fixed24_render_with_units,Fail
|
dEQP-GLES3.functional.polygon_offset.fixed24_render_with_units,Fail
|
||||||
dEQP-GLES3.functional.polygon_offset.float32_displacement_with_units,Fail
|
dEQP-GLES3.functional.polygon_offset.float32_displacement_with_units,Fail
|
||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.interpolation.lines,Fail
|
|
||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines,Fail
|
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.lines,Fail
|
||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.points,Fail
|
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_4.primitives.points,Fail
|
||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.interpolation.lines,Fail
|
|
||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines,Fail
|
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.lines,Fail
|
||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.points,Fail
|
dEQP-GLES3.functional.rasterization.fbo.rbo_multisample_max.primitives.points,Fail
|
||||||
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide,Fail
|
dEQP-GLES3.functional.rasterization.fbo.rbo_singlesample.interpolation.lines_wide,Fail
|
||||||
|
|
|
@ -298,7 +298,7 @@ try_setup_line( struct lp_setup_context *setup,
|
||||||
int nr_planes = 4;
|
int nr_planes = 4;
|
||||||
unsigned viewport_index = 0;
|
unsigned viewport_index = 0;
|
||||||
unsigned layer = 0;
|
unsigned layer = 0;
|
||||||
|
float pixel_offset = setup->multisample ? 0.0 : setup->pixel_offset;
|
||||||
/* linewidth should be interpreted as integer */
|
/* linewidth should be interpreted as integer */
|
||||||
int fixed_width = util_iround(width) * FIXED_ONE;
|
int fixed_width = util_iround(width) * FIXED_ONE;
|
||||||
|
|
||||||
|
@ -444,15 +444,15 @@ try_setup_line( struct lp_setup_context *setup,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* x/y positions in fixed point */
|
/* x/y positions in fixed point */
|
||||||
x[0] = subpixel_snap(v1[0][0] + x_offset - setup->pixel_offset);
|
x[0] = subpixel_snap(v1[0][0] + x_offset - pixel_offset);
|
||||||
x[1] = subpixel_snap(v2[0][0] + x_offset_end - setup->pixel_offset);
|
x[1] = subpixel_snap(v2[0][0] + x_offset_end - pixel_offset);
|
||||||
x[2] = subpixel_snap(v2[0][0] + x_offset_end - setup->pixel_offset);
|
x[2] = subpixel_snap(v2[0][0] + x_offset_end - pixel_offset);
|
||||||
x[3] = subpixel_snap(v1[0][0] + x_offset - setup->pixel_offset);
|
x[3] = subpixel_snap(v1[0][0] + x_offset - pixel_offset);
|
||||||
|
|
||||||
y[0] = subpixel_snap(v1[0][1] + y_offset - setup->pixel_offset) - fixed_width/2;
|
y[0] = subpixel_snap(v1[0][1] + y_offset - pixel_offset) - fixed_width/2;
|
||||||
y[1] = subpixel_snap(v2[0][1] + y_offset_end - setup->pixel_offset) - fixed_width/2;
|
y[1] = subpixel_snap(v2[0][1] + y_offset_end - pixel_offset) - fixed_width/2;
|
||||||
y[2] = subpixel_snap(v2[0][1] + y_offset_end - setup->pixel_offset) + fixed_width/2;
|
y[2] = subpixel_snap(v2[0][1] + y_offset_end - pixel_offset) + fixed_width/2;
|
||||||
y[3] = subpixel_snap(v1[0][1] + y_offset - setup->pixel_offset) + fixed_width/2;
|
y[3] = subpixel_snap(v1[0][1] + y_offset - pixel_offset) + fixed_width/2;
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -541,15 +541,15 @@ try_setup_line( struct lp_setup_context *setup,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* x/y positions in fixed point */
|
/* x/y positions in fixed point */
|
||||||
x[0] = subpixel_snap(v1[0][0] + x_offset - setup->pixel_offset) - fixed_width/2;
|
x[0] = subpixel_snap(v1[0][0] + x_offset - pixel_offset) - fixed_width/2;
|
||||||
x[1] = subpixel_snap(v2[0][0] + x_offset_end - setup->pixel_offset) - fixed_width/2;
|
x[1] = subpixel_snap(v2[0][0] + x_offset_end - pixel_offset) - fixed_width/2;
|
||||||
x[2] = subpixel_snap(v2[0][0] + x_offset_end - setup->pixel_offset) + fixed_width/2;
|
x[2] = subpixel_snap(v2[0][0] + x_offset_end - pixel_offset) + fixed_width/2;
|
||||||
x[3] = subpixel_snap(v1[0][0] + x_offset - setup->pixel_offset) + fixed_width/2;
|
x[3] = subpixel_snap(v1[0][0] + x_offset - pixel_offset) + fixed_width/2;
|
||||||
|
|
||||||
y[0] = subpixel_snap(v1[0][1] + y_offset - setup->pixel_offset);
|
y[0] = subpixel_snap(v1[0][1] + y_offset - pixel_offset);
|
||||||
y[1] = subpixel_snap(v2[0][1] + y_offset_end - setup->pixel_offset);
|
y[1] = subpixel_snap(v2[0][1] + y_offset_end - pixel_offset);
|
||||||
y[2] = subpixel_snap(v2[0][1] + y_offset_end - setup->pixel_offset);
|
y[2] = subpixel_snap(v2[0][1] + y_offset_end - pixel_offset);
|
||||||
y[3] = subpixel_snap(v1[0][1] + y_offset - setup->pixel_offset);
|
y[3] = subpixel_snap(v1[0][1] + y_offset - pixel_offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Bounding rectangle (in pixels) */
|
/* Bounding rectangle (in pixels) */
|
||||||
|
@ -670,7 +670,7 @@ try_setup_line( struct lp_setup_context *setup,
|
||||||
plane[i].c++;
|
plane[i].c++;
|
||||||
}
|
}
|
||||||
else if (plane[i].dcdx == 0) {
|
else if (plane[i].dcdx == 0) {
|
||||||
if (setup->pixel_offset == 0) {
|
if (pixel_offset == 0) {
|
||||||
/* correct for top-left fill convention:
|
/* correct for top-left fill convention:
|
||||||
*/
|
*/
|
||||||
if (plane[i].dcdy > 0) plane[i].c++;
|
if (plane[i].dcdy > 0) plane[i].c++;
|
||||||
|
|
Loading…
Reference in New Issue