Closed Bug 1318083 Opened 8 years ago Closed 8 years ago

[Nightly] GPU video decoding prevents YouTube from playing HTML5 videos

Categories

(Core :: Audio/Video: Playback, defect)

53 Branch
x86_64
Windows 10
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla53
Tracking Status
firefox50 --- unaffected
firefox51 --- unaffected
firefox52 --- disabled
firefox53 + fixed

People

(Reporter: rhazorzor, Assigned: mattwoodrow)

References

Details

(Keywords: 64bit, nightly-community, regression, Whiteboard: platform-rel)

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0 Build ID: 20161019084923 Steps to reproduce: Enable Hardware Acceleration. Actual results: On Nightly if you have Hardware Acceleration enabled, YouTube videos (HTML5 player) won't play, it gives the TV static noise video with error message "An error occurred. Please try again later." But if you disable acceleration, then it works. But again, if you disable acceleration, the font rendering becomes messed up, the browser doesn't render correctly many major fonts like Arial or Verdana with acceleration off. So I need Hardware Acceleration setting ON. I have no addons installed. Expected results: Should play YouTube videos on HTML5 player with no problems. Not to mention it works fine on normal Firefox version (latest 50.0 as of now, but Nightly is 53)
OS: Unspecified → Windows 10
Hardware: Unspecified → x86_64
Component: Untriaged → Audio/Video: Playback
Product: Firefox → Core
how do you enable hardware acceleration ? Or how do you disable it for that matter?
Can you please use the mozregression tool to find out which version introduced the regression? https://mozilla.github.io/mozregression/ it's very simple to use.. Enter the version that works, and the one that doesn't.. post the result here.. it shouldn't take long
(In reply to Jean-Yves Avenard [:jya] from comment #1) > how do you enable hardware acceleration ? Or how do you disable it for that > matter? you go to settings Advanced -> General -> tick Use hardware acceleration when available
(In reply to Jean-Yves Avenard [:jya] from comment #2) > Can you please use the mozregression tool to find out which version > introduced the regression? > > https://mozilla.github.io/mozregression/ > > it's very simple to use.. Enter the version that works, and the one that > doesn't.. post the result here.. it shouldn't take long My installed nightly version is 53.0a1 and does not work and same 53.0a1 version on the mozregression does work. both with hardware acceleration setting on.
Looks like the same issue you mentioned earlier today on #developer
Flags: needinfo?(ryanvm)
(In reply to Jean-Yves Avenard [:jya] from comment #5) > Looks like the same issue you mentioned earlier today on #developer Must've been someone else with same problems, but I did mention that yesterday on #firefox and #nightly (nobody responded though) i never was on #developer
I've had at least three Nightly users report this same issue in #firefox. All of them reported that setting media.gpu-process-decoder to false and restarting the browser fixed the problem. So if that got enabled recently that looks like your culprit. I spoke with someone on Windows with Nightly for whom youtube did work fine, so it does not seem to be for everyone. Maybe just some GPUs. I got Graphics section info for 2 out of the 3 reporters: (the second was in Russian and kindly provided the JSON) ========================= Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0 ID:20161116030212 CSet: 79feeed4293336089590320a9f30a813fade8e3c Youtube fails unless media.hardware-video-decoding.enabled is set to false Graphics -------- Features Compositing: Direct3D 11 Asynchronous Pan/Zoom: wheel input enabled; touch input enabled WebGL Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GTX 970 Direct3D11 vs_5_0 ps_5_0) WebGL2 Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GTX 970 Direct3D11 vs_5_0 ps_5_0) Hardware H264 Decoding: Yes; Failed to create D3D11 device for decoder; Using D3D9 API Audio Backend: wasapi Direct2D: true DirectWrite: true (10.0.14393.351) GPU #1 Active: Yes Description: NVIDIA GeForce GTX 970 Vendor ID: 0x10de Device ID: 0x13c2 Driver Version: 21.21.13.7570 Driver Date: 10-25-2016 Drivers: C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_848dea456d3c865e\nvd3dumx,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_848dea456d3c865e\nvwgf2umx,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_848dea456d3c865e\nvwgf2umx,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_848dea456d3c865e\nvwgf2umx C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_848dea456d3c865e\nvd3dum,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_848dea456d3c865e\nvwgf2um,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_848dea456d3c865e\nvwgf2um,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_848dea456d3c865e\nvwgf2um Subsys ID: 39753842 RAM: 4096 Diagnostics ClearType Parameters: Gamma: 2.2 Pixel Structure: RGB ClearType Level: 0 Enhanced Contrast: 200 AzureCanvasAccelerated: 0 AzureCanvasBackend: skia AzureContentBackend: skia AzureFallbackCanvasBackend: cairo GPUProcessPid: 15612 GPUProcess: Terminate GPU Process ClearType Parameters: Gamma: 2.2 Pixel Structure: RGB ClearType Level: 0 Enhanced Contrast: 200 Decision Log D3D9_COMPOSITING: disabled by default: Disabled by default =========================================== "graphics": { "numTotalWindows": 1, "numAcceleratedWindows": 0, "windowLayerManagerType": "Basic", "windowLayerManagerRemote": true, "supportsHardwareH264": "No; Hardware video decoding disabled or blacklisted", "currentAudioBackend": "wasapi", "numAcceleratedWindowsMessage": [ "" ], "adapterDescription": "NVIDIA GeForce GTX 970", "adapterVendorID": "0x10de", "adapterDeviceID": "0x13c2", "adapterSubsysID": "113110de", "adapterRAM": "4096", "adapterDrivers": "C:\\WINDOWS\\System32\\DriverStore\\FileRepository\\nv_desktop_ref4i.inf_amd64_4e2b0b43129add43\\nvd3dumx,C:\\WINDOWS\\System32\\DriverStore\\FileRepository\\nv_desktop_ref4i.inf_amd64_4e2b0b43129add43\\nvwgf2umx,C:\\WINDOWS\\System32\\DriverStore\\FileRepository\\nv_desktop_ref4i.inf_amd64_4e2b0b43129add43\\nvwgf2umx,C:\\WINDOWS\\System32\\DriverStore\\FileRepository\\nv_desktop_ref4i.inf_amd64_4e2b0b43129add43\\nvwgf2umx C:\\WINDOWS\\System32\\DriverStore\\FileRepository\\nv_desktop_ref4i.inf_amd64_4e2b0b43129add43\\nvd3dum,C:\\WINDOWS\\System32\\DriverStore\\FileRepository\\nv_desktop_ref4i.inf_amd64_4e2b0b43129add43\\nvwgf2um,C:\\WINDOWS\\System32\\DriverStore\\FileRepository\\nv_desktop_ref4i.inf_amd64_4e2b0b43129add43\\nvwgf2um,C:\\WINDOWS\\System32\\DriverStore\\FileRepository\\nv_desktop_ref4i.inf_amd64_4e2b0b43129add43\\nvwgf2um", "driverVersion": "21.21.13.7586", "driverDate": "11-10-2016", "adapterDescription2": "", "adapterVendorID2": "", "adapterDeviceID2": "", "adapterSubsysID2": "", "adapterRAM2": "", "adapterDrivers2": "", "driverVersion2": "", "driverDate2": "", "isGPU2Active": false, "direct2DEnabled": false, "directWriteEnabled": true, "directWriteVersion": "10.0.14965.1001", "direct2DEnabledMessage": [ "" ], "webglRenderer": "Google Inc. -- ANGLE (NVIDIA GeForce GTX 970 Direct3D9Ex vs_3_0 ps_3_0)", "webgl2Renderer": "WebGL creation failed: \n* Error during ANGLE OpenGL init.\n* Error during ANGLE OpenGL init.\n* Error during ANGLE OpenGL init.\n* Error during ANGLE OpenGL init.\n* Error during ANGLE OpenGL init.\n* Exhausted GL driver caps.", "info": { "AzureCanvasBackend": "skia", "AzureCanvasAccelerated": 0, "AzureFallbackCanvasBackend": "cairo", "AzureContentBackend": "skia", "ApzWheelInput": 1, "ApzTouchInput": 1 }, "featureLog": { "features": [ { "name": "HW_COMPOSITING", "description": "Compositing", "status": "disabled", "log": [ { "type": "default", "status": "available" }, { "type": "user", "status": "disabled", "message": "Disabled by pref" } ] }, { "name": "D3D11_COMPOSITING", "description": "Direct3D11 Compositing", "status": "unavailable", "log": [ { "type": "default", "status": "unavailable", "message": "Hardware compositing is disabled" } ] }, { "name": "D3D9_COMPOSITING", "description": "Direct3D9 Compositing", "status": "unavailable", "log": [ { "type": "default", "status": "unavailable", "message": "Hardware compositing is disabled" } ] }, { "name": "DIRECT2D", "description": "Direct2D", "status": "unavailable", "log": [ { "type": "default", "status": "unavailable", "message": "Direct2D requires Direct3D 11 compositing" } ] }, { "name": "D3D11_HW_ANGLE", "description": "Direct3D11 hardware ANGLE", "status": "disabled", "log": [ { "type": "default", "status": "unavailable", "message": "D3D11 compositing is disabled" }, { "type": "env", "status": "disabled", "message": "D3D11 compositing is disabled" } ] }, { "name": "GPU_PROCESS", "description": "GPU Process", "status": "unavailable", "log": [ { "type": "default", "status": "available" }, { "type": "env", "status": "unavailable", "message": "Not using GPU Process since D3D11 is unavailable" } ] } ],
Status: UNCONFIRMED → NEW
Ever confirmed: true
matas, can you copy here the "graphics" sectio from about:upport, please.
Flags: needinfo?(rhazorzor)
Can confirm that media.hardware-video-decoding.enabled is set to false fixed it. Anyway: =================================================================================================== Features Compositing Direct3D 11 Asynchronous Pan/Zoom wheel input enabled; touch input enabled WebGL Renderer Google Inc. -- ANGLE (NVIDIA GeForce GTX 650 Direct3D11 vs_5_0 ps_5_0) WebGL2 Renderer Google Inc. -- ANGLE (NVIDIA GeForce GTX 650 Direct3D11 vs_5_0 ps_5_0) Hardware H264 Decoding No; Hardware video decoding disabled or blacklisted Audio Backend wasapi Direct2D true DirectWrite true (10.0.14393.0) GPU #1 Active Yes Description NVIDIA GeForce GTX 650 Vendor ID 0x10de Device ID 0x0fc6 Driver Version 21.21.13.7270 Driver Date 8-25-2016 Drivers C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_d3851cb7c8216f9e\nvd3dumx,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_d3851cb7c8216f9e\nvwgf2umx,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_d3851cb7c8216f9e\nvwgf2umx,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_d3851cb7c8216f9e\nvwgf2umx C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_d3851cb7c8216f9e\nvd3dum,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_d3851cb7c8216f9e\nvwgf2um,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_d3851cb7c8216f9e\nvwgf2um,C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_d3851cb7c8216f9e\nvwgf2um Subsys ID 00000000 RAM 1024 Diagnostics ClearType Parameters DISPLAY1 [ Gamma: 2,2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 100 ] DISPLAY5 [ Gamma: 2,2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50 ] AzureCanvasAccelerated 0 AzureCanvasBackend skia AzureContentBackend skia AzureFallbackCanvasBackend cairo GPUProcessPid 7820 GPUProcess ClearType Parameters DISPLAY1 [ Gamma: 2,2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 100 ] DISPLAY5 [ Gamma: 2,2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50 ]
[Tracking Requested - why for this release]: Can't play videos on Youtube. For some reason, I can only reproduce this with my regular profile. If I create a new one, it doesn't reproduce even with the same build. That said, I was able to use my dirty profile with mozregression to confirm that this does indeed bisect to bug 1315141 as the culprit. As expected, Aurora52 nightlies don't reproduce since this change is still ifdeffed Nightly-only. Matt, I can probably create a stripped-down version of my profile to send you if it helps debug. Let me know. Graphics -------- Features Compositing: Direct3D 11 Asynchronous Pan/Zoom: wheel input enabled; touch input enabled WebGL Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics P530 Direct3D11 vs_5_0 ps_5_0) WebGL2 Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics P530 Direct3D11 vs_5_0 ps_5_0) Hardware H264 Decoding: Yes; Failed to create D3D11 device for decoder; Using D3D9 API Audio Backend: wasapi Direct2D: true DirectWrite: true (10.0.14393.351) GPU #1 Active: Yes Description: Intel(R) HD Graphics P530 Vendor ID: 0x8086 Device ID: 0x191d Driver Version: 21.20.16.4542 Driver Date: 10-24-2016 Drivers: igdumdim64 igd10iumd64 igd10iumd64 igd12umd64 igdumdim32 igd10iumd32 igd10iumd32 igd12umd32 Subsys ID: 06d91028 RAM: Unknown GPU #2 Active: No Description: NVIDIA Quadro M1000M Vendor ID: 0x10de Device ID: 0x13b1 Driver Version: 21.21.13.7563 Driver Date: 10-21-2016 Drivers: C:\WINDOWS\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_c2a31e8d3f813a51\nvd3dumx,C:\WINDOWS\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_c2a31e8d3f813a51\nvwgf2umx,C:\WINDOWS\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_c2a31e8d3f813a51\nvwgf2umx,C:\WINDOWS\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_c2a31e8d3f813a51\nvwgf2umx C:\WINDOWS\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_c2a31e8d3f813a51\nvd3dum,C:\WINDOWS\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_c2a31e8d3f813a51\nvwgf2um,C:\WINDOWS\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_c2a31e8d3f813a51\nvwgf2um,C:\WINDOWS\System32\DriverStore\FileRepository\nvdmwi.inf_amd64_c2a31e8d3f813a51\nvwgf2um Subsys ID: 06d91028 RAM: 2048 Diagnostics AzureCanvasAccelerated: 0 AzureCanvasBackend: skia AzureContentBackend: skia AzureFallbackCanvasBackend: cairo GPUProcessPid: 13420 GPUProcess: Terminate GPU Process failures: CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0 Decision Log D3D9_COMPOSITING: disabled by default: Disabled by default Failure Log (#0): CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0 (#1): CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0 (#2): CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0 (#3): CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0 (#4): CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0 (#5): CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0 (#6): CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0 (#7): CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0 (#8): CP+[GFX1]: Potential driver version mismatch ignored due to missing DLLs 0.0.0.0 and 0.0.0.0
Blocks: 1315141
Flags: needinfo?(ryanvm) → needinfo?(matt.woodrow)
Keywords: regression
Whiteboard: platform-rel
Interesting Ryan. Yours is the first with this issue that I've seen that's not a GTX card. If I noted properly all the other GPUs listed here are GTX which connect it to bug 1318235 (a dependency of bug 1288618 ). In the end is seems that the new video decoding process could break VP8/VP9 Webm decoding for some GPUs.
It's a GM107 GPU in case that helps.
Tracking 53+ for this regression which affects youtube.
Summary: [Nightly] Hardware acceleration on Nightly 53 prevents YouTube from playing HTML5 videos → [Nightly] GPU video decoding prevents YouTube from playing HTML5 videos
Can someone please test this build and see if it fixes the issue: https://treeherder.mozilla.org/#/jobs?repo=try&revision=385e822dc4e27f3d24f1d2bc3ab57e13435222f6
Still reproduces for me.
it hasn't finished building yet, so which build did you try?
The Taskcluster builds are usable.
I have this issue with an AMD HD7870, which I asked reddit about a few days ago https://www.reddit.com/r/firefox/comments/5deni5/following_todays_update_to_nightly_youtube_seems/ Graphics -------- Features Compositing: Direct3D 11 Asynchronous Pan/Zoom: wheel input enabled; touch input enabled WebGL Renderer: WebGL is currently disabled. WebGL2 Renderer: WebGL is currently disabled. Hardware H264 Decoding: Yes; Failed to create D3D11 device for decoder; Using D3D9 API Audio Backend: wasapi Direct2D: true DirectWrite: true (10.0.14393.351) GPU #1 Active: Yes Description: AMD Radeon HD 7800 Series Vendor ID: 0x1002 Device ID: 0x6818 Driver Version: 21.19.160.769 Driver Date: 11-8-2016 Drivers: aticfx64 aticfx64 aticfx64 amdxc64 aticfx32 aticfx32 aticfx32 amdxc32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a atitmm64 Subsys ID: 25541458 RAM: 2048 Diagnostics ClearType Parameters: Gamma: 2.2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 200 AzureCanvasAccelerated: 0 AzureCanvasBackend: skia AzureContentBackend: skia AzureFallbackCanvasBackend: cairo GPUProcessPid: 1996 GPUProcess: Terminate GPU Process ClearType Parameters: Gamma: 2.2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 200 Decision Log D3D9_COMPOSITING: disabled by default: Disabled by default
Tried the build mentioned above by Matt Woodrow, still fails for me.
Previously, creating a RemoteVideoDecoder was infallible (as long as IPC was still up), and we did the CreateVideoDecoder work as part of Init. This moves the CreateVideoDecoder work to the constructor, and makes it sync, so that failures are reported immediately. The previous approach (making SupportsMimeType more accurate) didn't work, because WMFVideoMFTManager rejects VP8/9 streams if we failed to negotiate a hardware decoder [1]. This is hard/impossible to detect in SupportsMimeType since it will depend on the resolution/fps. [1] http://searchfox.org/mozilla-central/source/dom/media/platforms/wmf/WMFVideoMFTManager.cpp#474
Assignee: nobody → matt.woodrow
Flags: needinfo?(matt.woodrow)
Attachment #8812635 - Flags: review?(jyavenard)
Attachment #8812635 - Flags: review?(dvander)
Comment on attachment 8812635 [details] [diff] [review] Make PVideoDecoder's ctor sync and fail if CreateVideoDecoder Review of attachment 8812635 [details] [diff] [review]: ----------------------------------------------------------------- Any possibility of a regression test getting included with this?
Comment on attachment 8812635 [details] [diff] [review] Make PVideoDecoder's ctor sync and fail if CreateVideoDecoder Review of attachment 8812635 [details] [diff] [review]: ----------------------------------------------------------------- I don't know much about ipdl, but the logic behind it is right. It does make me wonder if we shouldn't simply combine Init and CreateDecoder into a single asynchronous API. So that when you call CreateDecoder you're given a promise, and the decoder returned would always be initialised and usable immediately.
Attachment #8812635 - Flags: review?(jyavenard) → review+
Attachment #8812635 - Flags: review?(dvander) → review+
Pushed by mwoodrow@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/bcba1adaeb51 Make PVideoDecoder's ctor sync and fail if CreateVideoDecoder fails on the GPU process side. r=jya,dvander
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
I can still reproduce on a fresh build off m-c tip :(. Setting media.gpu-process-decoder back to false results in functional playback again.
Status: RESOLVED → REOPENED
Flags: needinfo?(matt.woodrow)
Resolution: FIXED → ---
Target Milestone: mozilla53 → ---
I take that back, I think my build got messed up during packaging. I just rebuilt and retested and things appear to be working with media.gpu-process-decoder set to true!
Status: REOPENED → RESOLVED
Closed: 8 years ago8 years ago
Flags: needinfo?(matt.woodrow)
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
Flags: needinfo?(rhazorzor)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: