[Mesa-dev] RFC: Prune stale components

Jose Fonseca jfonseca at vmware.com
Tue Mar 3 04:31:40 PST 2015


On 27/02/15 15:16, Jose Fonseca wrote:
> As we're gaining momentum cleanup Mesa code, I think it would help if we
> also removed some stale components.
>
> What do people feel about removing:
>
> - src/mesa/drivers/windows/gdi -- the old SW rasterizer for Windows -- I
> haven't used in a very long time, and given that the old SW rasterizer
> is so far behind compared gallium based softpipe/llvmpipe rasterizers,
> it's hard to imagine this will ever be useful again
>
> - src/gallium/drivers/rbug: -- do people use it? does it work?  it
> predates apitrace GL + GUI, which sort of enables a lot of the same
> things, but without the issue of having to hit moving target, which is
> what gallium interfaces are
>
> - src/gallium/state_trackers/vega/,src/mapi/vgapi/ -- OpenVG API seems
> to have dwindled away. I recall Zack himself saying that much. The code
> would still be interesting if we wanted to implement NV_path_rendering
> [1], but given the trend of the next gen graphics APIs, it seems
> unlikely that this becomes ARB or core.
>
> - src/gallium/state_trackers/egl/ -- yeah, I know I was against it, but
> since then I discovered WGL/GLX_EXT_create_context_es_profile, and the
> odds of us (VMware) needing this again are dimmer than last time, so I
> have to admit it does seem unlikely we or anybody will need it again,
> and we can always revert it from history..
>
>
> Anything else?

Thanks for all the replies.  So in summary, I'll post patches to remove:

- src/mesa/drivers/windows/gdi

- src/gallium/state_trackers/vega/,src/mapi/vgapi/

- src/gallium/state_trackers/egl/ plus whatever modules get orphaned as 
result of that


I'll try to do one component at a time (in case we want to revert), but 
if keeping things in a building state ends up being too tricky then I 
might squash them together.


Components that people explicitly showed interest in maintaining 
(therefore left alone) are:

- src/gallium/drivers/rbug/
- src/mesa/drivers/x11/
- src/mesa/drivers/osmesa/


Things that haven't been mentioned but might be considering for a 2nd 
round are:

- src/gallium/drivers/noop

   Do people use it?

- src/gallium/drivers/galahad/

   Again, this also tends to get broken.  Architecturally it's the right 
thing to do, but I ended up giving up on enabling it, as it causes 
crashes.  If nobody uses it, might as well face reality here.


As I said, layered drivers are nice conceptually, but there are serious 
challenges with them in practice:
   - the gallium interface is always changing, so they do get broken 
easily, particularly when they are not frequently used (ie, enabled by 
default)
   - some state trackers have private interfaces with pipe drivers, 
making it impossible to use layered drivers.

In other words, we have to make a good analysis which layered drivers 
are or not worth maintaining, and make a effort to keep those that are 
deem to be useful in running condition.  Because keeping them around 
half-heartedly is the worse outcome: time is spent maintaining them, but 
they are never good enough to be useful/trusted...


Jose


More information about the mesa-dev mailing list