Bug 4594 - Legacy swrast removed in latest version of mesa in preference of llvmpipe
Summary: Legacy swrast removed in latest version of mesa in preference of llvmpipe
Status: NEW
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: VNC (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: LowPrio
Assignee: Pierre Ossman
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-04-15 12:42 CEST by Pierre Ossman
Modified: 2024-06-07 13:57 CEST (History)
1 user (show)

See Also:
Acceptance Criteria:


Attachments

Description Pierre Ossman cendio 2013-04-15 12:42:34 CEST
Currently we use the older classical swrast driver in our packaging. The rest of the world uses the llvmpipe driver though, so we should consider switching.

Note that this only affects programs that do indirect rendering. Most systems will do direct rendering, which uses the system's driver (whatever that may be).
Comment 1 Pierre Ossman cendio 2021-10-13 14:10:52 CEST
Also note that indirect rendering has been disabled by default since 4.10.0 and so far we haven't had any support issues asking how to re-enable it. So long term it might be easier to completely remove indirect rendering support.
Comment 2 William Sjöblom cendio 2021-10-14 11:27:58 CEST
Note that mesa has dropped support for the legacy swrast in version 21.0 and that we are now required to either transition to llvmpipe or drop support for indirect rending entirely. Thus, this bug blocks a future upgrade of mesa.
Comment 4 Pierre Ossman cendio 2021-12-23 13:00:05 CET
(In reply to Pierre Ossman from comment #1)
> Also note that indirect rendering has been disabled by default since 4.10.0
> and so far we haven't had any support issues asking how to re-enable it. So
> long term it might be easier to completely remove indirect rendering support.

TurboVNC has completely stripped out indirect rendering from their server in their 3.0.0 release.
Comment 5 Pierre Ossman cendio 2024-06-07 13:50:52 CEST
That was apparently a bit of an exaggeration. TurboVNC has simply forced indirect rendering permanently off. The rest of the GLX code is just as before, which means it likely still requires swrast or llvmpipe to function.
Comment 6 Pierre Ossman cendio 2024-06-07 13:57:05 CEST
For some odd reason, direct rendering still requires GLX support in the X server. I don't really understand why, as the application will render everything on its end, and upload the result using a normal PutImage request. I see no need for any GLX support for that.

After experimenting, what's needed are GLX visuals and fbconfigs that match what the direct rendering driver supports, and the visuals in the X server. Perhaps Mesa is too lazy to do this mapping itself and assumes it will be available from the X server, and that's why it requires GLX?

Prototype of this available here:

https://github.com/CendioOssman/tigervnc/tree/nodri

Only tested with glxinfo and glxgears. More fbconfigs might be needed, as the list is way shorter than the one swrast provides.

Note that it gets higher priority than the original swrast provider, which might not be what we want. At least not if we want to upstream things. Ideally, it tries the swrast approach first, falling back to this dummy driver if that fails.

Upstream in this case might be Xorg, rather than TigerVNC.

Note You need to log in before you can comment on or make changes to this bug.