thick green line on the right and/or bottom of the HTML5 video

RESOLVED FIXED in Firefox 56

Status

()

defect
RESOLVED FIXED
2 years ago
2 years ago

People

(Reporter: paranoid739, Assigned: jya, NeedInfo)

Tracking

({regression})

55 Branch
mozilla57
x86
Windows 10
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox52 unaffected, firefox-esr52 unaffected, firefox53 unaffected, firefox54 unaffected, firefox55+ wontfix, firefox56+ fixed, firefox57+ fixed)

Details

()

Attachments

(10 attachments)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0
Build ID: 20170329071901



Actual results:

There is a thick green line on the right and/or bottom of every html5 video in Nightly (55.0a1 (2017-03-29) (64-bit)). The problem occurs only in Nightly (I checked Firefox 52, Developer Edition, Edge, IE, Chrome) and only in html5 videos (Flash is working fine).

OS Name	Microsoft Windows 10 Enterprise
Version	10.0.14393 Build 14393
Adapter	NVIDIA GeForce GT 220
Driver 	9.18.13.4192
I can't reproduce it with the latest Nightly 32b/64b on Win 7. I remember a similar bug in the past (green strip when decoding the video), I guess it's related to the machine/drivers.

1) could you type about:support in the location bar and attach the "graphics" section.

2) does it happen with a MP4 video played directly with the native player? http://html5demos.com/assets/dizzy.mp4

3) could you download the tool mozregression to narrow down a regression range in FF55, it would help to find the regressing bugfix.
See http://mozilla.github.io/mozregression/ for details.
Run the command "mozregression --good=52" then for each build launched, make the test and enter if it's good or bad. After the run, copy here the final pushlog from the repo mozilla-inbound.
Component: Untriaged → Audio/Video: Playback
Flags: needinfo?(paranoid739)
Product: Firefox → Core
Thanks for the reply!

1) https://pastebin.com/hMdKit89 (Could not find how to attach here)

2) Yes, it does. http://i.imgur.com/D84IFfV.png

3) https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=9a09749bb23088cd008d05194c5abe8c4f1fb838&tochange=0d4603ebe97ee5e364be000ebfa5e5121be17e11
"Looks like the following bug has the  changes which introduced the regression:
https://bugzilla.mozilla.org/show_bug.cgi?id=1340398"
Flags: needinfo?(paranoid739)
ty for the info.
Blocks: 1340398
Status: UNCONFIRMED → NEW
Has STR: --- → yes
Ever confirmed: true
Flags: needinfo?(bas)
OS: Unspecified → Windows 10
Hardware: Unspecified → x86
Tracking 55+ for this regression.
I can't reproduce this on any of my machines either, could you post your about:support graphics section here, it looks like we may have to disable NV12 textures for this class of hardware if we can't reproduce this on a machine in-house.
Flags: needinfo?(bas)
Of course.


Graphics
--------

Features
Compositing: Direct3D 11
Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled
WebGL 1 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 0000000000006de8) EGL_VERSION: 1.4 (ANGLE 2.1.0.2a250c8a0e15) EGL_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_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
WebGL 1 Driver Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GT 220 Direct3D11 vs_4_1 ps_4_1)
WebGL 1 Driver Version: OpenGL ES 2.0 (ANGLE 2.1.0.2a250c8a0e15)
WebGL 1 Driver Extensions: 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_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_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_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_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
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug_get 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_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc MOZ_WEBGL_depth_texture
WebGL 2 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 0000000000006de8) EGL_VERSION: 1.4 (ANGLE 2.1.0.2a250c8a0e15) EGL_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_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
WebGL 2 Driver Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GT 220 Direct3D11 vs_4_1 ps_4_1)
WebGL 2 Driver Version: OpenGL ES 3.0 (ANGLE 2.1.0.2a250c8a0e15)
WebGL 2 Driver Extensions: 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_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_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_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_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
WebGL 2 Extensions: EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug_get OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc
Audio Backend: wasapi
Direct2D: true
DirectWrite: true (10.0.14393.0)
GPU #1
Active: Yes
Description: NVIDIA GeForce GT 220
Vendor ID: 0x10de
Device ID: 0x0a20
Driver Version: 9.18.13.4192
Driver Date: 10-13-2015
Drivers: nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Subsys ID: 00000000
RAM: 1024

Diagnostics
AzureCanvasAccelerated: 0
AzureCanvasBackend: Direct2D 1.1
AzureCanvasBackend (UI Process): skia
AzureContentBackend: Direct2D 1.1
AzureContentBackend (UI Process): skia
AzureFallbackCanvasBackend (UI Process): cairo
GPUProcessPid: 8468
GPUProcess: Terminate GPU Process
Decision Log
WEBRENDER:
opt-in by default: WebRender is an opt-in feature
bas - can you set up next-steps here?  Apparently it's a GT220
Component: Audio/Video: Playback → Graphics
Flags: needinfo?(bas)
(In reply to Randell Jesup [:jesup] from comment #7)
> bas - can you set up next-steps here?  Apparently it's a GT220

That's an old card. We could specifically blacklist the usage of NV12 textures here, or we could blacklist acceleration on the card altogether. Media folks should probably decide what's best.
Flags: needinfo?(bas) → needinfo?(jyavenard)
(In reply to Bas Schouten (:bas.schouten) from comment #8)
> That's an old card. We could specifically blacklist the usage of NV12
> textures here, or we could blacklist acceleration on the card altogether.
> Media folks should probably decide what's best.

Does setting media.windows-media-foundation.allow-d3d11-dxva=false fix the issue?
Flags: needinfo?(paranoid739)
no way something is amiss with our handling of NV12 frames?
Flags: needinfo?(jyavenard)
(In reply to Anthony Jones (:kentuckyfriedtakahe, :k17e) from comment #9)
> (In reply to Bas Schouten (:bas.schouten) from comment #8)
> > That's an old card. We could specifically blacklist the usage of NV12
> > textures here, or we could blacklist acceleration on the card altogether.
> > Media folks should probably decide what's best.
> 
> Does setting media.windows-media-foundation.allow-d3d11-dxva=false fix the
> issue?

Yes, it does. Sorry for the late reply.
Flags: needinfo?(paranoid739)
Base, sounds like we should blocklist this setup?
Assignee: nobody → bas
Flags: needinfo?(bas)
(In reply to Jean-Yves Avenard [:jya] from comment #10)
> no way something is amiss with our handling of NV12 frames?

Considering this is the -only- place where I've seen this reported, highly unlikely.. If I did something which triggers 'undefined' behavior you'd expect at least some more reports.

(In reply to Milan Sreckovic [:milan] from comment #12)
> Base, sounds like we should blocklist this setup?

Yes, as I said, whether to add a way to blocklist just NV12 textures just for this (I haven't since seen any NV12 texture specific bugs appear), that's a question for the media team.
Flags: needinfo?(bas)
NI Anthony to deal with the blocking.
Flags: needinfo?(ajones)
A reddit user [1] has reported a green bar at the bottom of their videos after updating to Fx 55 Beta.

> After beta channel updated to 55, I've been seeing thick green line across the bottom of 
> all MP4 videos. Weird thing is, it's fine when I start in Safe mode. So I disabled my 10 
> add-ons one by one to see if it's fixed and it didn't. Even after disabling them all. Even 
> weirder is that I got the same problem after I created and tested on a fresh new profile.
> 
> I looked at about:config and reset every entry that start with "media.", still no fix.
> 
> Does Safe Mode do anything other than disabling all addons?

[1] https://www.reddit.com/r/firefox/comments/6hgutq/green_bottomborder_on_mp4_videos_ff_55_beta/
See Also: → 1374150
Flags: needinfo?(ajones) → needinfo?(gsquelart)
Duplicate of this bug: 1374581
See Also: 1374150
Duplicate of this bug: 1374150
The graphics card from the duplicate bug 1374150 is a NVIDIA GeForce 9600 GT.

This bug was also reported at https://www.reddit.com/r/firefox/comments/6hxehs/all_of_a_sudden_all_videos_have_a_horizontal/ .

It seems like this is something we could detect with the startup sanity testing. Is that sanity test exercising the NV12 decoding path?
Flags: needinfo?(matt.woodrow)
Yes it is, and yes it should be.

It's possible that the test video isn't sufficient to detect this bug though, and we might want to change it (or add a second test video).

Do we have any developer that can reproduce this?
Flags: needinfo?(matt.woodrow)
(In reply to Matt Woodrow (:mattwoodrow) from comment #19)
> Do we have any developer that can reproduce this?

I'm not aware of anybody. Bas, which graphics cards from the list at https://wiki.mozilla.org/QA/Platform/Graphics/Inventory are most likely to reproduce this issue?
Flags: needinfo?(bas)
NVIDIA GeForce 9600 GT is a G94b, which is a Tesla
NVIDIA GeForce GT 220 is a G216, which is also a Tesla
Nvidia gtx 260 is a Tesla as well.
GeForce 9500GT (which doesn’t seem to exist) is also a Tesla.

So we should probably check the Tesla table.

The reddit thread has a driver version number, 342.01.
Flags: needinfo?(bas)
I can reproduce this on the first machine that I tried, which has an NVIDIA Quadro FX 880M, on https://9gag.com/gag/ajNQbP0 .

Edge displays the video correctly, we display a thick green border on the bottom and right edges.
FYI: Coincidentally, based on crash reports we have just blocked D3D11 video decoding for the driver version given in comment 6 (see bug 1374148).
It landed in Nightly 56.0a1 2017-06-21, and should be uplifted to beta 55 soon.

Since it's targeting decoding, I'm not sure it will help with this issue here if it's due to other D3D issues, but just in case:
Markus, would you be able to try the latest Nightly (or m-c), please?
Flags: needinfo?(gsquelart) → needinfo?(mstange)
The driver version that I installed on our test machine is 21.21.13.4200 (and it shows the green borders). This version does not get blocked by today's nightly, so D3D11 is still enabled.

I can try to install the blocked driver but I think we have a pretty good idea of what's going to happen.
Flags: needinfo?(mstange)
Once you have a patch to block the affected hardware let's verify it works and uplift to beta.
I tested this on a fermi device (DevID 0x0dfa) and did not see the bug.
Yes! I have too problem with only HTML5 video player(Firefox 55.0beta6) & used latest driver AMD 17.4.4 (AMD A10 9600P 2.4Ghz/15.6"/1920x1080/6Gb/1Tb/Radeon R5+R7 M440). After media.windows-media-foundation.allow-d3d11-dxva = false or disable Hardware Acceleration (settings Firefox)  - this is fix my problem. (Sorry my bad English)
Flags: needinfo?(antonlifirenko)
(In reply to paranoid739 from comment #6)
> GPU #1
> Active: Yes
> Description: NVIDIA GeForce GT 220
> Vendor ID: 0x10de
> Device ID: 0x0a20
> Driver Version: 9.18.13.4192
> Driver Date: 10-13-2015
> Drivers: nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
> Subsys ID: 00000000
> RAM: 1024
> 
> Diagnostics
> AzureCanvasAccelerated: 0
> AzureCanvasBackend: Direct2D 1.1
> AzureCanvasBackend (UI Process): skia
> AzureContentBackend: Direct2D 1.1
> AzureContentBackend (UI Process): skia
> AzureFallbackCanvasBackend (UI Process): cairo
> GPUProcessPid: 8468
> GPUProcess: Terminate GPU Process
> Decision Log
> WEBRENDER:
> opt-in by default: WebRender is an opt-in feature

By chance did you ever try updating to driver 342.01, from Dec 2016? (http://www.geforce.com/drivers/results/112596)
(In reply to Markus Stange [:mstange] from comment #21)
> NVIDIA GeForce 9600 GT is a G94b, which is a Tesla
> NVIDIA GeForce GT 220 is a G216, which is also a Tesla
> Nvidia gtx 260 is a Tesla as well.
> GeForce 9500GT (which doesn’t seem to exist) is also a Tesla.
> 
> So we should probably check the Tesla table.
> 
> The reddit thread has a driver version number, 342.01.

Curious if this is Win 10 Specific. I'm still running a Geforce 210 on 342.01 drivers and I've never see the green bar the OP talks about.
(In reply to Arthur K. from comment #28)
> By chance did you ever try updating to driver 342.01, from Dec 2016?
> (http://www.geforce.com/drivers/results/112596)
It was updated automatically, apparently, but bug is still there.

Driver Version: 21.21.13.4201
Driver Date: 11-14-2016

Screenshot - http://imgur.com/a/MrOPT
about:support - https://pastebin.com/qu4gPyRe


(In reply to Arthur K. from comment #29)
> Curious if this is Win 10 Specific. I'm still running a Geforce 210 on
> 342.01 drivers and I've never see the green bar the OP talks about.
I can install and test on different systems, if you want, just tell me which ones.
(In reply to paranoid739 from comment #30)
> (In reply to Arthur K. from comment #28)
> > By chance did you ever try updating to driver 342.01, from Dec 2016?
> > (http://www.geforce.com/drivers/results/112596)
> It was updated automatically, apparently, but bug is still there.
> 
> Driver Version: 21.21.13.4201
> Driver Date: 11-14-2016
> 
> Screenshot - http://imgur.com/a/MrOPT
> about:support - https://pastebin.com/qu4gPyRe
> 
> 
> (In reply to Arthur K. from comment #29)
> > Curious if this is Win 10 Specific. I'm still running a Geforce 210 on
> > 342.01 drivers and I've never see the green bar the OP talks about.
> I can install and test on different systems, if you want, just tell me which
> ones.

My hunch is if you're on 342.01 on Win 10 it's not going to help. But you have a Win 7 system to test against? Out of curiosity, what happens if you try fresh with something like Portable Firefox 54?
(In reply to Arthur K. from comment #31)
I've tested and it seems unaffected on Win 7. Screenshot - http://imgur.com/a/8MW2Z

> Out of curiosity, what happens if you try fresh with something like Portable Firefox 54?
On Win 10
Portable Firefox 54.0.1 20170628075643 -> unaffected
Portable Firefox 55.0b6	20170629005143 -> affected
Portable Firefox 56.0a1	20170701030203 -> affected
(if I understood you correctly)
(In reply to paranoid739 from comment #32)
> (In reply to Arthur K. from comment #31)
> I've tested and it seems unaffected on Win 7. Screenshot -
> http://imgur.com/a/8MW2Z
> 
> > Out of curiosity, what happens if you try fresh with something like Portable Firefox 54?
> On Win 10
> Portable Firefox 54.0.1 20170628075643 -> unaffected
> Portable Firefox 55.0b6	20170629005143 -> affected
> Portable Firefox 56.0a1	20170701030203 -> affected
> (if I understood you correctly)

Yes, you did. So in this case it looks like something in 55 is borked. Thanks for testing. Do you know how to find a regression window using Mozgression?
the regression range was already provided in comment 2
(In reply to Jean-Yves Avenard [:jya] from comment #34)
> the regression range was already provided in comment 2

<slaps forehead> Indeed. Apologies.
Not sure if it's also happen on APU videocard AMD R5 from anonymous user's report.
paranoid739, 
Just want to double confirm that you can still see this problem on the nightly with the patch landed in bug 1374148 per comment 23, right?
Flags: needinfo?(paranoid739)
(In reply to Blake Wu [:bwu][:blakewu] from comment #37)
> paranoid739, 
> Just want to double confirm that you can still see this problem on the
> nightly with the patch landed in bug 1374148 per comment 23, right?

Yes, I can see this problem on Nightly 56a1 2017-07-11. http://imgur.com/a/D09rM
Flags: needinfo?(paranoid739)
(In reply to paranoid739 from comment #38)
> (In reply to Blake Wu [:bwu][:blakewu] from comment #37)
> > paranoid739, 
> > Just want to double confirm that you can still see this problem on the
> > nightly with the patch landed in bug 1374148 per comment 23, right?
> 
> Yes, I can see this problem on Nightly 56a1 2017-07-11.
> http://imgur.com/a/D09rM
Thank you.
Per comment 23, Gerald has blacklisted decoding part. 
Bas,
May we have your help to further check if it is required to blacklist other part, like the usage of NV12 textures as you mentioned on comment 8?
Flags: needinfo?(bas)
(In reply to Blake Wu [:bwu][:blakewu] from comment #40)
> Per comment 23, Gerald has blacklisted decoding part. 
> Bas,
> May we have your help to further check if it is required to blacklist other
> part, like the usage of NV12 textures as you mentioned on comment 8?

Yeah, from the testing I've done we need to disable the usage of NV12 textures on hardware based on NVidia's Tesla architecture on Windows 10.
Flags: needinfo?(bas)
I test with nvidia gt210 and driver 21.21.13.4201 at win10, but I can't see the green area for the video from comment 22: https://9gag.com/gag/ajNQbP0
I could reproduce the green line with nvidia gt210 and the firefox55(20170329071901) at win10. When, I turn to use the latest nightly, the green line issue is fixed. So, the blacklist works.
But I'm still curious about the green line problem. I will dump the decoded buffer in the dxva decoder and check if we have the green line from the decoder's output.
I'm having the same problem of FF55 stable (64bit) on Windows 10. Nvidia GTX 260 with latest drivers available (342.01)

I was able to remove the green lines by setting media.windows-media-foundation.allow-d3d11-dxva to false
Same issue on FF55-x86 (stable) on Windows 10 x86 on NVidia GT218.
Same issue on FF55-x86 (stable) on Windows 10 x64 on AMD HD7660G.

Here are the steps to reproduce the issue:
media.wmf.disable-d3d11-for-dlls = ""
media.wmf.disable-d3d9-for-dlls = ""
media.wmf.skip-blacklist = true (optional?)
media.hardware-video-decoding.force-enabled = true

The issue goes away when:
media.windows-media-foundation.allow-d3d11-dxva = false

To all appearance this is the consequence of https://bugzilla.mozilla.org/show_bug.cgi?id=1340398
Duplicate of this bug: 1389359
I also have this bug since firefox 55 on W10 with Intel HD 3000.
This caused me BSoD from Intel Driver twice when I was on facebook (where there are a lot of videos playing)
And on some videos, there are much more glitches than a simple green line (video all green, squares, lines...)
Something that I did not see yet in this bugreport is that in my W10 with GeForce GT 220 I do get the green bands in FF 55.0.2 64 bits, but there are no green bands in FF 32 bits (current or older). All latest updates applied for OS, FF, and drivers.
Been having this issues since FF55 through latest 57, no problem with release or other browsers and players. Setting media.windows-media-foundation.allow-d3d11-dxva to false fixes problem.

GPU is an nVidia Quadro FX770M

Graphics
Features
Compositing	Direct3D 11 (Advanced Layers)
Asynchronous Pan/Zoom	wheel input enabled; scrollbar drag enabled; keyboard enabled
WebGL 1 Driver WSI Info	EGL_VENDOR: Google Inc. (adapter LUID: 0000000000008529)
EGL_VERSION: 1.4 (ANGLE 2.1.0.dec065540d5f)
EGL_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_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource 
EGL_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 
WebGL 1 Driver Renderer	Google Inc. -- ANGLE (NVIDIA Quadro FX 770M Direct3D11 vs_4_0 ps_4_0)
WebGL 1 Driver Version	OpenGL ES 2.0 (ANGLE 2.1.0.dec065540d5f)
WebGL 1 Driver Extensions	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_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_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_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_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 
WebGL 1 Extensions	ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug 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_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc MOZ_WEBGL_depth_texture
WebGL 2 Driver WSI Info	-
WebGL 2 Driver Renderer	WebGL creation failed: 
* Error during ANGLE OpenGL init.
* Error during ANGLE OpenGL init.
* Error during ANGLE OpenGL init.
* Error during ANGLE OpenGL init.
* Error during ANGLE OpenGL init.
* Exhausted GL driver caps.
WebGL 2 Driver Version	-
WebGL 2 Driver Extensions	-
WebGL 2 Extensions	-
Direct2D	true
DirectWrite	true (10.0.16257.1)
GPU #1
Active	Yes
Description	NVIDIA Quadro FX 770M
Vendor ID	0x10de
Device ID	0x065c
Driver Version	21.21.13.4200
Driver Date	10-18-2016
Drivers	nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Subsys ID	30e7103c
RAM	512
Diagnostics
AzureCanvasAccelerated	0
AzureCanvasBackend	Direct2D 1.1
AzureCanvasBackend (UI Process)	skia
AzureContentBackend	Direct2D 1.1
AzureContentBackend (UI Process)	skia
AzureFallbackCanvasBackend (UI Process)	cairo
GPUProcessPid	9956
GPUProcess	
Device Reset	
Decision Log
WEBRENDER	
opt-in by default: WebRender is an opt-in feature
Duplicate of this bug: 1395665
Flags: needinfo?(antonlifirenko)
Flags: in-testsuite-
Flags: in-qa-testsuite-
Flags: in-moztrap-
Flags: a11y-review-
Hope this helps:
I'm having this problem as well.
It's a secondary machine, so I only know the problem exists at least since FF 55, but no exact version.

I'm running a GTX 285 with Win 10 Pro 64bit and 64bit FF 55.0.3
afaik the 285 doesn't support DX 11 (hope that helps)

about:support exported as JSON
https://pastebin.com/Hkunssh7

The following workaround works for me too:
media.windows-media-foundation.allow-d3d11-dxva=false

Disabling hardware acceleration + restarting the browsers also makes the green line go away

The driver version is 342.01 (current version for this plattform)
Will revert the NV12 bug and go back to RGB for now

It seems that the stride size calculation aren't correct
Assignee: bas → jyavenard
I just now tested Win7 on the same machine (installed on a different drive)
It's Win7 32bit Home and it doesn't have the issue at all.
Same driver version, FF version, hw accel enabled and the about:config entry from above is set to true


unlike "dealx" 32bit Firefox on my Win 10 Pro (first machine) doesn't show a green border, which is odd IMO.

I'm wondering how win7 64bit behaves

in-case you keep working on NV12, I'm volunteering to test new versions to help you find the cause, so you can fix it
(In reply to Djfe from comment #54)
> I just now tested Win7 on the same machine (installed on a different drive)
> It's Win7 32bit Home and it doesn't have the issue at all.
> Same driver version, FF version, hw accel enabled and the about:config entry
> from above is set to true
> 
> 
> unlike "dealx" 32bit Firefox on my Win 10 Pro (first machine) doesn't show a
> green border, which is odd IMO.
So, you *think* that H.264 H/W acceleration is enabled in your FF running on Win7 x86.
You know, FF does not show in "about:support" whether H.264 H/W acceleration is enabled anymore.
I know one of the way to check if H.264 H/W acceleration is enabled in FF 55+: assure that "MSE & WebM VP9" is shown as red "!" on https://www.youtube.com/html5
You can try the following in your FF running on Win7 x86:
media.wmf.disable-d3d11-for-dlls = "" (clean this string)
media.wmf.disable-d3d9-for-dlls = "" (clean this string)
media.hardware-video-decoding.force-enabled = true
After that FF will have to enable H.264 H/W acceleration.
Then restart FF 55+ and check http://html5demos.com/assets/dizzy.mp4
(In reply to dealx from comment #55)
> You know, FF does not show in "about:support" whether H.264 H/W acceleration
> is enabled anymore.
> I know one of the way to check if H.264 H/W acceleration is enabled in FF
> 55+: assure that "MSE & WebM VP9" is shown as red "!" on
> https://www.youtube.com/html5

This is no guarantee that H264 HW acceleration is enabled.
There are other criteria used to determine if VP9 is enabled or not, such as the speed of the machine.

You can test if the video is HW accelerated by installing the Media Devtools
https://addons.mozilla.org/en-US/firefox/addon/devtools-media-panel/?src=api

Press Ctrl-Shit-I and then go into the Media tab.
Press the Refresh Button

If the video is HW accelerated you will see the text:
"Hardware Video Decoding": "enabled"
[Tracking Requested - why for this release]: broken video playback on some hardware. A regression introduced in 55.
(In reply to Jean-Yves Avenard [:jya] from comment #56)
> You can test if the video is HW accelerated by installing the Media Devtools
> https://addons.mozilla.org/en-US/firefox/addon/devtools-media-panel/?src=api
> 
> Press Ctrl-****-I and then go into the Media tab.
> Press the Refresh Button
> 
> If the video is HW accelerated you will see the text:
> "Hardware Video Decoding": "enabled"

Thank you.
Installed that DevTools Media Panel. I see no debugInfo. "mozMediaSourceObject" [] is empty.
you must be playing a video in the page
Just out of pure curiosity, does having K-Lite Codec Pack "Basic" installed (https://www.codecguide.com/download_k-lite_codec_pack_basic.htm) help with this issue?
You definitely don't want to install those.
(In reply to Jean-Yves Avenard [:jya] from comment #59)
> you must be playing a video in the page

And I played the video in that page, but no "debugInfo":
[
  {
    "url": "https://html5demos.com/assets/dizzy.mp4",
    "mediaElements": [
      {
        "currentSrc": "http://html5demos.com/assets/dizzy.mp4",
        "currentTime": 6.363469,
        "readyState": 4,
        "videoPlaybackQuality": {
          "ratio": "100%",
          "droppedVideoFrames": 0,
          "corruptedVideoFrames": 0
        },
        "bufferedRanges": [
          {
            "start": 0,
            "end": 24.984671
          }
        ],
        "mozMediaSourceObject": []
      }
    ]
  }
]
Please try the following:

go to about:config
Right click anywhere in the page, select New -> Boolean.

Enter the name:
media.windows-media-foundation.use-nv12-format

Set the value to false.

Restart Firefox.

Try playing a video that typically gives you issue.
Flags: needinfo?(felix.bau)
media.windows-media-foundation.use-nv12-format = true
gives the same (good) result as
media.windows-media-foundation.allow-d3d11-dxva = false
Excellent. What graphic adapter do you have?

You definitely want to prefer the nv12 preference, it gives you full hardware decoding, which the dxva pref will disable.
(In reply to Jean-Yves Avenard [:jya] from comment #65)
> What graphic adapter do you have?

Sorry for the confusion.
I mean setting "media.windows-media-foundation.use-nv12-format" to *false* works similarly to
"media.windows-media-foundation.allow-d3d11-dxva" = false.
That is, turning NV12 *off* helps.

I have 2 different machines having the reported problem since FF 55:
- FF 55.0.3 x86 running on Windows 10 x86 using GPU NVidia ION 2 (GT218), latest GeForce 342.01 driver
- FF 55.0.3 x86 running on Windows 10 x64 using GPU AMD Radeon HD 7660G, latest AMD Catalyst 15.7.1 driver
Those are very old AMD driver. What about using version 17.x?
(In reply to Jean-Yves Avenard [:jya] from comment #67)
> Those are very old AMD driver. What about using version 17.x?

AMD Catalyst 15.7.1 is the latest driver supporting AMD Radeon HD 7660G:
http://support.amd.com/en-us/download/desktop/legacy?product=legacy3&os=Windows%2010%20-%2032
http://support.amd.com/en-us/download/desktop/legacy?product=legacy3&os=Windows%2010%20-%2064

Newer Catalyst 17.x drivers will not be installed for Radeon HD 7660G. AMD had abandoned Trinity series support.
As for "Crimson Edition 16.2.1 Beta", it does not include OpenCL related drivers/software at all, so also unsuitable.
Could you please provide a copy of the graphic section of about:support?

Looking at which devices should be made to use RGB instead of NV12.

thank you
Flags: needinfo?(superwaitsum)
Yes, here is what about:support gives at graphics.

Gráficas
--------

Características
Composición: Direct3D 11 (Advanced Layers)
Encuadro/zoom asíncrono: entrada de rueda de ratón activada; arrastra de barra de desplazamiento habilitado; teclado habilitado; desplazamiento automático habilitado
Información WSI del controlador WebGL 1: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000809f) EGL_VERSION: 1.4 (ANGLE 2.1.0.dec065540d5f) EGL_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_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
Procesador WebGL 1: Google Inc. -- ANGLE (AMD Radeon HD 7660D Direct3D11 vs_5_0 ps_5_0)
Versión del controlador WebGL 1: OpenGL ES 2.0 (ANGLE 2.1.0.dec065540d5f)
Extensiones del controlador WebGL 1: 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_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_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_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_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
Extensiones WebGL 1: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug 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_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc MOZ_WEBGL_depth_texture
Información WSI del controlador WebGL 2: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000809f) EGL_VERSION: 1.4 (ANGLE 2.1.0.dec065540d5f) EGL_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_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
Procesador WebGL2: Google Inc. -- ANGLE (AMD Radeon HD 7660D Direct3D11 vs_5_0 ps_5_0)
Versión del controlador WebGL 2: OpenGL ES 3.0 (ANGLE 2.1.0.dec065540d5f)
Extensiones del controlador WebGL 2: 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_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_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_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_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
Extensiones WebGL 2: EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc
Direct2D: true
DirectWrite: true (6.3.9600.18123)
GPU #1
Activo: Sí
Descripción: AMD Radeon HD 7660D
ID de vendedor: 0x1002
ID de dispositivo: 0x9901
Versión del controlador: 15.300.1025.0
Fecha del controlador: 11-17-2015
Controladores: aticfx64 aticfx64 aticfx64 aticfx32 aticfx32 aticfx32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a atitmm64
ID del subsistema: 00000000
RAM: 1024

Diagnósticos
AzureCanvasAccelerated: 0
AzureCanvasBackend: Direct2D 1.1
AzureCanvasBackend (UI Process): skia
AzureContentBackend: Direct2D 1.1
AzureContentBackend (UI Process): skia
AzureFallbackCanvasBackend (UI Process): cairo
GPUProcessPid: 3444
GPUProcess: Terminar proceso GPU
Device Reset: Reinicio del dispositivo de disparo
Registro de decisiones
WEBRENDER:
opt-in by default: WebRender is an opt-in feature
Flags: needinfo?(superwaitsum)
(In reply to superwaitsum from comment #70)
> Yes, here is what about:support gives at graphics.
> 
> Gráficas
> --------
> 
> Características
> Composición: Direct3D 11 (Advanced Layers)
> Encuadro/zoom asíncrono: entrada de rueda de ratón activada; arrastra de
> barra de desplazamiento habilitado; teclado habilitado; desplazamiento
> automático habilitado
> Información WSI del controlador WebGL 1: EGL_VENDOR: Google Inc. (adapter
> LUID: 000000000000809f) EGL_VERSION: 1.4 (ANGLE 2.1.0.dec065540d5f)
> EGL_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_nv12
> EGL_ANGLE_create_context_webgl_compatibility
> EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
> Procesador WebGL 1: Google Inc. -- ANGLE (AMD Radeon HD 7660D Direct3D11
> vs_5_0 ps_5_0)
> Versión del controlador WebGL 1: OpenGL ES 2.0 (ANGLE 2.1.0.dec065540d5f)
> Extensiones del controlador WebGL 1: 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_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_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_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_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
> Extensiones WebGL 1: ANGLE_instanced_arrays EXT_blend_minmax
> EXT_color_buffer_half_float EXT_frag_depth EXT_shader_texture_lod
> EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug
> 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_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture
> WEBGL_draw_buffers WEBGL_lose_context MOZ_WEBGL_lose_context
> MOZ_WEBGL_compressed_texture_s3tc MOZ_WEBGL_depth_texture
> Información WSI del controlador WebGL 2: EGL_VENDOR: Google Inc. (adapter
> LUID: 000000000000809f) EGL_VERSION: 1.4 (ANGLE 2.1.0.dec065540d5f)
> EGL_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_nv12
> EGL_ANGLE_create_context_webgl_compatibility
> EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
> Procesador WebGL2: Google Inc. -- ANGLE (AMD Radeon HD 7660D Direct3D11
> vs_5_0 ps_5_0)
> Versión del controlador WebGL 2: OpenGL ES 3.0 (ANGLE 2.1.0.dec065540d5f)
> Extensiones del controlador WebGL 2: 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_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_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_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_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
> Extensiones WebGL 2: EXT_color_buffer_float EXT_texture_filter_anisotropic
> EXT_disjoint_timer_query MOZ_debug OES_texture_float_linear
> WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders
> WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc
> Direct2D: true
> DirectWrite: true (6.3.9600.18123)
> GPU #1
> Activo: Sí
> Descripción: AMD Radeon HD 7660D
> ID de vendedor: 0x1002
> ID de dispositivo: 0x9901

awesome thanks.

Great to get this, as for now we were only blocking 0x1022 vendor id.
Dear Mozilla developers, if I were you I would not simply blacklisting every [old] GPU that you're not able to support correctly, otherwise many potential users will go using other browsers.
Honestly I do not understand WHY e.g. "Media Player Classic Home Cinema" etc. works just perfect using H.264 HW acceleration and DXVA while more and more GPU are just "blacklisted" by Mozilla developers.
Also I would like to know how to check whether H.264 HW acceleration is enabled in FF 55+ or not.
Media Panel does not help as it does not show "debugInfo".
(In reply to dealx from comment #83)
> Also I would like to know how to check whether H.264 HW acceleration is
> enabled in FF 55+ or not.
> Media Panel does not help as it does not show "debugInfo".

if using Firefox 57, search for the media devtools in the addons page

if using Firefox 55, install https://addons.mozilla.org/en-US/firefox/addon/about-media/?src=search
the media devtools should work too.

for about:media, open a new tab in the window where the video is playing, go to about:media and look for the video playing. there will be an entry for HW accelerated, showing as enabled or not.

with the media devtools, press ctrl+shift+I, then click on media tab and click on refresh.
Please test using the following build:
Windows 64 bits: https://queue.taskcluster.net/v1/task/TEqujfXpSRS6KKwPRpe9nA/runs/0/artifacts/public/build/install/sea/target.installer.exe

Windows 32 bits: https://queue.taskcluster.net/v1/task/A1BQrLt0T2ex3jZnKEHnyA/runs/0/artifacts/public/build/install/sea/target.installer.exe

I recommend that you make a backup of your profile if you're currently using Firefox 55, as upgrading from 55 to 57 may cause problem if you decide to go back to 55.

In those builds, please reset all preferences back to their default.

Thanks for reporting if the issue of corrupted image is now fixed.

thanks
@dealx they aren't blacklisting every gpu from hardware acceleration in general.
video decoding acceleration will keep on working fine as it is.

What happened: Firefox now uses a different (kind of new) feature from gpus called nv12.
Which for some reasons caused a regression, that the devs are now trying to fix.

Now they found out that the generation of affected gpu's is limited to the tesla generation (for Nvidia gpus(example)).

The first thing they did is:
revert to the way it was before (rgb instead of nv12).

It might be that the affected gpus don't support nv12 or that the driver implementation is faulty.
A good way to ship nv12 to all other browsers, is to blacklist the feature for the gpus on which it doesn't work correctly.
Those gpus will keep on using rgb then instead. (acceleration still works this way)

If they find out, that it's possible to run nv12 correctly on those gpus somehow, then I'm sure they will ship the needed code in the future.
And even if it's just to remove an ugly fallback.

I'm sure nv12 has some advantages, so doing it this way seems reasonable to me.

PS:
If I misunderstood something as well, then don't hesitate to correct me :)

PSS:
"Honestly I do not understand WHY e.g.[...]"
I'm sure they are wondering as well.
Maybe those don't use nv12.
Flags: needinfo?(felix.bau)
(In reply to dealx from comment #82)
> Dear Mozilla developers, if I were you I would not simply blacklisting every
> [old] GPU that you're not able to support correctly, otherwise many
> potential users will go using other browsers.
> Honestly I do not understand WHY e.g. "Media Player Classic Home Cinema"
> etc. works just perfect using H.264 HW acceleration and DXVA while more and
> more GPU are just "blacklisted" by Mozilla developers.

We're not blacklisting GPUs, just the use of NV12 textures. As far the user is concerned, there will be very little downside. This is what Firefox was using prior version 55.

And FWIW, it's not just old GPUs, the problem exists in all drivers prior Crimson 17.1.1

Djfe almost got it right.. however NV12 isn't a new feature, that's how H264 videos are encoded. The windows hardware decoder outputs NV12 data (which is a YUV format).
With the buggy drivers and/or older graphic cards, we must convert this data to RGB before displaying it. 

So for older drivers / old GPU we must do:
Compressed Video -> Decoder -> NV12 Image -> Convert to RGB -> Display RGB Image
for new GPU:
Compressed Video -> Decoder -> NV12 Image -> Display NV12 Image


For more information about YUV data: https://en.wikipedia.org/wiki/YUV
That NV12 is the preferred output format with Windows DXVA: https://msdn.microsoft.com/en-us/library/windows/desktop/dd206750(v=vs.85).aspx#YUV420formats12bitsperpixel
(except that it's buggy with many cards :))
This all looks reasonable, but having to maintain hardcoded lists of device ids and driver versions is a pain (I know we already have precedence, but I'm still sad).

Do these failures show up in the sanity test video (or could we possibly change it again such that they do)?

If so, could we add an extra pixel test to the sanity test that detects this type of failure, and have it just flip the pref?

That way we'd also catch new instances of this problem, and don't need to maintain lists.
We know from AMD that drivers over this particular version no longer have the issue. So we aren't maintaining a list of drivers.
The list of faulty cards is limited and that list won't change anymore as all those devices are obsolete.

Unfortunately, the sanity test doesn't show the problem, it's doesn't happen with all videos. I also don't have access to any of those machines, so developing a working prototype will be extremely difficult. Sourcing those cards today is difficult too.

The only viable alternative today is to disable nv12 altogether. It would be unfortunate, especially on Intel devices with shared memory, not having to do a copy and conversion to rgb, made a big difference.
People with the issue, using Firefox 55 (or 56 and 57) but the prefs back to their default.
Can you play this video :
https://raw.githubusercontent.com/mozilla/gecko-dev/master/toolkit/components/gfx/content/videotest.mp4

And take a screen capture of what it looks like? Thanks
(In reply to Jean-Yves Avenard [:jya] from comment #94)
I tested a few videos: http://i.imgur.com/eHTEe8U.png
Sorry, but your test doesn't speak to me so the mp4 I talked about displayed properly, but not the ez-gif-resize(1).mp4 which does show the problem.

what exactly is this file?
Flags: needinfo?(paranoid739)
(In reply to Jean-Yves Avenard [:jya] from comment #96)
> what exactly is this file?
It's the same video, only resized. Never mind, I wanted to check if bug is still there.
Flags: needinfo?(paranoid739)
(In reply to paranoid739 from comment #97)
> (In reply to Jean-Yves Avenard [:jya] from comment #96)
> > what exactly is this file?
> It's the same video, only resized. Never mind, I wanted to check if bug is
> still there.

Actually, I'm very interested with that video as it exhibits the problem for you.

How did you generate it, or care to share?

thanks.

The bug is still there, the proposed changes haven't been reviewed yet.

but if we could wrap an automated test, it would be much better than a static blacklist.
Comment on attachment 8906372 [details]
Bug 1352016 - P1. Add method to check if NV12 rendering is usable.

https://reviewboard.mozilla.org/r/178082/#review183308
Attachment #8906372 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8906373 [details]
Bug 1352016 - P3. Check if NV12 rendering is usable when allocating D3D11 surface.

https://reviewboard.mozilla.org/r/178084/#review183314
Attachment #8906373 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8906374 [details]
Bug 1352016 - P4. Enable NV12 preference.

https://reviewboard.mozilla.org/r/178086/#review183316
Attachment #8906374 - Flags: review?(matt.woodrow) → review+
Comment on attachment 8906380 [details]
Bug 1352016 - P5. Also check AMD cards with 0x1002 device id.

https://reviewboard.mozilla.org/r/178088/#review183318
Attachment #8906380 - Flags: review?(matt.woodrow) → review+
(In reply to Jean-Yves Avenard [:jya] from comment #98)
> How did you generate it, or care to share?
I simply resized it with this online tool: https://ezgif.com/resize-video. As I saw bug appears when width and height are set to more than 132 pixels. I tested a few resolutions: http://i.imgur.com/OEy39Le.jpg
Let me know if i can help you.
Can you please see how this one displays? do you see the green band?
Flags: needinfo?(superwaitsum)
Flags: needinfo?(paranoid739)
Flags: needinfo?(deal)
It shows as purple tinted while having "media.windows-media-foundation.use-nv12-format" set to true, if false it shows normally. Latest nightly
Flags: needinfo?(superwaitsum)
(In reply to Jean-Yves Avenard [:jya] from comment #69)
> Could you please provide a copy of the graphic section of about:support?
> 
> Looking at which devices should be made to use RGB instead of NV12.
> 
> thank you

FF 55.0.3 x86 running on Windows 10 x64 using GPU AMD Radeon HD 7660G, AMD Catalyst 15.7.1 driver:

Графика
-------

Возможности
Композитинг: Direct3D 11
Асинхронное панорамирование/зум: включён ввод колесиком; включён драг полосы прокрутки
WebGL 1 - Информация WSI драйвера: EGL_VENDOR: Google Inc. (adapter LUID: 0000000000006307) EGL_VERSION: 1.4 (ANGLE 2.1.0.dec065540d5f) EGL_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_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
WebGL 1 - Визуализатор драйвера: Google Inc. -- ANGLE (AMD Radeon HD 7660G Direct3D11 vs_5_0 ps_5_0)
WebGL 1 - Версия драйвера: OpenGL ES 2.0 (ANGLE 2.1.0.dec065540d5f)
WebGL 1 - Расширения драйвера: 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_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_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_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_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
WebGL 1 - Расширения: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug 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_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc MOZ_WEBGL_depth_texture
WebGL 2 - Информация WSI драйвера: EGL_VENDOR: Google Inc. (adapter LUID: 0000000000006307) EGL_VERSION: 1.4 (ANGLE 2.1.0.dec065540d5f) EGL_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_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
WebGL 2 - Визуализатор драйвера: Google Inc. -- ANGLE (AMD Radeon HD 7660G Direct3D11 vs_5_0 ps_5_0)
WebGL 2 - Версия драйвера: OpenGL ES 3.0 (ANGLE 2.1.0.dec065540d5f)
WebGL 2 - Расширения драйвера: 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_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_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_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_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
WebGL 2 - Расширения: EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc
Звуковая подсистема: wasapi
Direct2D: true
DirectWrite: true (10.0.10586.962)
Видеокарта №1
Активна: Да
Описание: AMD Radeon HD 7660G
Код производителя: 0x1002
Код устройства: 0x9900
Версия драйвера: 15.200.1062.1004
Дата разработки драйвера: 8-3-2015
Драйвера: aticfx64 aticfx64 aticfx64 amdxc64 aticfx32 aticfx32 aticfx32 amdxc32 atiumd64 atidxx64 atidxx64 atiumdag atidxx32 atidxx32 atiumdva atiumd6a atitmm64
Код подсистемы: 00000000
Видеопамять: 512

Диагностика
Параметры ClearType: Gamma: 2,2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50
AzureCanvasAccelerated: 0
AzureCanvasBackend: Direct2D 1.1
AzureCanvasBackend (UI Process): skia
AzureContentBackend: Direct2D 1.1
AzureContentBackend (UI Process): skia
AzureFallbackCanvasBackend (UI Process): cairo
GPUProcessPid: 8888
Параметры ClearType: Gamma: 2,2 Pixel Structure: RGB ClearType Level: 100 Enhanced Contrast: 50

Лог решения
WEBRENDER:
opt-in by default: WebRender is an opt-in feature
unavailable by runtime: Build doesn't include WebRender
Flags: needinfo?(deal)
(In reply to Jean-Yves Avenard [:jya] from comment #69)
> Could you please provide a copy of the graphic section of about:support?
> 
> Looking at which devices should be made to use RGB instead of NV12.
> 
> thank you

FF 55.0.3 x86 running on Windows 10 x86 using GPU NVidia ION 2 (GT218):

Графика
-------

Возможности
Композитинг: Direct3D 11
Асинхронное панорамирование/зум: включён ввод колесиком; включён драг полосы прокрутки
WebGL 1 - Информация WSI драйвера: EGL_VENDOR: Google Inc. (adapter LUID: 0000000000004f76) EGL_VERSION: 1.4 (ANGLE 2.1.0.dec065540d5f) EGL_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_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
WebGL 1 - Визуализатор драйвера: Google Inc. -- ANGLE (NVIDIA ION Direct3D11 vs_4_1 ps_4_1)
WebGL 1 - Версия драйвера: OpenGL ES 2.0 (ANGLE 2.1.0.dec065540d5f)
WebGL 1 - Расширения драйвера: 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_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_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_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_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
WebGL 1 - Расширения: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug 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_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc MOZ_WEBGL_depth_texture
WebGL 2 - Информация WSI драйвера: EGL_VENDOR: Google Inc. (adapter LUID: 0000000000004f76) EGL_VERSION: 1.4 (ANGLE 2.1.0.dec065540d5f) EGL_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_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_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
WebGL 2 - Визуализатор драйвера: Google Inc. -- ANGLE (NVIDIA ION Direct3D11 vs_4_1 ps_4_1)
WebGL 2 - Версия драйвера: OpenGL ES 3.0 (ANGLE 2.1.0.dec065540d5f)
WebGL 2 - Расширения драйвера: 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_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_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_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_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
WebGL 2 - Расширения: EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc
Звуковая подсистема: wasapi
Direct2D: true
DirectWrite: true (10.0.10586.962)
Видеокарта №1
Активна: Да
Описание: NVIDIA ION
Код производителя: 0x10de
Код устройства: 0x0a64
Версия драйвера: 9.18.13.4195
Дата разработки драйвера: 1-29-2016
Драйвера: nvd3dum nvwgf2um,nvwgf2um
Код подсистемы: 00000000
Видеопамять: 512
Диагностика
AzureCanvasAccelerated: 0
AzureCanvasBackend: Direct2D 1.1
AzureCanvasBackend (UI Process): skia
AzureContentBackend: Direct2D 1.1
AzureContentBackend (UI Process): skia
AzureFallbackCanvasBackend (UI Process): cairo
GPUProcessPid: 7052
Лог решения
WEBRENDER:
opt-in by default: WebRender is an opt-in feature
unavailable by runtime: Build doesn't include WebRender
(In reply to Jean-Yves Avenard [:jya] from comment #108)
> videotest-134x134.mp4
> 
> Can you please see how this one displays? do you see the green band?

Yes, I do. http://i.imgur.com/iWr8Gpc.jpg
Flags: needinfo?(paranoid739)
We're sorry, Autoland could not rebase your commits for you automatically. Please manually rebase your commits and try again.

hg error in cmd: hg rebase -s b9de6c5b0ba7 -d a99fc334476f: rebasing 419374:b9de6c5b0ba7 "Bug 1352016 - P1. Add method to check if NV12 rendering is usable. r=mattwoodrow"
rebasing 419375:c4cbd8c40d6e "Bug 1352016 - P2. Check if NV12 rendering is usable when allocating D3D11 surface. r=mattwoodrow"
rebasing 419376:03a938e85efa "Bug 1352016 - P3. Enable NV12 preference. r=mattwoodrow"
merging modules/libpref/init/all.js
warning: conflicts while merging modules/libpref/init/all.js! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9eed6a69298c
P1. Add method to check if NV12 rendering is usable. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/e79e512f803f
P2. Check if NV12 rendering is usable when allocating D3D11 surface. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/ebc7c92e8dc0
P3. Enable NV12 preference. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/dd7342e18e67
P4. Also check AMD cards with 0x1002 device id. r=mattwoodrow
Not a new regression, looks on track to get fixed, tracking-
Comment on attachment 8907657 [details]
Bug 1352016 - P2. Allow nsIGfxInfo service in GPU process on Windows.

https://reviewboard.mozilla.org/r/179326/#review184480
Attachment #8907657 - Flags: review?(dvander) → review+
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/369f2167e127
P1. Add method to check if NV12 rendering is usable. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/2bd972867854
P2. Allow nsIGfxInfo service in GPU process on Windows. r=dvander
https://hg.mozilla.org/integration/autoland/rev/6304896839d7
P3. Check if NV12 rendering is usable when allocating D3D11 surface. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/05e5403bdb90
P4. Enable NV12 preference. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/84bd9434491c
P5. Also check AMD cards with 0x1002 device id. r=mattwoodrow
for 56, I will re-use P4 and make it false by default. So that we go back to RGB for now. makes it safe for uplifting
Flags: needinfo?(jyavenard)
NV12 causes issue with older nvidia and AMD cards.

MozReview-Commit-ID: KXMjZVLXNg5
Comment on attachment 8907822 [details] [diff] [review]
Disable NV12 D3D11 surfaces. r=mattwoodrow

Approval Request Comment
[Feature/Bug causing the regression]: 1340398
[User impact if declined]: Some users will experience corrupted videos: wrong colours or big green lines around or within the video
[Is this code covered by automated tests?]: no
[Has the fix been verified in Nightly?]: no, but 
[Needs manual test from QE? If yes, steps to reproduce]: users have confirmed that the issue is fixed with the pref set to false. Otherwise, source a machine with one of those graphics cards and play the video attached to the bug.
[List of other uplifts needed for the feature/fix]:
[Is the change risky?]: low.
[Why is the change risky/not risky?]: we revert to the behaviour pre-55.
[String changes made/needed]: none
Attachment #8907822 - Flags: approval-mozilla-beta?
Comment on attachment 8907822 [details] [diff] [review]
Disable NV12 D3D11 surfaces. r=mattwoodrow

Fix for regression from 55. Multiple users confirmed that a manual pref flip fixed the issue though this patch is untested. 
Let's uplift this for beta 12.
Attachment #8907822 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Wait, has this not landed on m-c yet?  I don't think I can approve this for beta 12
Attachment #8907822 - Flags: approval-mozilla-beta+ → approval-mozilla-beta-
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #132)
> Wait, has this not landed on m-c yet?  I don't think I can approve this for
> beta 12

the patch for beta isn't the same as to what will land in central.

In central we have a much more complex set of tests checking on which graphic cards is being used and only revert to the old surface type if the card is known to be a problem.
otherwise it keeps the behaviour as-is.

The patch for beta is a blanket pref flip that will revert to the behaviour pre-55 for all.

Unless you're okay with the full 57 change in 56. I had thought that so close to release, the smaller change was preferable.
Flags: needinfo?(lhenry)
Flags: needinfo?(ajones)
Comment on attachment 8907822 [details] [diff] [review]
Disable NV12 D3D11 surfaces. r=mattwoodrow

That sounds more reasonable, and yet: this is an untested change, landing in the last beta build for something that isn't a new regression in 56.  

I'll give it a try. If we see any problem we think is related then please help with backout.
Flags: needinfo?(lhenry)
Attachment #8907822 - Flags: approval-mozilla-beta- → approval-mozilla-beta+
(In reply to Julien Cristau [:jcristau] from comment #121)
> Not a new regression, looks on track to get fixed, tracking-

This is the single most important bug for Firefox 57 and I need to be able to mark it as such, regardless of whether the bug is fixed, soon to be fixed, or whatever.

[Tracking Requested - why for this release]: This bug affects more users than was obvious when the bug was filed. We have been contacted by YouTube due to them receiving feedback about this issue occurring on their site.
Flags: needinfo?(ajones) → needinfo?(jcristau)
The fix is now in Firefox Nightly 57.

Could you please try it, after resetting all the preferences to their default and restarting Firefox?

See if the videos that gave you issue earlier on are now working, as well as the attached 134x134 video attached to this bug.

Thank you for your help.
Flags: needinfo?(paranoid739)
Flags: needinfo?(hshih)
Flags: needinfo?(deal)
Flags: needinfo?(chsisk)
(In reply to Jean-Yves Avenard [:jya] from comment #138)
> See if the videos that gave you issue earlier on are now working, as well as
> the attached 134x134 video attached to this bug.
Every video I tested early is working fine.
Flags: needinfo?(paranoid739)
(In reply to Jean-Yves Avenard [:jya] from comment #138)
> The fix is now in Firefox Nightly 57.
> 
> Could you please try it, after resetting all the preferences to their
> default and restarting Firefox?
> 
> See if the videos that gave you issue earlier on are now working, as well as
> the attached 134x134 video attached to this bug.
> 
> Thank you for your help.

Tried my previous videos and the attached video. They work fine on the latest Nightly 57 with a new profile
Flags: needinfo?(chsisk)
Flags: in-testsuite-
Flags: in-qa-testsuite-
Flags: in-moztrap-
Flags: a11y-review-
(In reply to Djfe from comment #54)
> I just now tested Win7 on the same machine (installed on a different drive)
> It's Win7 32bit Home and it doesn't have the issue at all.
> Same driver version, FF version, hw accel enabled and the about:config entry
> from above is set to true
> 
> 
> unlike "dealx" 32bit Firefox on my Win 10 Pro (first machine) doesn't show a
> green border, which is odd IMO.
> 
> I'm wondering how win7 64bit behaves
> 
> in-case you keep working on NV12, I'm volunteering to test new versions to
> help you find the cause, so you can fix it

windows 7 doesn't support NV12 as a feature level 11 texture, it can be used with d3d9 or feature level 9_3 only.
Bas, should we disable nv12 for win7 machines?

Should we even use D3D11 on those?
Flags: needinfo?(bas)
nevcariel of the LAV Filter project has more or less indicated that D3D11 decoding is impossible on Win7 (including sp1 with the platform update), there is no NV12 texture format available.

I believe Firefox is already falling back as needed as I don't happen to experience any issues with the reproduction video on my GTX 1080.
Sry for the late reply, haven't had the time to reply to Jean-Yves, yet.

Anyways, adding "media.windows-media-foundation.use-nv12-format" with value false works just fine. I don't even need to restart a video, the setting immediatly takes place and the green lines are gone.

Your custom build (target installer) fixed it for me (32bit and 64bit), even though I'm confused, why, because the "use-nv12-format" value was set to true in that build.

The currently nightly removed the regression successfully (I watched several videos which showed the behavior before) for me as well. (32bit and 64bit on Win 10 Pro 64bit)
Same as for the custom build: I see no green line regardless of "use-nv12-format" being true or false.


I'll attach screenshots of how the test videos looks for me on FF 55.0.3:
132x132 and 134x134 show green lines.
My GPU: Nvidia GTX 285
Attachment for Comment #144
Attachment for Comment #144
use-nv12-format is new Nightly is only used to disable nv12, you can't force enable it. It's a AND.

Your GPU is blacklisted for nv12, so it will always use RGB instead
(In reply to Jean-Yves Avenard [:jya] from comment #142)
> Bas, should we disable nv12 for win7 machines?
> 
> Should we even use D3D11 on those?

https://dxr.mozilla.org/mozilla-central/source/dom/media/platforms/wmf/WMFVideoMFTManager.cpp#486

No, we shouldn't.
Flags: needinfo?(bas)
jya, are you planning to back this out for 56 RC2?  Did it cause the new spike in crashes in bug 1374231?
Flags: needinfo?(jyavenard)
I have no idea on how it could be responsible for those intel crash, and I'm still confused why it crashes there; and yet it does...

So without any other evidence then yes it should be backed out.

If the crash rate doesn't change, can we have a point release re-adding the change?

Alternatively, uplift the "proper" fix which is in 57.
Flags: needinfo?(jyavenard)
(In reply to Jean-Yves Avenard [:jya] from comment #147)
good to know :)
probably too late, but allow-nv12-format might have indicated that a bit better
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #149)
> jya, are you planning to back this out for 56 RC2?  Did it cause the new
> spike in crashes in bug 1374231?

If this is what caused the crashes, I could wrap up something very quickly that doesn't use the pref if on Intel. They are known to work with the feature just fine.
jya: Up to you how to handle it for 56, but we need to try something for the RC2 build later this week since the crash rate as it is, is so high that it is blocking the 56 release.
Flags: needinfo?(jyavenard)
So for now, will request uplift of the whole changeset to release.

if not, the change in bug 1374231 would do the trick to.
Flags: needinfo?(jyavenard)
Comment on attachment 8906372 [details]
Bug 1352016 - P1. Add method to check if NV12 rendering is usable.

Approval Request Comment
[Feature/Bug causing the regression]: 1340398
[User impact if declined]: Some users will experience corrupted videos: wrong colours or big green lines around or within the video
[Is this code covered by automated tests?]: no
[Has the fix been verified in Nightly?]: yes 
[Needs manual test from QE? If yes, steps to reproduce]: using one of the graphic cards listed, open the 134x134 video attached to this bug.
[List of other uplifts needed for the feature/fix]: no
[Is the change risky?]: low.
[Why is the change risky/not risky?]: has baked in nightly for a couple of weeks.
[String changes made/needed]: none
Attachment #8906372 - Flags: approval-mozilla-release?
request above is for all 5 patches ^
I thought there was a very small change we could make for 56 from https://bugzilla.mozilla.org/show_bug.cgi?id=1374231#c18 ?   

I need to depend on your expertise and judgement, and for you to please think of risk overall for the release. As you know, having to do multiple release candidates affects the work of several teams (relman, releng, QE) and could delay the 56 and then the 57 release.  I am juggling multiple release blocking issues right now.
Flags: needinfo?(jyavenard)
In the future releases, any chance these hardcoded blocks can become part of the blocklisting system, allowing downloadable additions?  We do it for HW video decoding, VP8 and VP9, feels like we should add NV12 to the same place?
That would be nice. In my dreamworld where we can blocklist many things on the fly during a release, without dot releases!
Alternatively, or maybe additionally some time in the future, maybe we can run experiments with Shield on release channel for supporting new formats so that we can detect these problems before they go to a larger population, and fix them in upcoming versions.
(In reply to Liz Henry (:lizzard) (needinfo? me) from comment #157)
> I thought there was a very small change we could make for 56 from
> https://bugzilla.mozilla.org/show_bug.cgi?id=1374231#c18 ?   

and I did... however...
> 
> I need to depend on your expertise and judgement, and for you to please
> think of risk overall for the release. As you know, having to do multiple
> release candidates affects the work of several teams (relman, releng, QE)
> and could delay the 56 and then the 57 release.  I am juggling multiple
> release blocking issues right now.

the changes in this bug have been tested in Nightly, the small patch hasn't... I felt that considering the change is already in 57, any issues arising in 56 should we uplift will be in 57.

as such, I feel that the best solution at this stage is uplifting those changes, as per the uplift request.
Flags: needinfo?(jyavenard)
(In reply to Milan Sreckovic [:milan] from comment #158)
> In the future releases, any chance these hardcoded blocks can become part of
> the blocklisting system, allowing downloadable additions?  We do it for HW
> video decoding, VP8 and VP9, feels like we should add NV12 to the same place?

that would be nice...
Comment on attachment 8906372 [details]
Bug 1352016 - P1. Add method to check if NV12 rendering is usable.

Too late for this change in 56 as we are heading into the RC 2 build and I don't want to risk an RC3 and potential delay in the 56 release.
Attachment #8906372 - Flags: approval-mozilla-release? → approval-mozilla-release-
Duplicate of this bug: 1403467
Flags: needinfo?(deal)
You need to log in before you can comment on or make changes to this bug.