Open Bug 1322694 Opened 8 years ago Updated 2 years ago

WebGL video textures fail to render in Firefox Nightly for MP4 format with 2048x1024 pixels dimensions

Categories

(Core :: Graphics: CanvasWebGL, defect, P3)

53 Branch
defect

Tracking

()

UNCONFIRMED

People

(Reporter: postfilter, Unassigned)

References

Details

(Whiteboard: [gfx-noted][webcompat])

User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0
Build ID: 20161209030212

Steps to reproduce:

Visit in Firefox Nightly 53.0a1 (2016-12-09):

http://alteredqualia.com/xg/examples/webgl_video_performance_MP4_1024p.html

Observe both tab content and JS console. 


Actual results:

Video rectangle is black. 

In JS console there are repeated errors (presumably every frame):

Error: WebGL: texImage2D: Failed to hit GPU-copy fast-path. Falling back to CPU upload.
Error: WebGL: texImage2D: GetAsSourceSurface or GetDataSurface failed after blit failed for TexUnpackImage.


Expected results:

There should be shown video of clouds.

This test still works ok in the current stable Firefox 50.0.2, so this seems to be a regress.

Also notably MP4 format but with 1920x1080 pixels dimensions and VP9 format with 2048x1024 dimensions do work ok in Firefox Nightly:

http://alteredqualia.com/xg/examples/webgl_video_performance_MP4_1080p.html
http://alteredqualia.com/xg/examples/webgl_video_performance_VP9_1024p.html
Component: Untriaged → Canvas: WebGL
Product: Firefox → Core
Thanks for the bug report!  Any change you could run a mozregression tool and help find out the change that regressed this?
Flags: needinfo?(postfilter)
Priority: -- → P3
Whiteboard: [gfx-noted]
That's a nice tool ;)

I found something, though not sure if this is the same issue. It also fails to render that test video, but the error message is different than what I get in the latest nightly.

Bisect-found range fails with this message:

Error: WebGL: texImage2D: Desired upload requires more data than is available: (4294967295 rows plus 0 pixels needed, 0 rows plus 0 pixels available)

Latest nightly fails with this message:

Error: WebGL: texImage2D: GetAsSourceSurface or GetDataSurface failed after blit failed for TexUnpackImage.

-------

Here are bisect informations:

app_name: firefox
build_date: 2016-10-25 08:35:04.191000
build_file: C:\Users\alteredq\.mozilla\mozregression\persist\b20258d9a61b--autoland--firefox-52.0a1.en-US.win64.zip
build_type: inbound
build_url: https://queue.taskcluster.net/v1/task/WaG22pu2Sr6jwDWIKA-ltQ/runs/0/artifacts/public%2Fbuild%2Ffirefox-52.0a1.en-US.win64.zip
changeset: b20258d9a61bd4a746d7bdcb3026b4adb2e0c7ad
pushlog_url: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=9fb2ac0875ec35268701dd3826b017a301cc7400&tochange=b20258d9a61bd4a746d7bdcb3026b4adb2e0c7ad
repo_name: autoland
repo_url: https://hg.mozilla.org/integration/autoland
task_id: WaG22pu2Sr6jwDWIKA-ltQ
Can you attach the graphics section of about:support?

I have this video playing in nightly on Windows 10, NVIDIA GeForce GTX 960M, 21.21.13.7619.  There are definitely problems with the format (we had to reformat 0x1907 -> 0x1401, end up with video with a non pre-multiplied alpha) that makes things go slow.
Hmmm, interesting. I tried it on another notebook and there it worked too.

Here is graphics section of "about:support" for machine where it doesn't work (Windows 7 64-bit, Nvidia Quadro 2000M):

---------------------------------------------------------
Features
Compositing: Direct3D 11
Asynchronous Pan/Zoom: none
WebGL Renderer: Google Inc. -- ANGLE (NVIDIA Quadro 2000M Direct3D11 vs_5_0 ps_5_0)
WebGL2 Renderer: Google Inc. -- ANGLE (NVIDIA Quadro 2000M Direct3D11 vs_5_0 ps_5_0)
Hardware H264 Decoding: Yes; Using D3D9 API
Audio Backend: wasapi
Direct2D: true
DirectWrite: true (6.2.9200.21976)
GPU #1
Active: Yes
Description: NVIDIA Quadro 2000M
Vendor ID: 0x10de
Device ID: 0x0dda
Driver Version: 21.21.13.7563
Driver Date: 10-21-2016
Drivers: nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Subsys ID: 21cf17aa
RAM: 2048

Diagnostics
AzureCanvasAccelerated: 0
AzureCanvasBackend: direct2d 1.1
AzureContentBackend: direct2d 1.1
AzureFallbackCanvasBackend: cairo
Decision Log
D3D9_COMPOSITING:
disabled by default: Disabled by default
GPU_PROCESS:
unavailable by runtime: Multi-process mode is not enabled
---------------------------------------------------------

The other machine where it works (Windows 8.1 64-bit, Nvidia GeForce GTX 970M):

---------------------------------------------------------
Features
Compositing: Direct3D 11
Asynchronous Pan/Zoom: none
WebGL Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GTX 970M Direct3D11 vs_5_0 ps_5_0)
WebGL2 Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GTX 970M Direct3D11 vs_5_0 ps_5_0)
Hardware H264 Decoding: Yes; Using D3D11 API
Audio Backend: wasapi
Direct2D: true
DirectWrite: true (6.3.9600.18468)
GPU #1
Active: Yes
Description: Intel(R) HD Graphics 4600
Vendor ID: 0x8086
Device ID: 0x0416
Driver Version: 10.18.14.4414
Driver Date: 3-23-2016
Drivers: igdumdim64 igd10iumd64 igd10iumd64 igdumdim32 igd10iumd32 igd10iumd32
Subsys ID: 11021462
RAM: Unknown
GPU #2
Active: No
Description: NVIDIA GeForce GTX 970M
Vendor ID: 0x10de
Device ID: 0x13d8
Driver Version: 21.21.13.7619
Driver Date: 12-1-2016
Drivers: nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Subsys ID: 11021462
RAM: 3072
Diagnostics
AzureCanvasAccelerated: 0
AzureCanvasBackend: direct2d 1.1
AzureContentBackend: direct2d 1.1
AzureFallbackCanvasBackend: cairo
failures: [GFX1-]: VendorIDMismatch V 0x8086 0x10de
Decision Log
D3D9_COMPOSITING:
disabled by default: Disabled by default
GPU_PROCESS:
unavailable by runtime: Multi-process mode is not enabled
---------------------------------------------------------

Besides different Windows versions and bit more up-to-date Nvidia driver, what jumped for me was:

Hardware H264 Decoding: Yes; Using D3D9 API

vs

Hardware H264 Decoding: Yes; Using D3D11 API
Whiteboard: [gfx-noted] → [gfx-noted][webcompat]

Migrating Webcompat whiteboard priorities to project flags. See bug 1547409.

Webcompat Priority: --- → ?

See bug 1547409. Migrating whiteboard priority tags to program flags.

Webcompat Priority: ? → revisit
Severity: normal → S3
Webcompat Priority: revisit → ---

Clear a needinfo that is pending on an inactive user.

Inactive users most likely will not respond; if the missing information is essential and cannot be collected another way, the bug maybe should be closed as INCOMPLETE.

For more information, please visit auto_nag documentation.

Flags: needinfo?(postfilter)
You need to log in before you can comment on or make changes to this bug.