[Mesa-stable] [Mesa-dev] [PATCH 1/2] svga: clamp device line width to at least 1 to fix HWv8 line stippling
Brian Paul
brianp at vmware.com
Thu Jun 29 13:22:40 UTC 2017
If the patches apply cleanly, sure.
-Brian
On 06/27/2017 10:27 AM, Andres Gomez wrote:
> It looks like we could want these 2 into -stable (?)
>
> On Thu, 2017-06-15 at 11:41 -0600, Brian Paul wrote:
>> The line stipple fallback code for virtual HW version 8 didn't work.
>>
>> With HW version 8, we were getting zero when querying the max line
>> widths (AA and non-AA). This means we were setting the draw module's
>> wide line threshold to zero. This caused the wide line stage to always
>> get enabled. That caused the line stipple module to fall because the
>> wide line stage was clobbering the rasterization state with a state
>> object setting the line stipple pattern to 0xffff.
>>
>> Now the wide_lines variable in draw's validate_pipeline() will not
>> be incorrectly set.
>>
>> Also improve debug output.
>>
>> See VMware bug 1895811.
>> ---
>> src/gallium/drivers/svga/svga_screen.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c
>> index 202f54f..3aa9945 100644
>> --- a/src/gallium/drivers/svga/svga_screen.c
>> +++ b/src/gallium/drivers/svga/svga_screen.c
>> @@ -1142,18 +1142,18 @@ svga_screen_create(struct svga_winsys_screen *sws)
>> get_bool_cap(sws, SVGA3D_DEVCAP_LINE_STIPPLE, FALSE);
>>
>> svgascreen->maxLineWidth =
>> - get_float_cap(sws, SVGA3D_DEVCAP_MAX_LINE_WIDTH, 1.0f);
>> + MAX2(1.0, get_float_cap(sws, SVGA3D_DEVCAP_MAX_LINE_WIDTH, 1.0f));
>>
>> svgascreen->maxLineWidthAA =
>> - get_float_cap(sws, SVGA3D_DEVCAP_MAX_AA_LINE_WIDTH, 1.0f);
>> + MAX2(1.0, get_float_cap(sws, SVGA3D_DEVCAP_MAX_AA_LINE_WIDTH, 1.0f));
>>
>> if (0) {
>> debug_printf("svga: haveProvokingVertex %u\n",
>> svgascreen->haveProvokingVertex);
>> debug_printf("svga: haveLineStip %u "
>> - "haveLineSmooth %u maxLineWidth %f\n",
>> + "haveLineSmooth %u maxLineWidth %.2f maxLineWidthAA %.2f\n",
>> svgascreen->haveLineStipple, svgascreen->haveLineSmooth,
>> - svgascreen->maxLineWidth);
>> + svgascreen->maxLineWidth, svgascreen->maxLineWidthAA);
>> debug_printf("svga: maxPointSize %g\n", svgascreen->maxPointSize);
>> debug_printf("svga: msaa samples mask: 0x%x\n", svgascreen->ms_samples);
>> }
More information about the mesa-stable
mailing list