Open Bug 1489659 Opened 6 years ago Updated 1 year ago

1080p 60 FPS YouTube Videos Stutter Noticeably on AMD vega 10

Categories

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

62 Branch
defect

Tracking

()

Tracking Status
firefox62 --- affected

People

(Reporter: danezor73, Unassigned)

References

Details

(Whiteboard: [needinfo bryce 2018-09-17])

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0 Build ID: 20180830143136 Steps to reproduce: Playing any 1080p 60 FPS video on YouTube. I've been using the YouTube video linked below for testing as it displays quick movement, which makes the stutter easy to see. https://www.youtube.com/watch?v=kVyV_fTk6rc Actual results: Whenever I play a 1080p 60 FPS video on YouTube, there is mild visible stuttering. I have tried disabling Hardware Acceleration, but that just succeeded in making the stuttering significantly worse and also shooting my CPU usage up significantly (over 60-70% in some cases). Installing an extension to force h.264 video rather than vp9 didn't make any difference, either. However, upon installing Firefox 56, the last non-Quantum version, the stuttering is gone. 1080p 60 FPS videos play normally on that older version, so it seems to be a Quantum-only issue. All other steps I've taken in an attempt to resolve the problem are in this Reddit thread: https://www.reddit.com/r/firefox/comments/9do6pq/firefox_62_video_playback_stutters_badly_on_ryzen/ I have attached a Gecko Performance Profile and a Devtools Media Panel information. Here is my about:support: https://pastebin.com/n7L04LZU Expected results: The video should play at a smooth 60 frames per second, with no hiccups or stutter. I recorded the YouTube video linked above, and playing the file shows no stutter. Additionally, playing the YouTube video in another browser like Chrome or Edge works fine.
Jean-Yves, do you have someone in mind to verify this?
Flags: needinfo?(jyavenard)
Whiteboard: [needinfo to jya 2018/09/11]
I had experienced the same issue a while back and opened a bug about it bug 1409051 So I'm not surprised someone else is experiencing the issue
Flags: needinfo?(jyavenard)
See Also: → 1409051
Hi danezor73, could you help us narrow down where the issue may be taking place? - Are you running a single monitor setup, or something else? - Is your machine under any other load when you see the issue? - Have you noticed the issue on any other sites with video? - Confirming what was said in the reddit thread: disabling hardware acceleration doesn't help? Switching between vp9 and h264 doesn't help? Could you recapture a profile while this happens? It looks like the one attached hasn't been fully symbolized -- you can see that a lot of the entries are just hex (0x7f... kinda stuff). Normally the profiler tries to symbolize the run at the end, but looks like it wasn't quick enough before the profile was saved this time. If you use the "Share" button in the top right of the profiler I think it makes sure the symbols are saved before sharing, and you can provide us the URL from there. If you capture another profile could you also expand the "Threads" setting in the profiler to the following`GeckoMain,Compositor,Content,MainThread,MediaPDecoder,VideoParent`. That should help give us more information on different parts handling video. Finally, I've noticed an issue where videos skip backwards then forwards. I.e. if a video should be showing frames in order as 1, 2, 3, 4, 5, instead we'd see something like 1, 2, 3, 2, 5. It's possible this is unrelated, but if you do happen to notice small skips backwards, it would be useful to know.
Flags: needinfo?(danezor73)
:jya, we've had some changes recently to better log where frames are being dropped, is this something that we could use to determine where the issue is here?
What if you go into about:config, set browser.tabs.remote.autostart to false and restart.. do you still get the same problem? this turns off e10s, and you can check that multi-process is no longer active "Multiprocess Windows" will show 1/1 and disabled
Whiteboard: [needinfo to jya 2018/09/11]
(In reply to Bryce Seager van Dyk (:bryce) from comment #3) > Hi danezor73, could you help us narrow down where the issue may be taking > place? > > - Are you running a single monitor setup, or something else? > - Is your machine under any other load when you see the issue? > - Have you noticed the issue on any other sites with video? > - Confirming what was said in the reddit thread: disabling hardware > acceleration doesn't help? Switching between vp9 and h264 doesn't help? > > Could you recapture a profile while this happens? It looks like the one > attached hasn't been fully symbolized -- you can see that a lot of the > entries are just hex (0x7f... kinda stuff). Normally the profiler tries to > symbolize the run at the end, but looks like it wasn't quick enough before > the profile was saved this time. If you use the "Share" button in the top > right of the profiler I think it makes sure the symbols are saved before > sharing, and you can provide us the URL from there. > > If you capture another profile could you also expand the "Threads" setting > in the profiler to the > following`GeckoMain,Compositor,Content,MainThread,MediaPDecoder,VideoParent`. > That should help give us more information on different parts handling video. > > Finally, I've noticed an issue where videos skip backwards then forwards. > I.e. if a video should be showing frames in order as 1, 2, 3, 4, 5, instead > we'd see something like 1, 2, 3, 2, 5. It's possible this is unrelated, but > if you do happen to notice small skips backwards, it would be useful to know. Hey there. Sorry it took a day to respond. Here's an answer to each of your questions: 1.) My machine is a laptop using only the built-in monitor, driven by the RX Vega 10 onboard my Ryzen 7 2700U. 2.) The issue manifests itself even if Firefox is the only open program. CPU usage is only ~10%, and GPU usage is only 20-30% from the video playback only (without Firefox running it'd be 1-2%). There should be plenty of extra headroom, in theory. 3.) The only other website I use for video is Twitch, and that website displays 1080p 60 FPS video smoothly. I don't know where else to find 1080p60 video. I looked on Dailymotion, but that all seems to display at 30 FPS. 4.) Correct. Disabling hardware acceleration just amplified the problem (the stuttering got a lot worse) and made Firefox eat a significant portion of my CPU (above 50%) when playing 1080p 60 FPS video on YouTube. Installing h.264ify didn't make a noticeable difference to the stuttering, either. 5.) Sure. I ran the Gecko profiler several times in the last few days and it would never finish symbolicating, but lo and behold it finished this time. I added the extra parameters you described as well. Here is the link: https://perfht.ml/2x3ZPdA 6.) I am unsure if it's shuffling the frame order or not. The stutters are extremely quick, so I can't perceive if it's merely holding a frame too long or shuffling it in the wrong order. They're just frequent, so it definitely hampers the viewing experience. Sorry that I can't be of help in this regard.
Flags: needinfo?(danezor73)
Ah, ****. I didn't realize I needed to restart the profiler when changing settings. I did that and ran another performance profile. Here you go: https://perfht.ml/2x87yHI
Sorry for the triple post, but I got a crazy idea to figure out if the video is shuffling frames in the wrong order or if it's holding a frame too long. I used my phone's Galaxy S9's slowmo camera. I can definitively say that it is not shuffling frames into the wrong order, but rather the stuttering I'm seeing is a result of the video freezing for a moment. I hope that helps.
Thanks for the detailed responses. That helps disambiguate from some other issues we've seen in the past. The profiles are missing some of the threads I'd expect. The profiler seems to not be picking up some of our decoder threads -- I'd expect it to look something like this[0]. The profiler may better pick up those threads if it's started then the youtube page is opened. For those profiles, and in general, does the issue persist as long as you're watching the video, or is it worse at the beginning? Interesting that the issue isn't present on twitch. Do you see the issue if you watch a video that's in embedded mode? If you have a URL like https://www.youtube.com/watch?v=foo you can change it to https://www.youtube.com/embed/foo, to get an embedded version (where the 'foo' part needs to change). Could you also try the steps :jya mentioned in comment #5 and let us know if that changes anything? [0]: https://perfht.ml/2Nb1OYj
To clarify the profile comments I made in comment #9: I'd expect to see one or more 'MediaPDecoder' entries in profile runs, as in the example.
Alrighty, hopefully this Gecko profile actually has the stuff we wanted. It has one MediaPDecoder entry: https://perfht.ml/2MvIrUO 1.) The issue persists at random intervals throughout the video. It isn't better or worse at any noticeable point. 2.) Unfortunately, using embedded YouTube didn't make a difference. 3.) Setting browser.tabs.remote.autostart to false didn't change video performance, either.
A reminder to confirm or not the bug when you know what is going on.
Flags: needinfo?(bvandyk)
Whiteboard: [needinfo bryce 2018-09-17]
Thanks for the further profile. I discuss it and other technical bits at the tail end of this comment to keep technical discussion out of my queries for more info. To be sure, after setting `browser.tabs.remote.autostart` the browser was restarted and performance didn't change? You can also confirm that the setting had the desired affect by navigating to about:support and ensuring the "Web Content Processes" shows "0/1 (Disabled)". This pref should disable some of the major changes in quantum, so I want to make sure that it's not having an impact. Another datapoint that would be helpful is seeing if using Firefox Nightly makes any difference. Since Firefox 62 we have fixed an issue that affected certain Youtube videos that would result in stuttering. --- My current thoughts: This doesn't sound like a traditional performance bottleneck in our decoding pipeline. If this were the case I'd expect to see some change when we change codecs and when we toggle hardware decoding. Similarly, it doesn't seem like a compositing bottleneck, as I'd expect to see a perf change between hardware and software. I'd also expect twitch.tv to show performance issues if either of the above were our problem, but these issues appear specific to youtube. As it happens with embedded youtube videos, isolates it further to being specific to the youtube player. I don't see a smoking gun in the profiles. Early on we see a lot JS activity, which we'd expect as a youtube page loads. I don't see anything that stands out for media or compositing. :jya do you see anything that would cause concern?
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(bvandyk) → needinfo?(jyavenard)
Priority: -- → P2
(In reply to Bryce Seager van Dyk (:bryce) from comment #13) > > My current thoughts: > > This doesn't sound like a traditional performance bottleneck in our decoding > pipeline. If this were the case I'd expect to see some change when we change > codecs and when we toggle hardware decoding. > > Similarly, it doesn't seem like a compositing bottleneck, as I'd expect to > see a perf change between hardware and software. > > I'd also expect twitch.tv to show performance issues if either of the above > were our problem, but these issues appear specific to youtube. As it happens > with embedded youtube videos, isolates it further to being specific to the > youtube player. twitch use h264 exclusively. YouTube is likely VP9 Now the machine is using a Vega 10 processor, which is the latest AMD integrated GPU and supposedly has a native hardware vp9 decoder. It could just be that the performance of that processor is too bad, we already had to disable the VP9 hardware decoder of Vega 56/64 and AMD 5xxx for performance reasons already. If you go into about:config and set the media.wmf.vp9.enabled preference to false. How does it perform now?
Flags: needinfo?(jyavenard) → needinfo?(danezor73)
After setting that pref to false, also reset the media.benchmark.vp9.fps preference and restart firefox.
(In reply to Bryce Seager van Dyk (:bryce) from comment #13) > Thanks for the further profile. I discuss it and other technical bits at the > tail end of this comment to keep technical discussion out of my queries for > more info. > > To be sure, after setting `browser.tabs.remote.autostart` the browser was > restarted and performance didn't change? You can also confirm that the > setting had the desired affect by navigating to about:support and ensuring > the "Web Content Processes" shows "0/1 (Disabled)". This pref should disable > some of the major changes in quantum, so I want to make sure that it's not > having an impact. > > Another datapoint that would be helpful is seeing if using Firefox Nightly > makes any difference. Since Firefox 62 we have fixed an issue that affected > certain Youtube videos that would result in stuttering. > > --- > > My current thoughts: > > This doesn't sound like a traditional performance bottleneck in our decoding > pipeline. If this were the case I'd expect to see some change when we change > codecs and when we toggle hardware decoding. > > Similarly, it doesn't seem like a compositing bottleneck, as I'd expect to > see a perf change between hardware and software. > > I'd also expect twitch.tv to show performance issues if either of the above > were our problem, but these issues appear specific to youtube. As it happens > with embedded youtube videos, isolates it further to being specific to the > youtube player. > > I don't see a smoking gun in the profiles. Early on we see a lot JS > activity, which we'd expect as a youtube page loads. I don't see anything > that stands out for media or compositing. :jya do you see anything that > would cause concern? I don't see "web content process" in my about:support (even in the raw paste data, checking with Ctrl-F). But "Multiprocess Windows" shows 0/1 and GPU_PROCESS shows 0/1. Stuttering is still visible in the video I linked in my original post. (In reply to Jean-Yves Avenard [:jya] from comment #14) > (In reply to Bryce Seager van Dyk (:bryce) from comment #13) > > > > My current thoughts: > > > > This doesn't sound like a traditional performance bottleneck in our decoding > > pipeline. If this were the case I'd expect to see some change when we change > > codecs and when we toggle hardware decoding. > > > > Similarly, it doesn't seem like a compositing bottleneck, as I'd expect to > > see a perf change between hardware and software. > > > > I'd also expect twitch.tv to show performance issues if either of the above > > were our problem, but these issues appear specific to youtube. As it happens > > with embedded youtube videos, isolates it further to being specific to the > > youtube player. > > twitch use h264 exclusively. > > YouTube is likely VP9 > > Now the machine is using a Vega 10 processor, which is the latest AMD > integrated GPU and supposedly has a native hardware vp9 decoder. > It could just be that the performance of that processor is too bad, we > already had to disable the VP9 hardware decoder of Vega 56/64 and AMD 5xxx > for performance reasons already. > > If you go into about:config and set the media.wmf.vp9.enabled preference to > false. > > How does it perform now? After setting media.wmf.vp9.enabled to false and resetting media.benchmark.vp9.fps, performance still hasn't changed. In the video I linked in my original post (https://www.youtube.com/watch?v=kVyV_fTk6rc) the codec doesn't show as vp9, but rather it shows as "avc1.64002a (299) / mp4a.40.2 (140)." I don't know if that makes a difference in how further troubleshooting is to be done. Let's go deeper. After changing those settings and loading this 1080p 60 FPS test video (https://www.youtube.com/watch?v=0BhSrfNgLxs), that does seem to show less visible stuttering after changing the above settings. This one's codec shows as vp9 when checking the Stats for Nerds. My own video, being served as avc1 however, continues to stutter.
Flags: needinfo?(danezor73)
I take back what I said about the known vp9 video stuttering less with the vp9 settings adjusted. I did some more testing, along with installing Nightly and changing the same settings there, and they still show the same manner of stuttering. I guess I just didn't notice it the first time. This is really weird, especially with how the videos run fine in Chrome and Edge, but not here. Could this perhaps be a graphics driver problem? Vega Mobile is stuck on version 17.7.
Just adding a needinfo so this doesn't slip through the cracks.
Flags: needinfo?(jyavenard)
A quick update. I force-installed RX Vega driver version 18.7.1 using the Device Manager. That didn't fix the stuttering either, so it's probably safe to say it isn't a driver issue. That said, I no longer had access to any other resolution than 1080p in my games, so I had to revert to the HP-provided driver using 17.7.
(In reply to danezor73 from comment #19) > A quick update. I force-installed RX Vega driver version 18.7.1 using the > Device Manager. That didn't fix the stuttering either, so it's probably safe > to say it isn't a driver issue. That said, I no longer had access to any > other resolution than 1080p in my games, so I had to revert to the > HP-provided driver using 17.7. Sounds like AMD disabled the vp9 hardware decoder with newer driver.. Likely because performance were too poor. I'll enquire
Flags: needinfo?(jyavenard)
(In reply to Jean-Yves Avenard [:jya] from comment #20) > (In reply to danezor73 from comment #19) > > A quick update. I force-installed RX Vega driver version 18.7.1 using the > > Device Manager. That didn't fix the stuttering either, so it's probably safe > > to say it isn't a driver issue. That said, I no longer had access to any > > other resolution than 1080p in my games, so I had to revert to the > > HP-provided driver using 17.7. > > Sounds like AMD disabled the vp9 hardware decoder with newer driver.. Likely > because performance were too poor. I'll enquire Did you find anything out? I'm not sure that it's a matter of performance being too low as other web browsers can render the videos fine (I prefer Firefox, though, hence why I'm here), that is, unless the other browsers utilize CPU/GPU differently than Firefox does. Anyway, I digress. Got any ideas?
Putting up ni for further information around hardware decoding being enabled in drivers.
Flags: needinfo?(jyavenard)
Can you install the DXVA Checker utility (available at https://www.videohelp.com/software/DXVA-Checker) start it take a screen capture of the first tab titled "Decoder Device". See if you see any DXVA2/D3D11 VP9 related decoder: it should look something like: VP9_VLD_Profile0 DXVA2/D3D11 Lastly, play a video in Firefox, and go back into DXVA checker to the last tab titled "GPU Engine Usage" Do you see a decode column showing there? Lastly, install in Firefox the Media Devtools https://addons.mozilla.org/en-US/firefox/addon/devtools-media-panel/ While playing a video, press Ctrl-Shift-I and go to the Media-Webrtc tab. From there select the video currently playing and copy paste here the output. Thanks
The output you attached earlier is for a H264 video. You must have installed something to override YouTube default preferences as it would normally serve you VP9 content and your machine is fast enough to do VP9. I'll recommend that you refresh your profile and try again... The information provided so far isn't sufficient to determine what's going on. Thank you
Flags: needinfo?(jyavenard)
(In reply to Jean-Yves Avenard [:jya] from comment #24) > The output you attached earlier is for a H264 video. You must have installed > something to override YouTube default preferences as it would normally serve > you VP9 content and your machine is fast enough to do VP9. > > I'll recommend that you refresh your profile and try again... The > information provided so far isn't sufficient to determine what's going on. > Thank you I'll get to trying the program as soon as I can. Currently in the middle of an exam week at uni. As for the video being served as h.264, all the data handed to you was on a clean Firefox install/profile. I have no addons installed, so what got served to me is what got served. All the data captures I gave you were from this video: https://www.youtube.com/watch?v=kVyV_fTk6rc This video shows as avc1.64002a (299) / mp4a.40.2 (140) when checking the stats for nerds, even on two other computers, and even in Chrome. So the YouTube default in this case is that codec, not vp9. Regardless of the video codec, there is still stuttering on my Ryzen laptop, even if I find one that is clearly listed as vp9. It doesn't matter what the codec is. The issue will still manifest itself. I will get you the requested info as soon as I can, only I'll do it for two different videos next time. One that's vp9 alongside the video I linked above. I'm not a software engineer, but I don't think the codec being served to me is the issue here.
(In reply to danezor73 from comment #25) > I will get you the requested info as soon as I can, only I'll do it for two > different videos next time. One that's vp9 alongside the video I linked > above. > > I'm not a software engineer, but I don't think the codec being served to me > is the issue here. You're right. I had assumed the video you were watching was using VP9, it clearly doesn't. In your original description of the bug, you attached the output of the media devtools data. However, when you did so the video had been paused and/or ended. As such the content doesn't contain the information we would need to provide more analysis. Could you re-do the capture of the media devtools, this time with the video playing? thanks
Flags: needinfo?(danezor73)
Hi, not sure if it's appropriate to intrude this thread, but I have the same issue here. Some description can be found here at my own reddit post here: https://www.reddit.com/r/firefox/comments/9nwvl1/firefox_not_able_to_play_1080_60p_youtube/. And I have a video recording to the problem here: https://drive.google.com/file/d/1FwUr1z-fua6xyjFLeSx2c87XvyAKymsb/view?usp=sharing To reproduce the problem, go to YouTube and play this video: https://www.youtube.com/watch?v=h3_SB1btagU I don't think this is an AMD-only issue, as my device is with 6700HQ and GTX960M. One thing I should mention is that my laptop is also equipped with a 4k display. I really want this problem solved. May I ask how I can provide helpful information?
Please provide a copy of your about:support and what the stats for nerds (which you can access by right clicking the video) Seems to me that the issue at hand is that YouTube doesn't monitor the frames dropped count and is serving a resolution too high for your machine to handle (the 960M can't do vp9). You should try with Firefox 63 beta, and see if it works better. We have enabled Media Capabilities which provides more clue to YouTube and what you can play and can't.
BTW comment 27 has nothing to do with the original bug description, which is about a small number of frames being dropped by the compositor (machine is fast enough) vs one where the content served is obviously too high for the processor to handle.
Actually, in my recording, YouTube was not using VP9, as you can see in the following screenshot: https://drive.google.com/file/d/1NonoNGnODuAgkw7E77sU7hWHrBPq_sJM/view?usp=sharing With that said, I tried again just now and it was using VP9 indeed, which of course also had the stuttering issue: https://drive.google.com/file/d/1-i7C0dG_NLpFyPRvM1kiDbPlD4Ir1Ejy/view?usp=sharing As for resolution, the video is only 1080p/60fps. I had some issues with 4k before but that's not what causes the issue here in my opinion. I can play 1080p content with normal fps rate (24fps) without any problem. I can even get away with 2k content with 24fps with only a few frame drops. What I get with 1080p/60fps is freezing up to a few seconds every few seconds - it barely plays at all. As for my Firefox about:support: Application Basics ------------------ Name: Firefox Version: 62.0.3 Build ID: 20181002130007 User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0 OS: Linux 4.15.0-36-generic Multiprocess Windows: 1/1 (Enabled by default) Web Content Processes: 3/4 Enterprise Policies: Inactive Google Key: Found Mozilla Location Service Key: Missing Safe Mode: false Crash Reports for the Last 3 Days --------------------------------- All Crash Reports (including 4 pending crashes in the given time range) Firefox Features -------------------------------------------------------------------------------------------- Name: Activity Stream Version: 2018.08.22.1219-93becf29 ID: activity-stream@mozilla.org Name: Application Update Service Helper Version: 2.0 ID: aushelper@mozilla.org Name: Firefox Screenshots Version: 33.0.0 ID: screenshots@mozilla.org Name: Form Autofill Version: 1.0 ID: formautofill@mozilla.org Name: Photon onboarding Version: 1.0 ID: onboarding@mozilla.org Name: Pocket Version: 1.0.5 ID: firefox@getpocket.com Name: Telemetry coverage Version: 7.0 ID: bug1487578@mozilla.org">telemetry-coverage-bug1487578@mozilla.org Name: Web Compat Version: 2.0 ID: webcompat@mozilla.org Name: WebCompat Reporter Version: 1.0.0 ID: webcompat-reporter@mozilla.org Extensions ---------- Name: DragLinks Version: 1.10 Enabled: true ID: sp33dk0r3@gmail.com Name: GNOME Shell integration Version: 10.1 Enabled: true ID: chrome-gnome-shell@gnome.org Name: Grammarly for Firefox Version: 8.831.1882 Enabled: true ID: 87677a2c52b84ad3a151a4a72f5bd3c4@jetpack Name: Media Panel Version: 2.5 Enabled: true ID: {68d048f4-9449-4c97-8425-6dac7f743b14} Name: Privacy Badger Version: 2018.10.3.1 Enabled: true ID: jid1-MnnxcxisBPnSXQ@jetpack Name: Pushbullet Version: 335 Enabled: true ID: jid1-BYcQOfYfmBMd9A@jetpack Name: Responsible Blocker Version: 4.8 Enabled: true ID: {88A0C50A-E61B-11E5-9673-8908BC8E7F8B} Name: Stylish - Custom themes for any website Version: 3.1.8 Enabled: true ID: {46551EC9-40F0-4e47-8E18-8E5CF550CFB8} Name: Take Webpage Screenshots Entirely - FireShot Version: 0.98.95.1 Enabled: true ID: {0b457cAA-602d-484a-8fe7-c1d894a011ba} Name: WizNote Web Clipper Version: 4.0.10.6 Enabled: true ID: jfanfpmalehkemdiiebjljddhgojhfab@chrome-store-foxified--1510326272 Name: Zoom Page WE Version: 12.0 Enabled: true ID: zoompage-we@DW-dev Name: Glitter Drag Version: 1.55.6 Enabled: false ID: glitterdrag@harytfw Name: h264ify Version: 1.0.9 Enabled: false ID: jid1-TSgSxBhncsPBWQ@jetpack Security Software ----------------- Type: Type: Type: Graphics -------- Features Compositing: Basic Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled WebGL 1 Driver WSI Info: GLX 1.4 GLX_VENDOR(client): NVIDIA Corporation GLX_VENDOR(server): NVIDIA Corporation Extensions: GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_import_context GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control GLX_EXT_swap_control GLX_EXT_swap_control_tear GLX_EXT_texture_from_pixmap GLX_EXT_buffer_age GLX_ARB_create_context GLX_ARB_create_context_profile GLX_EXT_create_context_es_profile GLX_EXT_create_context_es2_profile GLX_ARB_create_context_no_error GLX_ARB_create_context_robustness GLX_NV_delay_before_swap GLX_EXT_stereo_tree GLX_ARB_context_flush_control GLX_NV_robustness_video_memory_purge GLX_ARB_multisample GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_EXT_framebuffer_sRGB GLX_NV_copy_image GLX_ARB_get_proc_address WebGL 1 Driver Renderer: NVIDIA Corporation -- GeForce GTX 960M/PCIe/SSE2 WebGL 1 Driver Version: 4.6.0 NVIDIA 396.24 WebGL 1 Driver Extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_NV_robustness_video_memory_purge GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object GL_EXT_memory_object_fd GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_EXT_semaphore GL_EXT_semaphore_fd GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_feature_query GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vdpau_interop GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_sRGB EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_element_index_uint OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_etc WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context WebGL 2 Driver WSI Info: GLX 1.4 GLX_VENDOR(client): NVIDIA Corporation GLX_VENDOR(server): NVIDIA Corporation Extensions: GLX_EXT_visual_info GLX_EXT_visual_rating GLX_EXT_import_context GLX_SGIX_fbconfig GLX_SGIX_pbuffer GLX_SGI_video_sync GLX_SGI_swap_control GLX_EXT_swap_control GLX_EXT_swap_control_tear GLX_EXT_texture_from_pixmap GLX_EXT_buffer_age GLX_ARB_create_context GLX_ARB_create_context_profile GLX_EXT_create_context_es_profile GLX_EXT_create_context_es2_profile GLX_ARB_create_context_no_error GLX_ARB_create_context_robustness GLX_NV_delay_before_swap GLX_EXT_stereo_tree GLX_ARB_context_flush_control GLX_NV_robustness_video_memory_purge GLX_ARB_multisample GLX_NV_float_buffer GLX_ARB_fbconfig_float GLX_EXT_framebuffer_sRGB GLX_NV_copy_image GLX_ARB_get_proc_address WebGL 2 Driver Renderer: NVIDIA Corporation -- GeForce GTX 960M/PCIe/SSE2 WebGL 2 Driver Version: 3.2.0 NVIDIA 396.24 WebGL 2 Driver Extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_x11_sync_object GL_EXT_import_sync_object GL_NV_robustness_video_memory_purge GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object GL_EXT_memory_object_fd GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_EXT_semaphore GL_EXT_semaphore_fd GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_command_list GL_NV_compute_program5 GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_feature_query GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vdpau_interop GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum WebGL 2 Extensions: EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_texture_float_linear WEBGL_compressed_texture_etc WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context GPU #1 Active: Yes Description: NVIDIA Corporation -- GeForce GTX 960M/PCIe/SSE2 Vendor ID: NVIDIA Corporation Device ID: GeForce GTX 960M/PCIe/SSE2 Driver Version: 4.6.0 NVIDIA 396.24 Diagnostics AzureCanvasAccelerated: 0 AzureCanvasBackend: skia AzureContentBackend: skia AzureFallbackCanvasBackend: none CairoUseXRender: 0 Decision Log HW_COMPOSITING: blocked by default: Acceleration blocked by platform OPENGL_COMPOSITING: unavailable by default: Hardware compositing is disabled WEBRENDER: opt-in by default: WebRender is an opt-in feature unavailable by runtime: Hardware compositing is disabled OMTP: disabled by default: Disabled by default Media ----- Audio Backend: remote Max Channels: 2 Preferred Sample Rate: 44100 Output Devices Name: Group Built-in Audio Analog Stereo: /devices/pci0000:00/0000:00:1f.3/sound/card0 Input Devices Name: Group Monitor of Built-in Audio Analog Stereo: /devices/pci0000:00/0000:00:1f.3/sound/card0 Built-in Audio Analog Stereo: /devices/pci0000:00/0000:00:1f.3/sound/card0 Important Modified Preferences ------------------------------ browser.cache.disk.capacity: 1048576 browser.cache.disk.filesystem_reported: 1 browser.cache.disk.smart_size.first_run: false browser.download.useDownloadDir: false browser.places.smartBookmarksVersion: 8 browser.sessionstore.upgradeBackup.latestBuildID: 20181002130007 browser.startup.homepage: https://start.duckduckgo.com/ browser.startup.homepage_override.buildID: 20181002130007 browser.startup.homepage_override.mstone: 62.0.3 browser.tabs.loadBookmarksInTabs: true browser.tabs.warnOnClose: false browser.urlbar.matchBuckets: general:5,suggestion:Infinity browser.urlbar.maxRichResults: 12 browser.urlbar.placeholderName: Google browser.urlbar.suggest.history: false browser.urlbar.timesBeforeHidingSuggestionsHint: 0 dom.forms.autocomplete.formautofill: true dom.push.userAgentID: a65fbbb9d9954e3891c23af9c46d1fcd extensions.lastAppVersion: 62.0.3 font.name.monospace.x-western: Consolas font.name.sans-serif.x-western: Noto Sans CJK SC font.name.serif.x-western: Noto Serif CJK SC media.eme.enabled: true media.gmp-gmpopenh264.abi: x86_64-gcc3 media.gmp-gmpopenh264.lastUpdate: 1538571001 media.gmp-gmpopenh264.version: 1.7.1 media.gmp-manager.buildID: 20181002130007 media.gmp-manager.lastCheck: 1539494720 media.gmp-widevinecdm.abi: x86_64-gcc3 media.gmp-widevinecdm.lastUpdate: 1538705927 media.gmp-widevinecdm.version: 1.4.9.1088 media.gmp.storage.version.observed: 1 media.webrtc.debug.log_file: /tmp/WebRTC.log network.cookie.prefsMigrated: true network.dns.disablePrefetch: true network.http.speculative-parallel-limit: 0 network.predictor.cleaned-up: true network.predictor.enabled: false network.prefetch-next: false places.database.lastMaintenance: 1539458447 places.history.expiration.transient_current_max_pages: 158236 plugin.disable_full_page_plugin_for_types: application/pdf privacy.sanitize.pending: [{"id":"newtab-container","itemsToClear":[],"options":{}}] privacy.trackingprotection.enabled: true privacy.trackingprotection.introCount: 20 security.sandbox.content.tempDirSuffix: 26c6ce92-e57e-484c-9508-00784b5dc1a9 services.sync.declinedEngines: services.sync.engine.addresses: true services.sync.engine.addresses.available: true services.sync.engine.bookmarks.validation.lastTime: 1539453847 services.sync.engine.passwords.validation.lastTime: 1539453847 services.sync.engine.prefs.modified: false services.sync.lastPing: 1539453844 services.sync.lastSync: Sun Oct 14 2018 08:26:34 GMT-0400 (EDT) signon.importedFromSqlite: true storage.vacuum.last.index: 1 storage.vacuum.last.places.sqlite: 1538606413 Important Locked Preferences ---------------------------- Places Database --------------- JavaScript ---------- Incremental GC: true Accessibility ------------- Activated: false Prevent Accessibility: 0 Library Versions ---------------- NSPR Expected minimum version: 4.19 Version in use: 4.19 NSS Expected minimum version: 3.38 Version in use: 3.38 NSSSMIME Expected minimum version: 3.38 Version in use: 3.38 NSSSSL Expected minimum version: 3.38 Version in use: 3.38 NSSUTIL Expected minimum version: 3.38 Version in use: 3.38 Sandbox ------- Seccomp-BPF (System Call Filtering): true Seccomp Thread Synchronization: true User Namespaces: true Content Process Sandboxing: true Media Plugin Sandboxing: true Content Process Sandbox Level: 4 Effective Content Process Sandbox Level: 4 Rejected System Calls --------------------- Internationalization & Localization ----------------------------------- Application Settings Requested Locales: ["en-US"] Available Locales: ["ar","de","en-CA","en-GB","en-ZA","es-AR","es-CL","es-ES","es-MX","fr","it","ja","pt-BR","pt-PT","ru","zh-CN","zh-TW","en-US"] App Locales: ["en-US","en-CA","en-GB","en-ZA","und"] Regional Preferences: ["en-US"] Default Locale: "und" Operating System System Locales: ["en-US"] Regional Preferences: ["en-US"]
I should also mention that when I tried to record the performance, with the dev panel on, I cannot get a true full-screen playback. And I would need to shrink the dev panel to the very bottom, which makes the dev panel essentially a strip of 1mm, to get the YouTube playback stutter. The video also stuttered much more noticeably with my cursor inside the playback area, especially when I tried to move the cursor. But even with my cursor resting on the dev panel, the stutter was still very serious, freezing a few seconds now and then.
Just to update that one reply from reddit solved my problem. I switched to Intel integrated graphics system-wide and the problem was solved.
(In reply to zhanxucong from comment #31) > I should also mention that when I tried to record the performance, with the > dev panel on, I cannot get a true full-screen playback. And I would need to > shrink the dev panel to the very bottom, which makes the dev panel > essentially a strip of 1mm, to get the YouTube playback stutter. > The video also stuttered much more noticeably with my cursor inside the > playback area, especially when I tried to move the cursor. But even with my > cursor resting on the dev panel, the stutter was still very serious, > freezing a few seconds now and then. You're using the basic compositor, this would be pretty slow. You can enable the open gl one by setting layers.acceleration.force-enabled to true in about:config otherwise, again, very different scenarios and problem as the OP, please open a new bug.
Alright, I'm back with the updated Media-Devtools data as well as a screenshot showing available decoders. Sorry for the delay. Midterms are a doozy. Anyway, I found two vp9 decoders near the bottom of the DXVA Checker window. Here is the screenshot: https://imgur.com/a/D1RGGvW Here is the copy-paste for a vp9 1080p60 video (https://www.youtube.com/watch?v=0BhSrfNgLxs): "MediaInfo":{ "HTMLMediaElement":{ "autoplay":false "buffered":[ 0:{ "start":0 "end":100.133 } ] "controls":false "crossOrigin":NULL "currentSrc":"blob:https://www.youtube.com/8d730ae6-9812-4904-980a-981a6f868b55" "currentTime":47.657352 "defaultMuted":false "defaultPlaybackRate":1 "duration":148.781 "ended":false "error":NULL "loop":false "mozAudioCaptured":false "mozFragmentEnd":148.781 "muted":false "networkState":2 "networkState_name":"NETWORK_LOADING" "paused":false "playbackRate":1 "played":[ 0:{ "start":0 "end":62.638312 } ] "preload":"" "readyState":4 "seekable":[ 0:{ "start":0 "end":148.781 } ] "seeking":false "src":"blob:https://www.youtube.com/8d730ae6-9812-4904-980a-981a6f868b55" "srcObject":NULL "volume":1 } "HTMLVideoElement":{ "height":0 "mozDecodedFrames":4520 "mozFrameDelay":0.0120642962 "mozHasAudio":true "mozPaintedFrames":2867 "mozParsedFrames":4543 "mozPresentedFrames":4068 "videoHeight":1080 "videoWidth":1920 "width":0 } "videoPlaybackQuality":{ "ratio":"100%" "droppedVideoFrames":13 "corruptedVideoFrames":0 } "mozMediaSourceObject":[ 0:{ "sourceBuffers":[ 0:{ "start":0 "end":110.001 } ] } 1:{ "sourceBuffers":[ 0:{ "start":0 "end":100.133 } ] } ] "debugInfo":{ "Container Type":"MediaSource" "Audio Decoder(audio/opus, 2 channels @ 48.0kHz)":"opus audio decoder" "Audio Frames Decoded":"3784" "Audio State":"ni=0 no=0 wp=0 demuxr=0 demuxq=0 decoder=0 tt=-1.0 tths=-1 in=445 out=445 qs=0 pending=0 wfd=0 eos=0 ds=0 wfk=0 sid=1" "Video Decoder(video/vp9, 1920x1080 @ 59.99)":"ffvpx video decoder" "Hardware Video Decoding":"enabled" "Video Frames Decoded":"4520 (skipped=10)" "Video State":"ni=0 no=0 wp=0 demuxr=0 demuxq=0 decoder=0 tt=-1.0 tths=-1 in=432 out=430 qs=2 pending:0 wfd=0 eos=0 ds=0 wfk=0 sid=0" "Dumping Data for Demuxer":"2031901fc00" "Dumping Audio Track Buffer(audio/webm)":"mLastAudioTime=49.701000" "Audio Track Buffer Details":"NumSamples=5500 Size=2968320 Evictable=1318767 NextGetSampleIndex=2485 NextInsertionIndex=5500" "Audio Track Buffered":"ranges=[(0.000000, 110.001000)]" "Dumping Video Track Buffer(video/webm)":"mLastVideoTime=47.780000" "Video Track Buffer Details":"NumSamples=6002 Size=56354825 Evictable=25094954 NextGetSampleIndex=2864 NextInsertionIndex=6002" "Video Track Buffered":"ranges=[(0.000000, 100.133000)]" "Compositor dropped frame(including when element's invisible)":"866" "MediaDecoder=20319002200":"channels=2 rate=48000 hasAudio=1 hasVideo=1 mPlayState=PLAYING" "MDSM":"duration=148781000 GetMediaTime=47657352 GetClock=47687977 mMediaSink=203198fa940 state=DECODING mPlayState=3 mSentFirstFrameLoadedEvent=1 IsPlaying=1 mAudioStatus=idle mVideoStatus=idle mDecodedAudioEndTime=49694500 mDecodedVideoEndTime=47747000 mAudioCompleted=0 mVideoCompleted=0 mIsPrerolling=0" "VideoSink":"IsStarted=1 IsPlaying=1 VideoQueue(finished=0 size=4) mVideoFrameEndTime=47697000 mHasVideo=1 mVideoSinkEndRequest.Exists()=0 mEndPromiseHolder.IsEmpty()=0" "AudioSinkWrapper":"IsStarted=1 IsPlaying=1 AudioEnded=0" } } Here is the copy-paste for the previously linked Dark Souls h.264 video: "MediaInfo":{ "HTMLMediaElement":{ "autoplay":false "buffered":[ 0:{ "start":0 "end":70.933333 } ] "controls":false "crossOrigin":NULL "currentSrc":"blob:https://www.youtube.com/a52c6e6f-8c38-424a-b66b-1901e526c8f1" "currentTime":13.979342 "defaultMuted":false "defaultPlaybackRate":1 "duration":246.66557823129244 "ended":false "error":NULL "loop":false "mozAudioCaptured":false "mozFragmentEnd":246.66557823129244 "muted":false "networkState":2 "networkState_name":"NETWORK_LOADING" "paused":false "playbackRate":1 "played":[ 0:{ "start":0 "end":13.979342 } ] "preload":"" "readyState":4 "seekable":[ 0:{ "start":0 "end":246.665578 } ] "seeking":false "src":"blob:https://www.youtube.com/a52c6e6f-8c38-424a-b66b-1901e526c8f1" "srcObject":NULL "volume":1 } "HTMLVideoElement":{ "height":0 "mozDecodedFrames":1208 "mozFrameDelay":0.0041508604 "mozHasAudio":true "mozPaintedFrames":1195 "mozParsedFrames":1239 "mozPresentedFrames":1201 "videoHeight":1080 "videoWidth":1920 "width":0 } "videoPlaybackQuality":{ "ratio":"100%" "droppedVideoFrames":0 "corruptedVideoFrames":0 } "mozMediaSourceObject":[ 0:{ "sourceBuffers":[ 0:{ "start":0 "end":75.000453 } ] } 1:{ "sourceBuffers":[ 0:{ "start":0 "end":70.933333 } ] } ] "debugInfo":{ "Container Type":"MediaSource" "Audio Decoder(audio/mp4a-latm, 2 channels @ 44.1kHz)":"wmf audio decoder" "Audio Frames Decoded":"1036" "Audio State":"ni=0 no=0 wp=0 demuxr=0 demuxq=0 decoder=0 tt=-1.0 tths=-1 in=690 out=689 qs=1 pending=0 wfd=0 eos=0 ds=0 wfk=0 sid=1" "Video Decoder(video/avc, 1920x1080 @ 60.00)":"wmf hardware video decoder - nv12 (remote)" "Hardware Video Decoding":"enabled" "Video Frames Decoded":"1208 (skipped=0)" "Video State":"ni=0 no=1 wp=0 demuxr=0 demuxq=0 decoder=1 tt=-1.0 tths=-1 in=859 out=842 qs=17 pending:0 wfd=0 eos=0 ds=0 wfk=0 sid=0" "Dumping Data for Demuxer":"19a01797800" "Dumping Audio Track Buffer(audio/mp4)":"mLastAudioTime=16.021768" "Audio Track Buffer Details":"NumSamples=3230 Size=2204932 Evictable=470519 NextGetSampleIndex=690 NextInsertionIndex=3230" "Audio Track Buffered":"ranges=[(0.000000, 75.000453)]" "Dumping Video Track Buffer(video/mp4)":"mLastVideoTime=14.350000" "Video Track Buffer Details":"NumSamples=4256 Size=52572086 Evictable=7531821 NextGetSampleIndex=859 NextInsertionIndex=4256" "Video Track Buffered":"ranges=[(0.000000, 70.933333)]" "Compositor dropped frame(including when element's invisible)":"11" "MediaDecoder=19a00e454c0":"channels=2 rate=44100 hasAudio=1 hasVideo=1 mPlayState=PLAYING" "MDSM":"duration=246665578 GetMediaTime=13979342 GetClock=13992426 mMediaSink=19a017f1870 state=DECODING mPlayState=3 mSentFirstFrameLoadedEvent=1 IsPlaying=1 mAudioStatus=idle mVideoStatus=pending mDecodedAudioEndTime=15998547 mDecodedVideoEndTime=14033333 mAudioCompleted=0 mVideoCompleted=0 mIsPrerolling=0" "VideoSink":"IsStarted=1 IsPlaying=1 VideoQueue(finished=0 size=3) mVideoFrameEndTime=14000000 mHasVideo=1 mVideoSinkEndRequest.Exists()=0 mEndPromiseHolder.IsEmpty()=0" "AudioSinkWrapper":"IsStarted=1 IsPlaying=1 AudioEnded=0" } }
Flags: needinfo?(danezor73)
Does that help? Or did I mess something up again?
This shows that almost no frames were dropped to play that vp9 vidéo. However it was using the software decoder when apparently your graphic card can do vp9 in hardware. Did you manually disable hardware decoding? Have you changed any configuration since you earlier posted that report? Can you post the output of about:support?
(In reply to Jean-Yves Avenard [:jya] from comment #36) > This shows that almost no frames were dropped to play that vp9 vidéo. > However it was using the software decoder when apparently your graphic card > can do vp9 in hardware. > Did you manually disable hardware decoding? Have you changed any > configuration since you earlier posted that report? > > Can you post the output of about:support? Visually, it was dropping frames, though. Check the h.264 video as well if you haven't. I don't know if something else might show up there, or if I have to run the Devtools-Media captures for longer. All I know is I played them for roughly 10 seconds, and during that time I did notice stuttering. Hardware acceleration/decoding should not be touched. This should be on a fresh profile. Here's my about:support copy/paste: { "application": { "name": "Firefox", "osVersion": "Windows_NT 10.0", "version": "62.0.3", "buildID": "20181001155545", "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0", "safeMode": false, "updateChannel": "release", "supportURL": "https://support.mozilla.org/1/firefox/62.0.3/WINNT/en-US/", "numTotalWindows": 1, "numRemoteWindows": 1, "remoteAutoStart": true, "currentContentProcesses": 2, "maxContentProcesses": 4, "autoStartStatus": 1, "policiesStatus": 0, "keyGoogleFound": true, "keyMozillaFound": true }, "securitySoftware": { "registeredAntiVirus": "", "registeredAntiSpyware": "", "registeredFirewall": "" }, "modifiedPreferences": { "browser.cache.disk.filesystem_reported": 1, "browser.cache.disk.smart_size.first_run": false, "browser.cache.disk.capacity": 1048576, "browser.places.smartBookmarksVersion": 8, "browser.sessionstore.upgradeBackup.latestBuildID": "20181001155545", "browser.startup.homepage_override.mstone": "62.0.3", "browser.startup.homepage_override.buildID": "20181001155545", "browser.tabs.warnOnClose": false, "browser.urlbar.placeholderName": "Google", "browser.urlbar.timesBeforeHidingSuggestionsHint": 0, "dom.push.userAgentID": "8fcd3f8ab68546b1924b664c3981fcac", "dom.forms.autocomplete.formautofill": true, "extensions.lastAppVersion": "62.0.3", "layers.mlgpu.sanity-test-failed": false, "media.gmp-widevinecdm.lastUpdate": 1539642418, "media.gmp-gmpopenh264.lastUpdate": 1539642417, "media.gmp.storage.version.observed": 1, "media.hardware-video-decoding.failed": false, "media.gmp-widevinecdm.version": "1.4.9.1088", "media.gmp-gmpopenh264.abi": "x86_64-msvc-x64", "media.wmf.vp9.enabled": false, "media.gmp-manager.lastCheck": 1539642448, "media.gmp-widevinecdm.abi": "x86_64-msvc-x64", "media.benchmark.vp9.versioncheck": 4, "media.benchmark.vp9.fps": 202, "media.gmp-gmpopenh264.version": "1.7.1", "media.gmp-manager.buildID": "20180830143136", "network.predictor.cleaned-up": true, "network.cookie.prefsMigrated": true, "places.history.expiration.transient_current_max_pages": 112348, "plugin.disable_full_page_plugin_for_types": "application/pdf", "privacy.sanitize.pending": "[{\"id\":\"newtab-container\",\"itemsToClear\":[],\"options\":{}}]", "security.sandbox.content.tempDirSuffix": "{e0e2dc67-b48e-4d87-80df-3dd6a9a94a1e}", "services.sync.declinedEngines": "", "services.sync.engine.addresses.available": true, "signon.importedFromSqlite": true, "ui.osk.debug.keyboardDisplayReason": "IKPOS: Keyboard presence confirmed." }, "lockedPreferences": {}, "media": { "currentAudioBackend": "wasapi", "currentMaxAudioChannels": 2, "currentPreferredSampleRate": 48000, "audioOutputDevices": [ { "name": "Headphones (High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_103C8496&REV_1000\\5&2c96d25&0&0001", "vendor": "", "type": 2, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 0, "defaultRate": 0, "maxRate": 0, "minRate": 0, "maxLatency": 0, "minLatency": 0 }, { "name": "Digital Audio (HDMI) (High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_1002&DEV_AA01&SUBSYS_00AA0100&REV_1007\\5&21193842&0&0001", "vendor": "", "type": 2, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 0, "defaultRate": 0, "maxRate": 0, "minRate": 0, "maxLatency": 0, "minLatency": 0 }, { "name": "Speakers (High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_103C8496&REV_1000\\5&2c96d25&0&0001", "vendor": "", "type": 2, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 2, "defaultRate": 48000, "maxRate": 48000, "minRate": 48000, "maxLatency": 0, "minLatency": 0 }, { "name": "1 - Digital Display Audio (AMD High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_1002&DEV_AA01&SUBSYS_00AA0100&REV_1007\\5&21193842&0&0001", "vendor": "", "type": 2, "state": 1, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 0, "defaultRate": 0, "maxRate": 0, "minRate": 0, "maxLatency": 0, "minLatency": 0 }, { "name": "Speaker/Headphone (Realtek High Definition Audio)", "groupId": "HDAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_103C8496&REV_1000\\5&2c96d25&0&0001", "vendor": "", "type": 2, "state": 2, "preferred": 7, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 2, "defaultRate": 48000, "maxRate": 48000, "minRate": 48000, "maxLatency": 480, "minLatency": 144 }, { "name": "Internal AUX Jack (High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_103C8496&REV_1000\\5&2c96d25&0&0001", "vendor": "", "type": 2, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 0, "defaultRate": 0, "maxRate": 0, "minRate": 0, "maxLatency": 0, "minLatency": 0 } ], "audioInputDevices": [ { "name": "Microphone (High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_103C8496&REV_1000\\5&2c96d25&0&0001", "vendor": "", "type": 1, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 0, "defaultRate": 0, "maxRate": 0, "minRate": 0, "maxLatency": 0, "minLatency": 0 }, { "name": "Internal AUX Jack (AMD High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_1002&DEV_AA01&SUBSYS_00AA0100&REV_1007\\5&21193842&0&0001", "vendor": "", "type": 1, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 0, "defaultRate": 0, "maxRate": 0, "minRate": 0, "maxLatency": 0, "minLatency": 0 }, { "name": "Internal AUX Jack (High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_1002&DEV_AA01&SUBSYS_00AA0100&REV_1007\\5&21193842&0&0001", "vendor": "", "type": 1, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 0, "defaultRate": 0, "maxRate": 0, "minRate": 0, "maxLatency": 0, "minLatency": 0 }, { "name": "Microphone (High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_103C8496&REV_1000\\5&2c96d25&0&0001", "vendor": "", "type": 1, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 2, "defaultRate": 48000, "maxRate": 48000, "minRate": 48000, "maxLatency": 0, "minLatency": 0 }, { "name": "Microphone Array (Realtek High Definition Audio)", "groupId": "HDAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_103C8496&REV_1000\\5&2c96d25&0&0001", "vendor": "", "type": 1, "state": 2, "preferred": 7, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 2, "defaultRate": 48000, "maxRate": 48000, "minRate": 48000, "maxLatency": 480, "minLatency": 144 }, { "name": "Stereo Mix (Realtek High Definition Audio)", "groupId": "HDAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_103C8496&REV_1000\\5&2c96d25&0&0001", "vendor": "", "type": 1, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 2, "defaultRate": 48000, "maxRate": 48000, "minRate": 48000, "maxLatency": 0, "minLatency": 0 }, { "name": "Internal AUX Jack (High Definition Audio Device)", "groupId": "HDAUDIO\\FUNC_01&VEN_10EC&DEV_0285&SUBSYS_103C8496&REV_1000\\5&2c96d25&0&0001", "vendor": "", "type": 1, "state": 0, "preferred": 0, "supportedFormat": 4112, "defaultFormat": 4096, "maxChannels": 0, "defaultRate": 0, "maxRate": 0, "minRate": 0, "maxLatency": 0, "minLatency": 0 } ] }, "javaScript": { "incrementalGCEnabled": true }, "accessibility": { "isActive": true, "forceDisabled": 0, "handlerUsed": true, "instantiator": "UNKNOWN|" }, "libraryVersions": { "NSPR": { "minVersion": "4.19", "version": "4.19" }, "NSS": { "minVersion": "3.38", "version": "3.38" }, "NSSUTIL": { "minVersion": "3.38", "version": "3.38" }, "NSSSSL": { "minVersion": "3.38", "version": "3.38" }, "NSSSMIME": { "minVersion": "3.38", "version": "3.38" } }, "userJS": { "exists": false }, "intl": { "localeService": { "requested": [ "en-US" ], "available": [ "en-US" ], "supported": [ "en-US" ], "regionalPrefs": [ "en-US" ], "defaultLocale": "en-US" }, "osPrefs": { "systemLocales": [ "en-US" ], "regionalPrefsLocales": [ "en-US" ] } }, "crashes": { "submitted": [], "pending": 0 }, "sandbox": { "contentSandboxLevel": 5, "effectiveContentSandboxLevel": 5 }, "graphics": { "numTotalWindows": 1, "numAcceleratedWindows": 1, "windowLayerManagerType": "Direct3D 11", "windowLayerManagerRemote": true, "windowUsingAdvancedLayers": true, "adapterDescription": "AMD Radeon(TM) RX Vega 10 Graphics", "adapterVendorID": "0x1002", "adapterDeviceID": "0x15dd", "adapterSubsysID": "00000000", "adapterRAM": "1024", "adapterDrivers": "aticfx64 aticfx64 aticfx64 amdxc64 aticfx32 aticfx32 aticfx32 amdxc32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a", "driverVersion": "23.20.821.2560", "driverDate": "7-26-2018", "adapterDescription2": "", "adapterVendorID2": "", "adapterDeviceID2": "", "adapterSubsysID2": "", "adapterRAM2": "", "adapterDrivers2": "", "driverVersion2": "", "driverDate2": "", "isGPU2Active": false, "direct2DEnabled": true, "directWriteEnabled": true, "directWriteVersion": "10.0.17763.1", "usesTiling": false, "contentUsesTiling": false, "offMainThreadPaintEnabled": true, "offMainThreadPaintWorkerCount": 3, "webgl1Renderer": "Google Inc. -- ANGLE (AMD Radeon(TM) RX Vega 10 Graphics Direct3D11 vs_5_0 ps_5_0)", "webgl1Version": "OpenGL ES 2.0 (ANGLE 2.1.0.595ccab4acc3)", "webgl1DriverExtensions": "GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object ", "webgl1Extensions": "ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_sRGB EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_element_index_uint OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context", "webgl1WSIInfo": "EGL_VENDOR: Google Inc. (adapter LUID: 000000000001251d)\nEGL_VERSION: 1.4 (ANGLE 2.1.0.595ccab4acc3)\nEGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled \nEGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses ", "webgl2Renderer": "Google Inc. -- ANGLE (AMD Radeon(TM) RX Vega 10 Graphics Direct3D11 vs_5_0 ps_5_0)", "webgl2Version": "OpenGL ES 3.0 (ANGLE 2.1.0.595ccab4acc3)", "webgl2DriverExtensions": "GL_ANGLE_client_arrays GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_multiview GL_ANGLE_pack_reverse_row_order GL_ANGLE_program_cache_control GL_ANGLE_request_extension GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_color_buffer_float_rgb GL_CHROMIUM_color_buffer_float_rgba GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc_srgb GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_surfaceless_context GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object ", "webgl2Extensions": "EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context", "webgl2WSIInfo": "EGL_VENDOR: Google Inc. (adapter LUID: 000000000001251d)\nEGL_VERSION: 1.4 (ANGLE 2.1.0.595ccab4acc3)\nEGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_CHROMIUM_sync_control EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled \nEGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses ", "info": { "AzureCanvasBackend (UI Process)": "skia", "AzureFallbackCanvasBackend (UI Process)": "cairo", "AzureContentBackend (UI Process)": "skia", "AzureCanvasBackend": "direct2d 1.1", "AzureContentBackend": "direct2d 1.1", "AzureCanvasAccelerated": 0, "ApzWheelInput": 1, "ApzTouchInput": 1, "ApzDragInput": 1, "ApzKeyboardInput": 1, "ApzAutoscrollInput": 1 }, "featureLog": { "features": [ { "name": "HW_COMPOSITING", "description": "Compositing", "status": "available", "log": [ { "type": "default", "status": "available" } ] }, { "name": "D3D11_COMPOSITING", "description": "Direct3D11 Compositing", "status": "available", "log": [ { "type": "default", "status": "available" } ] }, { "name": "DIRECT2D", "description": "Direct2D", "status": "available", "log": [ { "type": "default", "status": "available" } ] }, { "name": "D3D11_HW_ANGLE", "description": "Direct3D11 hardware ANGLE", "status": "available", "log": [ { "type": "default", "status": "available" } ] }, { "name": "GPU_PROCESS", "description": "GPU Process", "status": "available", "log": [ { "type": "default", "status": "available" } ] }, { "name": "WEBRENDER", "description": "WebRender", "status": "opt-in", "log": [ { "type": "default", "status": "opt-in", "message": "WebRender is an opt-in feature" } ] }, { "name": "OMTP", "description": "Off Main Thread Painting", "status": "available", "log": [ { "type": "default", "status": "available" } ] }, { "name": "ADVANCED_LAYERS", "description": "Advanced Layers", "status": "available", "log": [ { "type": "default", "status": "available" } ] } ], "fallbacks": [] }, "crashGuards": [] }, "extensions": [ { "name": "Media Panel", "version": "2.5", "isActive": true, "id": "{68d048f4-9449-4c97-8425-6dac7f743b14}" }, { "name": "User search study", "version": "1.8.2", "isActive": true, "id": "search-nudges@shield.mozilla.org" } ], "features": [ { "name": "Activity Stream", "version": "2018.08.22.1219-93becf29", "id": "activity-stream@mozilla.org" }, { "name": "Application Update Service Helper", "version": "2.0", "id": "aushelper@mozilla.org" }, { "name": "Firefox Screenshots", "version": "33.0.0", "id": "screenshots@mozilla.org" }, { "name": "Form Autofill", "version": "1.0", "id": "formautofill@mozilla.org" }, { "name": "Photon onboarding", "version": "1.0", "id": "onboarding@mozilla.org" }, { "name": "Pocket", "version": "1.0.5", "id": "firefox@getpocket.com" }, { "name": "Web Compat", "version": "2.0", "id": "webcompat@mozilla.org" }, { "name": "WebCompat Reporter", "version": "1.0.0", "id": "webcompat-reporter@mozilla.org" } ] }
Reset media.wmf.vp9.enabled back to its default (true)
(In reply to Jean-Yves Avenard [:jya] from comment #38) > Reset media.wmf.vp9.enabled back to its default (true) This had no effect. As expected, no effect on the h.264 video, and the vp9 video still continued to visibly stutter.
I think I'm done trying to deal with this. Chrome works fine, so I'll just permanently switch browsers.
(In reply to danezor73 from comment #40) > I think I'm done trying to deal with this. Chrome works fine, so I'll just > permanently switch browsers. It's unfortunate. Using Firefox Nightly or Beta 64, if you enabled web render, would it still occur? gfx.webrender.enabled to true
I can reproduce the issue on Nightly65.0a1 with/without WebRender windows10, but not Chrome dev72.0.3590.0.
(In reply to Alice0775 White from comment #42) > I can reproduce the issue on Nightly65.0a1 with/without WebRender windows10, > but not Chrome dev72.0.3590.0. You have an AMD vega 10 device? This bug is about those AMD gpus and appears related to the drivers themselves. AMD is also working on a fix.
Summary: 1080p 60 FPS YouTube Videos Stutter Noticeably → 1080p 60 FPS YouTube Videos Stutter Noticeably on AMD vega 10
(In reply to Jean-Yves Avenard [:jya] from comment #43) > (In reply to Alice0775 White from comment #42) > > I can reproduce the issue on Nightly65.0a1 with/without WebRender windows10, > > but not Chrome dev72.0.3590.0. > > You have an AMD vega 10 device? > > This bug is about those AMD gpus and appears related to the drivers > themselves. AMD is also working on a fix. Maybe my issue is another problem. Because my PC is legacy AMD gpu and it is much better to playback better if disable HWA.
(In reply to Jean-Yves Avenard [:jya] from comment #41) > (In reply to danezor73 from comment #40) > > I think I'm done trying to deal with this. Chrome works fine, so I'll just > > permanently switch browsers. > > It's unfortunate. > > Using Firefox Nightly or Beta 64, if you enabled web render, would it still > occur? > gfx.webrender.enabled to true Enabling web render on a fresh Nightly install didn't change anything, either. Still visible stuttering on both the h.264 and vp9 videos.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: