Originally posted by mdedetrich
View Post
Thing to remember they were able to prune the list of reasons why implicit sync is required. The show stopper is legacy application support and that cannot be removed.
Originally posted by mdedetrich
View Post
The way Nvidia has implemented their explicit sync does technically allow faster but it also does force polling of status. AMD and Intel and arm and Nvidia embedded you can put the explicit sync status in the shared memory between the GPU and CPU for those that you are need implicit sync so you are not having to poll the card so not having massive overhead.
Nvidia desktop driver has a issue at the lower level. Yes more of the Linux graphics stack will over time come explicit sync but implicit sync will stay their for legacy applications. You see it in KDE where the Nvidia developer hit somewhere that was code implicit sync and the stuff just does not work and it was lets recode this section to explicit sync ignoring applications exist built prior that expect implicit.
Remember you said Linux had the Unix model everything is a file. Even explicit is transferred around by files. Also remember you said this came from Unix
Something else key. Glamor is legacy code. Glamor starts developing in the 1990s as opengl backend to X11 server back then opengl only had implicit sync. That is not your coffin digger. Glamor is implementation X11 2D drawing to specification this is the 1980s and before so from the Unix world and only designed with implicit sync.
mdedetrich remember Nvidia says you do implicit sync on their hardware with the way they have done explicit sync it either going to perform badly or the opengl functions that are implicit sync will not be there so your application will not run at all. Yes there are a lot of legacy parts that are still in Linux installs today that are like Glamor where what they implement was set in stone before the first line of the Linux kernel was written.
Like it or not we have a rock and hard place. If nvidia is not going to recode their driver we still need a decently performing implicit sync done in userspace for the legacy programs that include glamor and all application using old X11 2D rendering and early opengl applications and early egl applications because all of them mandate implicit sync. Yes the 30%+ growing over head to do implicit sync on Nvidia hardware is kind of a problem do note AMD, Intel, Arm... all do not have this problem their driver have a large amount explicit sync yet when you do implicit sync on top it you have at worst a 5% overhead at best zero overhead.
The fact that some cases of implicit sync with AMD and Intel implementations have zero overhead and then Nvidia says that that area is a performance problem has kind of got them ignored as well. This NIH(Not Invented Here) Nvidia goes and makes arguments only based on their hardware they don't go and check if the problem is unique to their hardware.
Legacy application support is one of the reasons why Apple dropped Nvidia. The Nvidia point of view that performance no matter the cost is not compatible with those making operating systems attempting to run legacy applications. Nvidia point of view that their implementation is always right so not having to consider what the platform maker need is also what lost them different console contracts.
It is possible that Nvidia has make a mistake at silicon level causing this problem. I would really suspect Nvidia make a mistake a silicon level for how they have implemented explicit sync since Intel, Amd, arm... hardware explicit sync when you implement implicit sync on top of does not have massive overhead something is unique to what Nvidia has done. And it is possible that if this is a silicon fault this could mean for legacy applications you need Intel/AMD graphics because Nvidia silicon is just not suitable.
Comment