On Sun, Aug 9, 2009 at 3:51 PM, Roderick Colenbranderthunderbird2k@gmail.com wrote:
Hi,
As of Wine 1.1.27, XShm support was added for the creation of DIBSECTIONs in winex11.drv. The use of XShm more closely matches to the Windows behavior and can also bring more performance.
An Nvidia developer noticed this change in the ChangeLog and we both wondered why even more XShm code was added in this time because XShm has lost its use due to the emergence of EXA-like display drivers. Modern drivers disable a large amount of hardware acceleration when using XShm because they can't create the pixmaps in video memory since the client owns the memory. This could decrease performance quite a bit for most applications if they aren't hit by dibsection back-and-forth copying bottlenecks. XRender for instance falls back to software rendering for non-video memory based pixmaps.
I would perhaps suggest that we should perhaps drop XShm support (or at least add a registry key for it and disable it perhaps on 'modern drivers'). What do you guys think?
So, it hurts performance on applications that are running on modern drivers without using DIB sections, but helps for applications using DIB sections, or non-modern drivers?
Should probably disable by default and enable optionally with a registry key. The few that need it then have it available, without hurting the majority.