Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Windows 10/NVIDIA 425.31] NVENC Option GONE #2234

Closed
ghost opened this issue Dec 9, 2019 · 16 comments
Closed

[Windows 10/NVIDIA 425.31] NVENC Option GONE #2234

ghost opened this issue Dec 9, 2019 · 16 comments
Labels
Regression Regression from a previous version Request for Comments More feedback & discussion is requested Windows Affects Windows

Comments

@ghost
Copy link

ghost commented Dec 9, 2019

There is no NVENC Option on OBS versions 22 and above. Before the NVENC Update it was there and everyting would work perfectly. I tried replacing obs-ffmpeg.dll with older one it worked on version 23and now it wont.

The problem occured on WIndows 10 1806 and 1904. I tried upgrading and downgrading Nvidia drivers and it didn't work, I even tried reinstalling my Windows several times.

My graphics card is NVIDIA GT 740M and Intel HD Graphics 4000 Integrated.
CPU is Core i7 3537U.

The QuickSync option is the btw. I think it has something to do with obs-ffmpeg.dll. Note that there is an NVENC option for OBS versions below 22 for my system.

Expected Behavior

There should be NVENC decoder in settings

Current Behavior

The NVENC option isn't there but my system meets all requirements and it worked before the 22 update.

@Fenrirthviti
Copy link
Member

The issues page is not for support requests. Use the Discord or forums for assistance. We have not removed anything related to nvenc.

@RuediB
Copy link

RuediB commented Dec 7, 2020

The issues page is not for support requests. Use the Discord or forums for assistance. We have not removed anything related to nvenc.

@Fenrirthviti Sure you have! The GT 740M has been on the black list since v23. Although the 740M with the GK208 and GK107 chip set (all 3 on the blacklist) support NVENC - according to this table. The only restriction: you cannot use the quality control option "lossless". Logs and further information in this forum thread:

@RytoEX
Copy link
Member

RytoEX commented Dec 7, 2020

The issues page is not for support requests. Use the Discord or forums for assistance. We have not removed anything related to nvenc.

@Fenrirthviti Sure you have! The GT 740M has been on the black list since v23. Although the 740M with the GK208 and GK107 chip set (all 3 on the blacklist) support NVENC - according to this table. The only restriction: you cannot use the quality control option "lossless". Logs and further information in this forum thread:

What that table on Wikipedia shows is that a GPU with a proper GK107 or GK208 chipset would support NVENC. While this would be true for probably every single desktop GPU using those chipsets, the same can not be said of mobile GPUs. Mobile NVIDIA GPUs from the early generations were known in many cases to completely lack the NVENC hardware, which is why cards like the GT 740M are blacklisted. In our experience, it seemed more common that such mobile GPUs would not actually support NVENC and thus cause problems for our users who would try to select NVENC anyway. For what it's worth, the GT 740M is not listed on NVIDIA's Video Encode and Decode GPU Support Matrix.

@RuediB
Copy link

RuediB commented Dec 7, 2020

The issues page is not for support requests. Use the Discord or forums for assistance. We have not removed anything related to nvenc.

@Fenrirthviti Sure you have! The GT 740M has been on the black list since v23. Although the 740M with the GK208 and GK107 chip set (all 3 on the blacklist) support NVENC - according to this table. The only restriction: you cannot use the quality control option "lossless". Logs and further information in this forum thread:

What that table on Wikipedia shows is that a GPU with a proper GK107 or GK208 chipset would support NVENC. While this would be true for probably every single desktop GPU using those chipsets, the same can not be said of mobile GPUs. Mobile NVIDIA GPUs from the early generations were known in many cases to completely lack the NVENC hardware, which is why cards like the GT 740M are blacklisted. In our experience, it seemed more common that such mobile GPUs would not actually support NVENC and thus cause problems for our users who would try to select NVENC anyway. For what it's worth, the GT 740M is not listed on NVIDIA's Video Encode and Decode GPU Support Matrix.

I'm sure everything you say is right. But in the mentioned tread you have 2 examples that it works perfectly with the GT740M PCI ID 1292 both before and after v23. Do you need any more proof? Or will everything stay the same anyway so that it is easier for you but not for the users with this GPU?

@RuediB
Copy link

RuediB commented Dec 11, 2020

OK, no answer is the answer i expected 🤔

For what it's worth, the GT 740M is not listed on NVIDIA's Video Encode and Decode GPU Support Matrix.

Just for completeness, the GPU was on the list. But is no longer displayed because they are a bit older. In fact, no GPUs with Kepler architecture are displayed any more, although some of them are still supported by OBS.

Annotation 2020-04-14 145756

@Fenrirthviti
Copy link
Member

We are in the middle of preparing for a release, please show some patience. I'll reopen this for now so we can review the new information at a later date.

@Fenrirthviti Fenrirthviti reopened this Dec 11, 2020
@dodgepong
Copy link
Member

Can you post a screenshot of GPU-Z on your computer?

@RuediB
Copy link

RuediB commented Dec 11, 2020

@dodgepong
GPU-Z-GT-740M

@Fenrirthviti
I have no problem showing patience, I've built my own working version. But I have a problem with condescending responses without checking my evidence (I don't mean you). I made the effort for myself and wanted others to be able to benefit from it too, as I came to the conclusion in my research based on several reports that some users would be happy about a solution to this problem. That's part of the idea of open source, in my opinion. Thank you for taking care of this, if you need further information I am at your disposal.

@PatTheMav PatTheMav added Regression Regression from a previous version Request for Comments More feedback & discussion is requested Windows Affects Windows labels Dec 31, 2020
@PatTheMav
Copy link
Member

My main question about this would be if re-enabling the 740M is without any side-effects - mainly if there are encoder options exposed by OBS right now that will not work on Kepler-based cards and thus would not only require removing them from the blacklist but also add additional logic to the UI.

If this is the case, removing the cards from the blacklist would also lead to additional dev and support effort that we'd have to weigh against fixing this.

@RuediB
Copy link

RuediB commented Feb 22, 2021

My main question about this would be if re-enabling the 740M is without any side-effects - mainly if there are encoder options exposed by OBS right now that will not work on Kepler-based cards and thus would not only require removing them from the blacklist but also add additional logic to the UI.

If this is the case, removing the cards from the blacklist would also lead to additional dev and support effort that we'd have to weigh against fixing this.

From my point of view the only function that is not supported is the quality regulation method: lossless. An error message comes up, this also corresponds to the table above.
My stream setup is up and running and I'm very happy with the quality in 720p60. You can find a current log here:
https://obsproject.com/logs/1q5mmnn0gswDMU0E
My CPU load is between 10 and 20%, skipped frames are usually below 0.1%.
Toshiba Satellite L70-A-13C Intel Core i7-4700MQ, 16GB RAM
If you need more data or if I should test something specific, I would like to do that and make the data available to you.

PS .: for the lossless option, in my opinion, it would be enough to display a warning that this is not supported.

@RuediB
Copy link

RuediB commented Apr 22, 2021

any progress here?

@Fenrirthviti
Copy link
Member

Not sure what you mean by progress, it's unlikely we're going to add custom support for blocking unsupported modes for a very specific and old mobile GPU that NVIDIA themselves doesn't seem to support. If you want to enable support, you can modify the blacklist here:

static const int blacklisted_adapters[] = {
0x1298, // GK208M [GeForce GT 720M]
0x1140, // GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M]
0x1293, // GK208M [GeForce GT 730M]
0x1290, // GK208M [GeForce GT 730M]
0x0fe1, // GK107M [GeForce GT 730M]
0x0fdf, // GK107M [GeForce GT 740M]
0x1294, // GK208M [GeForce GT 740M]
0x1292, // GK208M [GeForce GT 740M]
0x0fe2, // GK107M [GeForce GT 745M]
0x0fe3, // GK107M [GeForce GT 745M]
0x1140, // GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M]
0x0fed, // GK107M [GeForce 820M]
0x1340, // GM108M [GeForce 830M]
0x1393, // GM107M [GeForce 840M]
0x1341, // GM108M [GeForce 840M]
0x1398, // GM107M [GeForce 845M]
0x1390, // GM107M [GeForce 845M]
0x1344, // GM108M [GeForce 845M]
0x1299, // GK208BM [GeForce 920M]
0x134f, // GM108M [GeForce 920MX]
0x134e, // GM108M [GeForce 930MX]
0x1349, // GM108M [GeForce 930M]
0x1346, // GM108M [GeForce 930M]
0x179c, // GM107 [GeForce 940MX]
0x139c, // GM107M [GeForce 940M]
0x1347, // GM108M [GeForce 940M]
0x134d, // GM108M [GeForce 940MX]
0x134b, // GM108M [GeForce 940MX]
0x1399, // GM107M [GeForce 945M]
0x1348, // GM108M [GeForce 945M / 945A]
0x1d01, // GP108 [GeForce GT 1030]
0x0fc5, // GK107 [GeForce GT 1030]
0x174e, // GM108M [GeForce MX110]
0x174d, // GM108M [GeForce MX130]
0x1d10, // GP108M [GeForce MX150]
0x1d12, // GP108M [GeForce MX150]
0x1d11, // GP108M [GeForce MX230]
0x1d13, // GP108M [GeForce MX250]
0x1d52, // GP108BM [GeForce MX250]
0x1c94, // GP107 [GeForce MX350]
0x137b, // GM108GLM [Quadro M520 Mobile]
0x1d33, // GP108GLM [Quadro P500 Mobile]
0x137a, // GM108GLM [Quadro K620M / Quadro M500M]

And then compile yourself if you're comfortable with the limitations/potential for crashing/error. Link to the build directions.

@RuediB
Copy link

RuediB commented Apr 25, 2021

@Fenrirthviti
Thank you for your answer. I imagine you are just too busy for that but ... If you had read the whole thread and the external hints, you would know that your comment is useless. I'm already compiling my own version, and it still works just as well as it did before the blacklist (release <v23) without crashing / error. Here is a current log: https://obsproject.com/logs/a_wIlN1HykUBlULQ
As I noted earlier, the only limitation is the lossless option, but who wants that?
Still, thanks for the great software and all the work behind it.

@RuediB
Copy link

RuediB commented Apr 27, 2021

Please don't get me wrong, I understand the reason it is not enough to remove these GPUs from the blacklist. And using development resources for such old GPUs even though it only helps a very small percentage of people doesn't make sense either. Not to mention all those who need support because it doesn't work on their GPU with whatever settings. Originally I just wanted to point out that the GT 740M may have incorrectly landed on the blacklist. I was able to solve the problem for myself, but during my research I came across some people who are currently still happy about a solution.
I have one last idea and then I'll be silent:
Perhaps it would be possible to create a version without a blacklist for each main release and then "hide" it in the release archive. Of course, with the clear indication that this version is not supported and is only used for test purposes.
If that doesn't work or no one has another idea, it's probably better to close this Issue again. And sorry for bothering you.

@energizerfellow
Copy link

Is there any technical reason we can't have a "Disable NVENC on unsupported GPUs" that's default-enable buried deep in OBS's advanced settings panel?

@PatTheMav
Copy link
Member

There is no such thing as "hidden" or "buried deep in the settings", as it will end up on Discord, on the forums, in some "LOL you guys found some secret OBS setting" Youtube video and people will enable it, without fully understanding what it does and in the end it is the maintainers that will have to work with the inevitable requests to "fix" it (usually without full technical info, which we have to request and usually don't get) which takes time away from working on things that could benefit a vastly bigger user base.

I get why this state of affairs might be frustrating but as you correctly pointed out we need to draw a line in the sand somewhere as we just cannot support all configurations and need to deprecate things at some point. But that's also why OBS is open-source - you're always free to fork the project, adapt the changes you need and merge upstream changes when they come in. With Github you even get the benefit of GitHub Actions doing the compilation for you so you just have to download the artifact to use.

@kolya25 kolya25 mentioned this issue Nov 25, 2023
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Regression Regression from a previous version Request for Comments More feedback & discussion is requested Windows Affects Windows
Projects
None yet
Development

No branches or pull requests

6 participants