Is it legal to discover new Nvidia registry entries using reverse engineering #638
-
Hello, I'm a learning PC tweaker and in a few weeks will be divoding my time for 2 years to learning more about computers. I have understood that reverse engineering is legal dependent on use case , terms of service and license. I have came across Savitarax's video on modifying the Nvidia registry in his video he gives a few links to open source Nvidia kernel links , he also gives a guide explaining the kernel and a long list of traced Nvidia kernel entrys. There are many kernel entrys I'm curious of discovering dwords for the located registries. Savitarax encourages people to discover more values. I have read the MIT license found in Nvidias various GitHub kernel pages. The license doesn't specify discovering new registries that are not found in areas of registrys in the GitHub links. As it states it is free to modify, etc does this mean I can find new registrys and make discoverys. I am 14 so I do not fully understand what the agreement fully allows by the reason but I am learning day by day on the subject of licenses. Here are all the links I've found https://lists.freedesktop.org/archives/nouveau/2013-December/015328.html time cards traced dwordshttps://github.com/NVIDIA/open-gpu-kernel-modules/blob/main/src/nvidia/interface/nvrm_registry.h https://github.com/NVIDIA/open-gpu-kernel-modules?tab=readme-ov-file |
Beta Was this translation helpful? Give feedback.
Replies: 26 comments 57 replies
-
Here's Savitarax's YouTube video : https://youtu.be/K2TO7SJfYwE?si=agciAnPZ4boLjtm8 |
Beta Was this translation helpful? Give feedback.
-
Yes it is legal |
Beta Was this translation helpful? Give feedback.
-
Thank you, wait so I can even find new windows tweaks in the registry! |
Beta Was this translation helpful? Give feedback.
-
Assuming same terms for 10 too |
Beta Was this translation helpful? Give feedback.
-
Thank you so much @qbers0 |
Beta Was this translation helpful? Give feedback.
-
This thread is all over the place and there's a lot of confusion going on. The Nvidia driver registry is not related to the Windows registry. Yes, technically on Windows, the Nvidia driver stores its registry key/value pairs in the Windows registry database, but that's a technicality. The Nvidia driver registry exists on Linux, where there is obviously no Windows registry. On Linux, the Nvidia driver registry is initialized with hard-coded values in the driver source code, as well as any additional items specified on the driver command line. Please also note that Nouveau now supports setting Nvidia driver registry entries on the command line also. These registry entries are passed to GSP-RM as-is, without any checking. So you can use Nouveau to "discover" new registry keys that way. |
Beta Was this translation helpful? Give feedback.
-
This is what I mostly mean , but I also want to change nvddklmm |
Beta Was this translation helpful? Give feedback.
-
I don't know why people keep talking about Windows. Th open-gpu-kernel-module driver exists only on Linux. As for legality, I cannot comment on that, but in general, reverse-engineering closed-source code (which the Windows driver is) is almost always not allowed by the software license. But I can tell you that you're not going to get very far trying to reverse engineer the Nvidia registry keys. 99% of the keys are interpreted by only by GSP-RM, which is the closed-source binary. You can get a list of keys by doing this:
But that will only tell you the names of the keys, not what they do. In addition, some of the keys are "secret", which means they are only of the form "RM[0-9]*". You can try playing with the other keys by setting them to random values (many of them are just switches, so they are either =0 or =1), but it would be black-box reverse engineering. And 99% of the time you wouldn't notice what they do. But then what? The ones that are not secret are almost all documented somewhere (e.g. https://docs.nvidia.com/networking/display/winof2v31052010lts/configuring+the+driver+registry+keys#src-132450587_ConfiguringtheDriverRegistryKeys-BasicRegistryKeys). And most of the rest are intended to enable some obscure work-around for some broken obscure hardware and/or BIOS, often for a GPU that Nvidia doesn't sell any more. So you're going to do a significant amount of work and you will learn almost nothing from it. If you really want to spend two years learning about computers, there are much smarter things to learn, like how to write GPU drivers in Linux. Or you can learn Rust and help review/enhance the new Nova Linux driver for Nvidia GPUs. Seriously, reverse engineering the driver's registry keys is colossal waste of time. I actually have access to the driver's source code, and I can look up what all of these keys do. This is how I was able to add registry key support to Nouveau. But you know what? It's probably the most boring part of our driver, and certainly the most boring part of any GPU driver. |
Beta Was this translation helpful? Give feedback.
-
I'm not spending 2 years on the driver , I'm spending 2 years learning about more PC tweaking, I'm going to read windows internals 7th edition, powershell books , lots of coding books , etc. I'm going to be learning a lot. Not sure if your a little mixed up but based on a vid it only takes minutes he used process monitor. He then did some math and got a result , is this legal? |
Beta Was this translation helpful? Give feedback.
-
Learning about PC tweaking is a long journey and I think reading these books are a great start , I'm not sure if you thought I was just spending all my time with just drivers but I think this is worth it. |
Beta Was this translation helpful? Give feedback.
-
I am learning rust but for a different reason |
Beta Was this translation helpful? Give feedback.
-
My main goal is to help people improve computing, including optimizing behaviors, etc with proper testing, I specifically want to test disabling power gatting and power savers for now. My goal is to improve without raising power consumption but I want to make something for advanced users. |
Beta Was this translation helpful? Give feedback.
-
If this doesn't exist on windows how were these traced : https://github.com/djdallmann/GamingPCSetup/blob/b3e1c835ce9e6ab1ed7c93b34360f2435f22a497/CONTENT/RESEARCH/FINDINGS/registrykeys_displayadapter_class_4d36e968-e325-11ce-bfc1-08002be10318.txt#L233 |
Beta Was this translation helpful? Give feedback.
-
I'm a little confused |
Beta Was this translation helpful? Give feedback.
-
As an Nvidia employee, I can't tell you what is or isn't legal. But it doesn't matter, because you can't trust anything that anyone else says here either. What if some random person were to tell you, "Sure, it's legal" and it turns out that he's wrong, or lying, or confused about what you're talking about? Then you might get in trouble. But you're missing my point. There are a million things you can study over the next two years. If you're not sure whether something in particular is legal, then learn something else! "Reverse engineering" the Nvidia driver is a huge waste of your time. You will do a lot of work and learn nothing of value. If you want to learn how GPU drivers work, there are many fully open source drivers in the Linux kernel that you can study instead. |
Beta Was this translation helpful? Give feedback.
-
I can tell you right now that you are not going to improve performance by playing with registry keys. |
Beta Was this translation helpful? Give feedback.
-
Ok kid, I tried, but you're not listening to me, so I'm out. Good luck, and try not to blow up your GPU. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the tip by the way , I guess I can learn Linux , but with a primary focus of windows, I will need some time for Linux learning too. |
Beta Was this translation helpful? Give feedback.
-
Thanks for the help,I will comeback at the very end. So I think how I'm going to do it is start with stuff I'm sure on, read lots of books on windows, coding, etc then at the very end I will come to windows findings and Nvidia, I will probably not even do that Nvidia if you are correct, as I'm going to read about archeture, and a lot about how machines behave. I heard power gatting isn't suppost to affect performance at all as it turns off devices only when they are not even being used but Billi0n I guess as some reason or something for disabling it , mabye it adds latency when switching back and forth from on and off ? Im not truly sure. I don't want to ignore your help or opinions, so do you have any insight on the power gatting behavior. |
Beta Was this translation helpful? Give feedback.
-
I'm also going to end here
No lawyer works for free, so if you're asking on the internet, you're not going to get better answers than people reading licenses and trying to use common sense. I think it's legal, but I'm not a lawyer and could very well be wrong (and I should have noted that earlier) Also as much as I want to help you I agree with @ttabi, that you're not gonna get much. These drivers are already optimized and they even overclock your GPU by default. Even these "debloated" Windows versions gain performance by straight up disabling features. Last thing - if you have questions regarding the Windows driver, I don't think that the Linux driver repo is the best place to ask them. Edit: you couldn't ask for a better timing https://www.phoronix.com/news/DRM-Misc-6.11-Nouveau-Intel-NPU |
Beta Was this translation helpful? Give feedback.
-
I have one last thing to say regarding the effect of driver registries. People have used an LDAT with Dynamic states and HDCP and note improvements using the Nvidia measuring tools. |
Beta Was this translation helpful? Give feedback.
-
Yeah I understand, what do you think of soldiering a mouse to a very
accurate testing tool.
…On Thu, Dec 12, 2024 at 7:44 AM Lawliet ***@***.***> wrote:
The problems are not visible, yet could cause latency penalties, I noticed
issues at 14 decimal (Mouse jumping, random clicking when moving the
mouse and teleporting) similar behavior to keyboard when changing the
buffer size. I'm trying to document it to fact or placebo it. For me
currently, it's a placebo and negative tweak, making it a bad option to
change and should only be fiddled with, when Windows suddenly tells you
that DataQueueSize overflowed
AdamX is using very basic adjustments and his source cannot be trusted, he
barely gives out much info regarding topics, I prefer more detailed ones or
very good visual demonstrations, which Alchemy does better, yet with less
knowledge of the tools he is using to measure the changes.
The goal here is = fact or fiction.
Who is it for? For the community in my discord server that doesn't want to
spend time researching something so little.
—
Reply to this email directly, view it on GitHub
<#638 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A3FLHMW353MDZPPNJF5MD2L2FGAKRAVCNFSM6AAAAABHIIXM5SVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCNJUGQYDSNQ>
.
You are receiving this because you were mentioned.Message ID:
<NVIDIA/open-gpu-kernel-modules/repo-discussions/638/comments/11544096@
github.com>
|
Beta Was this translation helpful? Give feedback.
-
clarification * for understanding the key use a tool that measures in micro
seconds, milliseconds might not pick up everything as mentioned earlier
look for tools with higher sample rates, and high khz sensors
On Thu, Dec 12, 2024 at 9:21 AM Shaked Aviv Knaany <
***@***.***> wrote:
… Yeah I understand, what do you think of soldiering a mouse to a very
accurate testing tool.
On Thu, Dec 12, 2024 at 7:44 AM Lawliet ***@***.***> wrote:
> The problems are not visible, yet could cause latency penalties, I
> noticed issues at 14 decimal (Mouse jumping, random clicking when moving
> the mouse and teleporting) similar behavior to keyboard when changing
> the buffer size. I'm trying to document it to fact or placebo it. For me
> currently, it's a placebo and negative tweak, making it a bad option to
> change and should only be fiddled with, when Windows suddenly tells you
> that DataQueueSize overflowed
>
> AdamX is using very basic adjustments and his source cannot be trusted,
> he barely gives out much info regarding topics, I prefer more detailed ones
> or very good visual demonstrations, which Alchemy does better, yet with
> less knowledge of the tools he is using to measure the changes.
>
> The goal here is = fact or fiction.
>
> Who is it for? For the community in my discord server that doesn't want
> to spend time researching something so little.
>
> —
> Reply to this email directly, view it on GitHub
> <#638 (reply in thread)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/A3FLHMW353MDZPPNJF5MD2L2FGAKRAVCNFSM6AAAAABHIIXM5SVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCNJUGQYDSNQ>
> .
> You are receiving this because you were mentioned.Message ID:
> <NVIDIA/open-gpu-kernel-modules/repo-discussions/638/comments/11544096@
> github.com>
>
|
Beta Was this translation helpful? Give feedback.
-
Yeah, just how it sounds currently you could have this as miscellaneous
like a section in your server at the lowest data size before data lose
occurs. Because in theory the lower it is the smaller the time it takes
even if it's an extremely small difference.
…On Thu, Dec 19, 2024, 1:42 PM Lawliet ***@***.***> wrote:
It shouldn't take long to completely debunk it, as it should be logically
foreseen to have a cause of dataloss when the buffers are lowered.
—
Reply to this email directly, view it on GitHub
<#638 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/A3FLHMQVAM4PEOAJVHJKNZ32GMHTDAVCNFSM6AAAAABHIIXM5SVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCNRSGA4DOOA>
.
You are receiving this because you were mentioned.Message ID:
<NVIDIA/open-gpu-kernel-modules/repo-discussions/638/comments/11620878@
github.com>
|
Beta Was this translation helpful? Give feedback.
-
What I said you probably shouldn't do I don't think I'd take a value
personally if I can't seem to find a different in measurement of any
latency type.
On Thu, Dec 19, 2024, 2:26 PM Shaked Aviv Knaany ***@***.***>
wrote:
… Yeah, just how it sounds currently you could have this as miscellaneous
like a section in your server at the lowest data size before data lose
occurs. Because in theory the lower it is the smaller the time it takes
even if it's an extremely small difference.
On Thu, Dec 19, 2024, 1:42 PM Lawliet ***@***.***> wrote:
> It shouldn't take long to completely debunk it, as it should be logically
> foreseen to have a cause of dataloss when the buffers are lowered.
>
> —
> Reply to this email directly, view it on GitHub
> <#638 (reply in thread)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/A3FLHMQVAM4PEOAJVHJKNZ32GMHTDAVCNFSM6AAAAABHIIXM5SVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTCNRSGA4DOOA>
> .
> You are receiving this because you were mentioned.Message ID:
> <NVIDIA/open-gpu-kernel-modules/repo-discussions/638/comments/11620878@
> github.com>
>
|
Beta Was this translation helpful? Give feedback.
As an Nvidia employee, I can't tell you what is or isn't legal. But it doesn't matter, because you can't trust anything that anyone else says here either. What if some random person were to tell you, "Sure, it's legal" and it turns out that he's wrong, or lying, or confused about what you're talking about? Then you might get in trouble.
But you're missing my point. There are a million things you can study over the next two years. If you're not sure whether something in particular is legal, then learn something else! "Reverse engineering" the Nvidia driver is a huge waste of your time. You will do a lot of work and learn nothing of value.
If you want to learn how GPU drivers work, there ar…