[Mesa-dev] [PATCH 1/5] svga: Ignore pipe_rasterizer_state::line_last_pixel.

Jose Fonseca jfonseca at vmware.com
Mon Sep 14 09:51:44 PDT 2015


I don't know if there's a strict policy.


 From my POV, if people actually bother implementing it, then yeah, it 
would make a lot of sense in keeping it, since as you say it can't be 
easily emulated.

But if the state is just lying there, being ignored by practically 
everybody, then there's little point for its existence.


After all, it's trivial to add it back if people truly want it.  And 
you'd probably keep ignoring it if it weren't my proposal to remove it.


As I said in on the D3D9 state tracker comment, I don't know of any 
application where ignoring the state causes any visible artifacts.


In short, from my POV, "making sense" just by itself is not sufficient 
to keep stuff around.  It should actually be used and implemented.


And AFAIK, the only way anybody to actually use 
pipe_rasterizer_state::line_last_pixel would  be:
- st/nine + ilo
- st/nine + svga on old VMware Workstation on Windows

And I strongly suspect the odds of either are quite small.


But I don't care much either way.


Jose


On 14/09/15 17:32, Axel Davy wrote:
>
> Looking at the AMD hw state doc, there is a state corresponding to that
> feature, so it could be implemented there.
>
> What is the policy for removing gallium features ?
> Even though there is no real support for it is, it doesn't seem a
> feature that can be emulated with other features.
>
> Yours,
>
> Axel Davy
>
> On 14/09/2015 13:09, Jose Fonseca wrote :
>> Altough SVGA3D_RS_LASTPIXEL renderstate exists, most backends ignore it.
>> ---
>>   src/gallium/drivers/svga/svga_context.h         | 1 -
>>   src/gallium/drivers/svga/svga_pipe_rasterizer.c | 1 -
>>   src/gallium/drivers/svga/svga_state_rss.c       | 2 +-
>>   3 files changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/src/gallium/drivers/svga/svga_context.h
>> b/src/gallium/drivers/svga/svga_context.h
>> index e8575f3..3f8d437 100644
>> --- a/src/gallium/drivers/svga/svga_context.h
>> +++ b/src/gallium/drivers/svga/svga_context.h
>> @@ -138,7 +138,6 @@ struct svga_rasterizer_state {
>>      unsigned scissortestenable:1;
>>      unsigned multisampleantialias:1;
>>      unsigned antialiasedlineenable:1;
>> -   unsigned lastpixel:1;
>>      unsigned pointsprite:1;
>>      unsigned linepattern;
>> diff --git a/src/gallium/drivers/svga/svga_pipe_rasterizer.c
>> b/src/gallium/drivers/svga/svga_pipe_rasterizer.c
>> index a7aadac..12e93d7 100644
>> --- a/src/gallium/drivers/svga/svga_pipe_rasterizer.c
>> +++ b/src/gallium/drivers/svga/svga_pipe_rasterizer.c
>> @@ -182,7 +182,6 @@ svga_create_rasterizer_state(struct pipe_context
>> *pipe,
>>      rast->scissortestenable = templ->scissor;
>>      rast->multisampleantialias = templ->multisample;
>>      rast->antialiasedlineenable = templ->line_smooth;
>> -   rast->lastpixel = templ->line_last_pixel;
>>      rast->pointsprite = templ->sprite_coord_enable != 0x0;
>>      if (templ->point_smooth) {
>> diff --git a/src/gallium/drivers/svga/svga_state_rss.c
>> b/src/gallium/drivers/svga/svga_state_rss.c
>> index d43894d..56c5d42 100644
>> --- a/src/gallium/drivers/svga/svga_state_rss.c
>> +++ b/src/gallium/drivers/svga/svga_state_rss.c
>> @@ -224,7 +224,7 @@ emit_rss_vgpu9(struct svga_context *svga, unsigned
>> dirty)
>>         EMIT_RS( svga, cullmode, CULLMODE, fail );
>>         EMIT_RS( svga, curr->scissortestenable, SCISSORTESTENABLE,
>> fail );
>>         EMIT_RS( svga, curr->multisampleantialias,
>> MULTISAMPLEANTIALIAS, fail );
>> -      EMIT_RS( svga, curr->lastpixel, LASTPIXEL, fail );
>> +      EMIT_RS( svga, FALSE, LASTPIXEL, fail );
>>         EMIT_RS_FLOAT( svga, curr->pointsize, POINTSIZE, fail );
>>         EMIT_RS_FLOAT( svga, point_size_min, POINTSIZEMIN, fail );
>>         EMIT_RS_FLOAT( svga, screen->maxPointSize, POINTSIZEMAX, fail );
>



More information about the mesa-dev mailing list