-
Notifications
You must be signed in to change notification settings - Fork 60
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
Optimus hardware + latest from git => segfault #71
Comments
That's a very odd error, which shouldn't happen unless the compiler didn't build the driver correctly. Did you have any CFLAGS set while building it? |
Nope.
|
Can you send me the nvidia_drv_video.so binary that the build produced? It seems it somehow missing a critical section of the executable that's needed for it to work. |
VA-API 1.10 might be too old? |
Bingo. After upgrading to libva-dev to 2.14.0-1 it looks much better now.
I guess it's now to check acceleration :) |
Nope.
Does this log help somehow? |
Firefox 99 has a separate issue that's preventing it from working at the moment. You'll need to try FF98 or one of the FF100 nightlies. |
Honestly, I'm surprised that was the issue. I can't see any changes to libva between 2.10 (1.10 is the API version, not the release version number) and 2.14 that would cause that sort of issue, which amounts to it failing to load/initialise the executable correctly. |
98 was removed from Debian repos and nightly does not work either :( |
Hm. |
Are you starting firefox with |
Nope. But enabling it for FF98 makes no difference. |
Ok, it seems you're missing a bunch of the Firefox config options that are in the README (media.ffmpeg.vaapi.enabled, etc...), set those, restart Firefox and try again. |
Hm. Could you check my log again? |
EGL isn't enabled, ensure that |
Can you paste the output of |
Name: Firefox Crash Reports for the Last 3 DaysFirefox FeaturesName: DoH Roll-Out Name: Firefox Screenshots Name: Form Autofill Name: Picture-In-Picture Name: Web Compatibility Interventions Name: WebCompat Reporter Remote Featuresbug-1759000-rollout-initial-rollout-of-tcp-release-91-99: active Remote ProcessesType: Privileged About Type: Extension Type: Preallocated Add-onsName: Add-ons Search Detection Name: Amazon.com Name: Bing Name: DuckDuckGo Name: Google Name: Wikipedia (en) GraphicsFeatures Diagnostics Failure Log MediaAudio Backend: pulse-rust Enumerate database Environment VariablesMOZ_DISABLE_RDD_SANDBOX: 1 Experimental Featuresabout:home startup cache (browser.startup.homepage.abouthome_cache.enabled): false Remote ExperimentsImportant Modified Preferencesbrowser.contentblocking.category: standard Important Locked Preferencesfission.autostart.session: true Places DatabaseAccessibilityActivated: false Library VersionsNSPR NSS NSSSMIME NSSSSL NSSUTIL SandboxSeccomp-BPF (System Call Filtering): true Rejected System CallsStartup CacheDisk Cache Path: /home/denis/.cache/mozilla/firefox/6fgtt95t.default-release-3/startupCache/startupCache.8.little Internationalization & LocalizationApplication Settings Remote Debugging (Chromium Protocol)Accepting Connections: false PrintingModified print settings |
Looks like Firefox has given up trying to initialise the hardware and is falling back to software for everything. You can try removing the I'm assuming you've got Xorg running on your Intel card. Trying to get FF to initialise the correct card is a bit tricky. I'll have a play around with it on my other setup tomorrow to see if I can come up with a working solution. |
I tried deleting every blacklist items and restart, but it does help acceleration and just recreated those blacklist records again. As for hybrid graphics:
|
I've spent a while trying to get my Optimus machine to work correctly when running on the Intel GPU, but there doesn't seem to be a way to do it. I'm not quite sure what the root cause of the issue is, but it seems Firefox gets confused when there's multiple EGL implementations available. It's possible that using this option |
I have 460.91.03-1 nvidia-driver.
However, FF98 just emits:
... and acceleration still does not work. |
That's quite an old driver series. With a 1650 card you can use the 510 series, which may work better especially with Firefox which really wants GBM. |
Aha. |
Making the `NVCodec` structs maximally aligned was an erroneous move because the gcc may increase the alignment which can lead to undesirable behaviour (e.g. elFarto#71). In the aforementioned case the size of the struct was 496 bytes, which was properly aligned to the maximum alignment (`__BIGGEST_ALIGNMENT__`) on the platform (16 bytes - x86-64), but gcc chose to align the objects at a 32 byte boundary, which resulted in 16 bytes of padding between each element that was not accound for at runtime. Specifying the alignment on the object itself and not the type prevents gcc from increasing the alignment. See: https://lore.kernel.org/lkml/[email protected]/ Fixes: 73ddb63 ("vabackend: make NVCodec struct aligned")
Making the `NVCodec` structs maximally aligned was an erroneous move because the gcc may increase the alignment which can lead to undesirable behaviour (e.g. elFarto#71). In the aforementioned case the size of the struct was 496 bytes, which was properly aligned to the maximum alignment (`__BIGGEST_ALIGNMENT__`) on the platform (16 bytes - x86-64), but gcc chose to align the objects at a 32 byte boundary, which resulted in 16 bytes of padding between each element that was not accounted for at runtime. Specifying the alignment on the object itself and not the type prevents gcc from increasing the alignment. See: https://lore.kernel.org/lkml/[email protected]/ Fixes: 73ddb63 ("vabackend: make NVCodec struct aligned")
Sorry everyone, I am responsible for the initial segmentation fault. In libva 2.10.0, cudaVideoCodec cvc = c->computeCudaCodec(profile); jumped to a NULL pointer (most likely because the padding was all zeros) as can be seen in the initial stack trace. Funnily, I have created #67 in order to solve exactly this kind of problem, but it was the wrong approach. |
Ok, for some reason I was thinking that the whole section was missing/null, but just being off by a few bytes would also explain the null pointer. |
Hi
I am trying to start vainfo, but it segfaults.
See log below.
My variables:
Hardware:
Any help?
The text was updated successfully, but these errors were encountered: