Originally posted by Hi-Angel
View Post
Announcement
Collapse
No announcement yet.
Open-Source Nouveau Linux 4.10 + NvBoost vs. NVIDIA Proprietary Linux Driver Performance
Collapse
X
-
Originally posted by DMJC View PostImirkin: What are the holdups on the 7** series hitting the same performance as the binaries? Do we actually have information on that now? Aside from re-clocking, are there other areas of the codebase which need improvement and what level of difficulty is this to work on? What sort of things can be done to improve the performance on the cards which do have working reclocking?
(a) ZCULL (similar to HiZ) - not implemented on nouveau. This requires figuring out how to configure all the ZCULL stuff, and working out when it has to be invalidated, etc., and then teaching nouveau about it. We've been sliding by on some of these things as a result of not using ZCULL, so I suspect this will be an involved project.
(b) Instruction scheduling - not implemented on nouveau - this could be huge, as the default schedule sucks. However this is very complicated as a successful strategy will also have to account for register pressure.
(c) General compiler improvements - nouveau's compiler is pretty good, but it's not exactly gcc in terms of sophistication. Most of the time I don't see any obvious optimizations in shaders, but every so often things pop up. If they're easy, I implement the opt, otherwise I let it be. One could take a few AAA games and see what they do and try to optimize those extensively. This would likely yield improvements all over the place.
(d) Chip tuning. These chips have tons and tons of various tuning settings. We barely know what they do, much less how to tune them. No clue how big of a difference it can make though.
None of these are particularly easy, but except for the last one, should all be achievable with sufficient dedication. However there aren't exactly a lot of qualified people who are looking to work on this stuff, so it sits idle. I'm sure there are other ways to improve things as well, esp around buffer management/movement, but that's even less clear in my mind as to what the "task" is.
- Likes 2
Comment
-
Originally posted by imirkin View Post
So, before providing a list, you have to realize that the NVIDIA proprietary driver has had literally thousands of man-years worth of development on it. Nouveau ... has not. And that's ignoring the various documentation access/hw access considerations. That said,
(a) ZCULL (similar to HiZ) - not implemented on nouveau. This requires figuring out how to configure all the ZCULL stuff, and working out when it has to be invalidated, etc., and then teaching nouveau about it. We've been sliding by on some of these things as a result of not using ZCULL, so I suspect this will be an involved project.
(b) Instruction scheduling - not implemented on nouveau - this could be huge, as the default schedule sucks. However this is very complicated as a successful strategy will also have to account for register pressure.
(c) General compiler improvements - nouveau's compiler is pretty good, but it's not exactly gcc in terms of sophistication. Most of the time I don't see any obvious optimizations in shaders, but every so often things pop up. If they're easy, I implement the opt, otherwise I let it be. One could take a few AAA games and see what they do and try to optimize those extensively. This would likely yield improvements all over the place.
(d) Chip tuning. These chips have tons and tons of various tuning settings. We barely know what they do, much less how to tune them. No clue how big of a difference it can make though.
None of these are particularly easy, but except for the last one, should all be achievable with sufficient dedication. However there aren't exactly a lot of qualified people who are looking to work on this stuff, so it sits idle. I'm sure there are other ways to improve things as well, esp around buffer management/movement, but that's even less clear in my mind as to what the "task" is.
Comment
-
Originally posted by Hi-Angel View Postb, c, and partially a doesn't sound especially GPU-specific, does it? Wasn't it already been done in the general Mesa codebase via various helper functions?
- Likes 2
Comment
-
Originally posted by MoonMoon View Post
And that is a good thing. Leaked code from Nvidia drivers would open up nouveau for all kinds of lawsuits if they have code that even very losely looks like anything in the leaked code. A developer that has looked at that leaked code will never again be able to work for nouveau.
"(15) The unauthorised reproduction, translation, adaptation or transformation of the form of the code in which a copy of a computer program has been made available constitutes an infringement of the exclusive rights of the author. Nevertheless, circumstances may exist when such a reproduction of the code and translation of its form are indispensable to obtain the necessary information to achieve the interoperability of an independently created program with other programs. It has therefore to be considered that, in these limited circumstances only, performance of the acts of reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the rightholder. An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together. Such an exception to the author's exclusive rights may not be used in a way which prejudices the legitimate interests of the rightholder or which conflicts with a normal exploitation of the program."
If someone wants to make a tool to hack nvidias firmware and binary drivers i am all for it and would join.
sidenote: this is about copyrights. if sold while infringing patents it is an entire different story...Last edited by cj.wijtmans; 09 January 2017, 11:04 AM.
Comment
-
Originally posted by cj.wijtmans View PostReverse engineering is protected by law in the EU though.
"(15) The unauthorised reproduction, translation, adaptation or transformation of the form of the code in which a copy of a computer program has been made available constitutes an infringement of the exclusive rights of the author. Nevertheless, circumstances may exist when such a reproduction of the code and translation of its form are indispensable to obtain the necessary information to achieve the interoperability of an independently created program with other programs. It has therefore to be considered that, in these limited circumstances only, performance of the acts of reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the rightholder. An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together. Such an exception to the author's exclusive rights may not be used in a way which prejudices the legitimate interests of the rightholder or which conflicts with a normal exploitation of the program."
If someone wants to make a tool to hack nvidias firmware and binary drivers i am all for it and would join.
OH!
alright, no more political jokes, lol
Comment
Comment