Open
Bug 1256960
Opened 9 years ago
Updated 5 months ago
Input latency when drawing on WebGL with D3D11
Categories
(Core :: Graphics: CanvasWebGL, defect, P3)
Tracking
()
NEW
Tracking | Status | |
---|---|---|
firefox45 | --- | wontfix |
firefox46 | --- | wontfix |
firefox47 | --- | wontfix |
firefox48 | --- | wontfix |
firefox49 | --- | wontfix |
firefox50 | --- | wontfix |
firefox51 | --- | wontfix |
firefox52 | --- | fix-optional |
firefox53 | --- | wontfix |
firefox54 | --- | wontfix |
firefox55 | --- | wontfix |
firefox56 | --- | wontfix |
firefox57 | --- | fix-optional |
People
(Reporter: pinggi, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: regression, Whiteboard: gfx-noted)
Attachments
(1 file, 1 obsolete file)
1.41 MB,
video/mp4
|
Details |
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0
Build ID: 20160303134406
Steps to reproduce:
Try to draw a line on http://thj.no/personal/latency_test_case.html
Actual results:
The drawn line has significant delay after mouse move. Very bad latency :-(
Expected results:
The line should be smoothly drawn without a lag. The line should be immediately drawn right next to a mouse cursor. The attached video shows in the first half Chromium and in the second half Firefox. The video doesn't have high fps so it's chopped little bit, but you can see the difference. In real Chromium is really smooth without any lag while Firefox has horrible delay :-((
Firefox 45 (32 bit and 64 bit too)
Chromium 49.0.2623.87 (64-bit)
Windows 7
Updated•9 years ago
|
Component: Untriaged → Canvas: WebGL
Product: Firefox → Core
Attachment #8730883 -
Attachment is obsolete: true
regression range:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=292fbdb78dde3dee31472afc83b865e4d77891d1&tochange=79637e9bcdaa0657cd79732b095936b377e262b4
Jeff Muizelaar — Bug 1183341. Reenable ANGLE w/ D3D11 on newer Intel GPUs. r=bas
My about:support:
Adapter Description Intel(R) HD Graphics 3000
Adapter Description (GPU #2) NVIDIA GeForce GT 550M
Adapter Drivers igdumd64 igd10umd64 igd10umd64 igdumd32 igd10umd32 igd10umd32
Adapter Drivers (GPU #2) nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Adapter RAM Unknown
Adapter RAM (GPU #2) 2048
Asynchronous Pan/Zoom wheel input enabled; touch input enabled
ClearType Parameters Gamma: 2200 Pixel Structure: R ClearType Level: 100 Enhanced Contrast: 50
Device ID 0x0116
Device ID (GPU #2) 0x0df6
Direct2D Enabled true
DirectWrite Enabled true (6.2.9200.17568)
Driver Date 5-26-2015
Driver Date (GPU #2) 2-23-2016
Driver Version 9.17.10.4229
Driver Version (GPU #2) 10.18.13.6200
GPU #2 Active false
GPU Accelerated Windows 1/1 Direct3D 11 (OMTC)
Subsys ID 17121043
Subsys ID (GPU #2) 17121043
Supports Hardware H264 Decoding Yes
Vendor ID 0x8086
Vendor ID (GPU #2) 0x10de
WebGL Renderer Google Inc. -- ANGLE (Intel(R) HD Graphics 3000 Direct3D11 vs_4_1 ps_4_1)
windowLayerManagerRemote true
AzureCanvasAccelerated 0
AzureCanvasBackend direct2d 1.1
AzureContentBackend direct2d 1.1
AzureFallbackCanvasBackend cairo
Blocks: 1183341
Status: UNCONFIRMED → NEW
status-firefox45:
--- → affected
status-firefox46:
--- → affected
status-firefox47:
--- → affected
status-firefox48:
--- → affected
Ever confirmed: true
Flags: needinfo?(jmuizelaar)
Keywords: regression
OS: Unspecified → Windows
Version: 45 Branch → 42 Branch
pinggi, can you copy here the section "graphics" from the page about:support, please.
Flags: needinfo?(pinggi)
Comment 4•9 years ago
|
||
If you disable angle d3d11 does the situation improve?
(In reply to Jeff Muizelaar [:jrmuizel] from comment #4)
> If you disable angle d3d11 does the situation improve?
Yes, it's smooth with webgl.angle.try-d3d11=false in 48.
Updated•9 years ago
|
Whiteboard: gfx-noted
@Loic sure, here is my about:support:
Adapter Description ATI Radeon HD 4290
Adapter Drivers aticfx64 aticfx64 aticfx32 aticfx32 atiumd64 atidxx64 atiumdag atidxx32 atiumdva atiumd6a atitmm64
Adapter RAM 624
Asynchronous Pan/Zoom none
Device ID 0x9714
Direct2D Enabled true
DirectWrite Enabled true (6.2.9200.16492)
Driver Date 4-29-2013
Driver Version 8.970.100.1100
GPU #2 Active false
GPU Accelerated Windows 1/1 Direct3D 11 (OMTC)
Subsys ID 00000000
Supports Hardware H264 Decoding No; DXVA2D3D9 crashes detected in the past
Vendor ID 0x1002
WebGL Renderer Google Inc. -- ANGLE (ATI Radeon HD 4290 Direct3D11 vs_4_1 ps_4_1)
windowLayerManagerRemote true
AzureCanvasBackend direct2d 1.1
AzureContentBackend direct2d 1.1
AzureFallbackCanvasBackend cairo
AzureSkiaAccelerated 0
(#0) Error DXVA2D3D9 video decoding is disabled due to a previous crash.
I tried changing the option webgl.angle.try-d3d11 to false and it's big difference - smooth as chromium, maybe better!
Flags: needinfo?(pinggi)
Comment 7•9 years ago
|
||
I can reproduce this as well. I have no guesses yet as to what the problem might be.
Flags: needinfo?(jmuizelaar)
Updated•9 years ago
|
The problem is that when "webgl.angle.try-d3d11" is set to false, then webgl does not work with:
http://alteredqualia.com/xg/examples/forward_performance_shadowmap.html
Updated•9 years ago
|
Flags: needinfo?(howareyou322)
Comment 10•9 years ago
|
||
Here is my support, and I can't reproduce this problem. The result on my device is smooth.
Name Firefox
Version 46.0.1
Graphics
Adapter Description NVIDIA GeForce GT 730
Adapter Drivers nvd3dumx,nvwgf2umx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um,nvwgf2um
Adapter RAM 2048
Asynchronous Pan/Zoom none
Device ID 0x1287
Direct2D Enabled true
DirectWrite Enabled true (10.0.10586.0)
Driver Date 5-9-2016
Driver Version 10.18.13.6519
GPU #2 Active false
GPU Accelerated Windows 1/1 Direct3D 11 (OMTC)
Subsys ID 00000000
Supports Hardware H264 Decoding Yes
Vendor ID 0x10de
WebGL Renderer Google Inc. -- ANGLE (NVIDIA GeForce GT 730 Direct3D11 vs_5_0 ps_5_0)
windowLayerManagerRemote true
AzureCanvasBackend direct2d 1.1
AzureContentBackend direct2d 1.1
AzureFallbackCanvasBackend cairo
AzureSkiaAccelerated 0
Not sure if it would not happen on NV cards?
Comment 11•9 years ago
|
||
Pinggi, can you help check your Chrome Angle setting at this site?
http://www.browserleaks.com/webgl
I would like to know if your device uses d3d11 as well?
In my case, it is
Miscellaneous :
Antialiasing Available
ANGLE Yes, Direct3D 11
Major Performance Caveat No
Flags: needinfo?(dmu) → needinfo?(pinggi)
Reporter | ||
Comment 12•9 years ago
|
||
Yes, anytime.
It's the same for me:
Antialiasing Available
ANGLE Yes, Direct3D 11
Major Performance Caveat No
if you're interested in full info:
WebGL Support Detection
Does Your Browser Supports WebGL? ✔ Yes
Is WebGL Enabled in Your Browser? ✔ Yes
What about WebGL 2.0 Support? × No
Browser User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
WebGL Context Info
Supported Context Name(s) webgl, experimental-webgl
GL Version WebGL 1.0
Shading Language Version WebGL GLSL ES 1.0
Vendor Mozilla
Renderer Mozilla
Debug Renderer Info
Unmasked Vendor Not Available
Unmasked Renderer Not Available
Vertex Shader
Max Vertex Attributes 16
Max Vertex Uniform Vectors 1024
Max Vertex Texture Image Units 16
Max Varying Vectors 30
Best Float Precision [-2127, 2127] (23)
Rasterizer
Aliased Line Width Range [1, 1]
Aliased Point Size Range [1, 1024]
Fragment Shader
Max Fragment Uniform Vectors 1024
Max Texture Image Units 16
Float/Int Precision: highp/highp
Best Float Precision [-2127, 2127] (23)
Framebuffer
Max Color Buffers: 8
RGBA Bits [8, 8, 8, 8]
Depth / Stencil Bits: [24, 8]
Max Render Buffer Size 8192
Max Viewport Dimensions [16383, 16383]
Textures
Max Texture Size 8192
Max Cube Map Texture Size 8192
Max Combined Texture Image Units 32
Max Anisotropy 16
Miscellaneous :
Antialiasing Available
ANGLE Yes, Direct3D 11
Major Performance Caveat No
Supported WebGL Extensions ANGLE_instanced_arrays
EXT_blend_minmax
EXT_color_buffer_half_float
EXT_frag_depth
EXT_shader_texture_lod
EXT_texture_filter_anisotropic
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_etc1
WEBGL_compressed_texture_s3tc
WEBGL_depth_texture
WEBGL_draw_buffers
WEBGL_lose_context
MOZ_WEBGL_lose_context
MOZ_WEBGL_compressed_texture_s3tc
MOZ_WEBGL_depth_texture
Do you have any idea already what could be the cause?
Comment 13•9 years ago
|
||
(In reply to pinggi from comment #12)
> Yes, anytime.
>
> It's the same for me:
>
> Antialiasing Available
> ANGLE Yes, Direct3D 11
> Major Performance Caveat No
>
> if you're interested in full info:
>
> WebGL Support Detection
> Does Your Browser Supports WebGL? ✔ Yes
> Is WebGL Enabled in Your Browser? ✔ Yes
> What about WebGL 2.0 Support? × No
> Browser User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0)
> Gecko/20100101 Firefox/46.0
>
> WebGL Context Info
> Supported Context Name(s) webgl, experimental-webgl
> GL Version WebGL 1.0
> Shading Language Version WebGL GLSL ES 1.0
> Vendor Mozilla
> Renderer Mozilla
>
> Debug Renderer Info
> Unmasked Vendor Not Available
> Unmasked Renderer Not Available
>
> Vertex Shader
> Max Vertex Attributes 16
> Max Vertex Uniform Vectors 1024
> Max Vertex Texture Image Units 16
> Max Varying Vectors 30
> Best Float Precision [-2127, 2127] (23)
>
> Rasterizer
> Aliased Line Width Range [1, 1]
> Aliased Point Size Range [1, 1024]
> Fragment Shader
> Max Fragment Uniform Vectors 1024
> Max Texture Image Units 16
> Float/Int Precision: highp/highp
> Best Float Precision [-2127, 2127] (23)
>
> Framebuffer
> Max Color Buffers: 8
> RGBA Bits [8, 8, 8, 8]
> Depth / Stencil Bits: [24, 8]
> Max Render Buffer Size 8192
> Max Viewport Dimensions [16383, 16383]
>
> Textures
> Max Texture Size 8192
> Max Cube Map Texture Size 8192
> Max Combined Texture Image Units 32
> Max Anisotropy 16
>
> Miscellaneous :
> Antialiasing Available
> ANGLE Yes, Direct3D 11
> Major Performance Caveat No
> Supported WebGL Extensions ANGLE_instanced_arrays
> EXT_blend_minmax
> EXT_color_buffer_half_float
> EXT_frag_depth
> EXT_shader_texture_lod
> EXT_texture_filter_anisotropic
> 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_etc1
> WEBGL_compressed_texture_s3tc
> WEBGL_depth_texture
> WEBGL_draw_buffers
> WEBGL_lose_context
> MOZ_WEBGL_lose_context
> MOZ_WEBGL_compressed_texture_s3tc
> MOZ_WEBGL_depth_texture
>
> Do you have any idea already what could be the cause?
Sorry, pinggi. Could you help me use Google Chrome to dump the info from the same link, http://www.browserleaks.com/webgl.
Thanks.
I wounder if Google Chrome doesn't enable DX11 for intel GPUs.
Reporter | ||
Comment 14•9 years ago
|
||
Here's the Chromium output:
Antialiasing Available
ANGLE Yes, Direct3D 9
Major Performance Caveat No
and the full dump:
WebGL Support Detection
Does Your Browser Supports WebGL? ✔ Yes
Is WebGL Enabled in Your Browser? ✔ Yes
What about WebGL 2.0 Support? × No
Browser User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
WebGL Context Info
Supported Context Name(s) webgl, experimental-webgl
GL Version WebGL 1.0 (OpenGL ES 2.0 Chromium)
Shading Language Version WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)
Vendor WebKit
Renderer WebKit WebGL
Debug Renderer Info
Unmasked Vendor ! Google Inc.
Unmasked Renderer ! ANGLE (ATI Radeon HD 4290 Direct3D9Ex vs_3_0 ps_3_0)
Vertex Shader
Max Vertex Attributes 16
Max Vertex Uniform Vectors 253
Max Vertex Texture Image Units 4
Max Varying Vectors 9
Best Float Precision [-2127, 2127] (23)
Rasterizer
Aliased Line Width Range [1, 1]
Aliased Point Size Range [1, 256]
Fragment Shader
Max Fragment Uniform Vectors 221
Max Texture Image Units 16
Float/Int Precision: highp/highp
Best Float Precision [-2127, 2127] (23)
Framebuffer
Max Color Buffers: 1
RGBA Bits [8, 8, 8, 8]
Depth / Stencil Bits: [24, 8]
Max Render Buffer Size 8192
Max Viewport Dimensions [8192, 8192]
Textures
Max Texture Size 8192
Max Cube Map Texture Size 8192
Max Combined Texture Image Units 20
Max Anisotropy 16
Miscellaneous :
Antialiasing Available
ANGLE Yes, Direct3D 9
Major Performance Caveat No
Supported WebGL Extensions ANGLE_instanced_arrays
EXT_blend_minmax
EXT_frag_depth
EXT_shader_texture_lod
EXT_texture_filter_anisotropic
WEBKIT_EXT_texture_filter_anisotropic
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_compressed_texture_s3tc
WEBKIT_WEBGL_compressed_texture_s3tc
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBGL_lose_context
WEBKIT_WEBGL_lose_context
Reporter | ||
Comment 15•9 years ago
|
||
So the difference is:
Chrome vs Firefox
Max Vertex Uniform Vectors 253 vs 1024
Max Vertex Texture Image Units 4 vs 16
Max Varying Vectors 9 vs 30
Aliased Point Size Range [1, 256] vs [1, 1024]
Max Fragment Uniform Vectors 221 vs 1024
Max Color Buffers: 1 vs 8
Max Viewport Dimensions [8192, 8192] vs [16383, 16383]
Max Combined Texture Image Units 20 vs 32
ANGLE Yes, Direct3D 9 vs Yes, Direct3D 11
Supported WebGL Extensions
Unique for Chrome
WEBKIT_EXT_texture_filter_anisotropic
WEBKIT_WEBGL_compressed_texture_s3tc
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBKIT_WEBGL_lose_context
Unique for Firefox
EXT_color_buffer_half_float
WEBGL_compressed_texture_etc1
MOZ_WEBGL_compressed_texture_s3tc
WEBGL_depth_texture
WEBGL_draw_buffers
MOZ_WEBGL_lose_context
MOZ_WEBGL_depth_texture
Reporter | ||
Comment 16•9 years ago
|
||
It seems that Firefox adds more overhead by using Direct3D 11 or is there something else odd?
Is it possible to set WebGL in Firefox to use Direct3D 9?
Reporter | ||
Comment 17•9 years ago
|
||
Mmm, I didi second attempt to set "webgl.angle.try-d3d11" to "false", restarted Firefox and now Firefox uses Direct3D 9. The only difference on http://www.browserleaks.com/webgl between Firefox and Chrome is in Supported WebGL Extensions:
Firefox:
EXT_color_buffer_half_float
WEBGL_color_buffer_float
MOZ_WEBGL_lose_context
MOZ_WEBGL_compressed_texture_s3tc
Chrome:
WEBKIT_EXT_texture_filter_anisotropic
WEBKIT_WEBGL_compressed_texture_s3tc
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBKIT_WEBGL_lose_context
I tested both sites...
http://thj.no/personal/latency_test_case.html
http://alteredqualia.com/xg/examples/forward_performance_shadowmap.html
...again with surprise that all is working now. The first one is smooth and the second one work. So now I'm using WebGL with Direct3D 9.
So definitely WebGL with Direct3D 11 introduces some latency on the latency test web page.
Comment 18•9 years ago
|
||
It's probably worth trying to disable shared surface support and see if the problem still happens.
Setting keyedMutex to null here: https://dxr.mozilla.org/mozilla-central/rev/c4449eab07d39e20ea315603f1b1863eeed7dcfe/gfx/gl/SharedSurfaceANGLE.cpp#73 should do the trick.
Comment 19•9 years ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #18)
> It's probably worth trying to disable shared surface support and see if the
> problem still happens.
> Setting keyedMutex to null here:
> https://dxr.mozilla.org/mozilla-central/rev/
> c4449eab07d39e20ea315603f1b1863eeed7dcfe/gfx/gl/SharedSurfaceANGLE.cpp#73
> should do the trick.
I have tried to set keyedMutex to null on my NVIDIA-PC that uses Angle-Dx11. My canvas is gray that seems to ANGLE sharedsurface does not be ready to copy to my framebuffer.
Updated•9 years ago
|
Flags: needinfo?(pinggi)
Comment 20•9 years ago
|
||
Change tile based on comment 17.
Summary: Input latency when drawing on WebGL → Input latency when drawing on WebGL with D3D11
Comment 21•9 years ago
|
||
I can't reproduce this issue with Intel HD 4000. Jeff, which video card you use to reproduce this issue? I saw pinggi is using ATI 4290.
Flags: needinfo?(jmuizelaar)
Comment 22•9 years ago
|
||
I can't reproduce with Windows Intel HD 4600 as well. By the way, I check this in Chromium. It uses ANGLE (Intel(R) HD Graphics 4600 Direct3D11 vs_5_0 ps_5_0) that is the same to Firefox 46. Therefore, I don't think it would not be a Dx11 issue. It is ATI and HD 3000 Dx11 driver issues.
Comment 23•9 years ago
|
||
(In reply to Peter Chang[:pchang] from comment #21)
> I can't reproduce this issue with Intel HD 4000. Jeff, which video card you
> use to reproduce this issue? I saw pinggi is using ATI 4290.
I can reproduce this on a Intel HD 4000 on Windows 10 with the 10.18.10.4276 driver. Can you reproduce in that configuration?
Flags: needinfo?(jmuizelaar)
Comment 24•9 years ago
|
||
I rollback my driver of Intel HD 4600 on Windows 10 to 10.18.10.4276. It still can't be reproduced...Btw, it uses Dx11 as well.
![]() |
||
Updated•9 years ago
|
Jeff, can we still reproduce this?
Flags: needinfo?(jmuizelaar)
Comment 26•9 years ago
|
||
Andrei can your team reproduce this with the older driver?
Milan, might we want to block the older driver if so?
status-firefox50:
--- → fix-optional
status-firefox51:
--- → affected
Flags: needinfo?(milan)
Flags: needinfo?(andrei.vaida)
Comment 27•9 years ago
|
||
Hi Liz,
I have reproduced this issue using Firefox RC 45.0 build 1 (id: 20160301003640) on a Windows 7 Pro (x64) machine that uses ATI RADEON 3000 graphics card and has the 8.970.100.3000 driver and Direct3D 11.
Please ni? me if further testing is needed on the issue.
Flags: needinfo?(andrei.vaida)
Comment 28•8 years ago
|
||
I talked to Jeff about this, right now it's still not clear why it reproduces in some places and not others. In order to figure this out, we need more information on what configurations it reproduces on and what configurations it doesn't reproduce on.
Andrei, could you check on a range of hardware to see what configurations this issue can be reproduced on, and which ones don't have the problem? Hopefully that will give us some idea of what the pattern is.
Flags: needinfo?(milan)
Flags: needinfo?(jmuizelaar)
Flags: needinfo?(andrei.vaida)
Comment 29•8 years ago
|
||
Hello,
I have tested some more hardware for this issue and it seems that the problem is on ATI graphics cards that have the driver version under "10". Since we are limited on the hardware that we have here I've managed to get the following results:
1. Win 7 x64 - GPU AMD 760G - driver 8.723.0.0 - Firefox 45.0 RC & Nightly 51 - REPRODUCIBLE
2. Win XP x64 - GPU AMD R7 - driver 13.251.0.0 - Firefox 45.0 RC & Nightly 51 - Not reproducible
Flags: needinfo?(andrei.vaida)
Updated•8 years ago
|
status-firefox52:
--- → affected
Comment 31•8 years ago
|
||
Milan, can you help move this along?
status-firefox53:
--- → affected
Flags: needinfo?(milan)
Updated•8 years ago
|
Blocks: webgl-perf-parity
Flags: needinfo?(milan)
Updated•8 years ago
|
Comment 32•8 years ago
|
||
Too late for a fix for 53, as we are in the last week of the 53 beta cycle.
Comment 33•8 years ago
|
||
Too late for 54, let's see if we can fix it in 55.
status-firefox55:
--- → affected
Updated•8 years ago
|
Priority: -- → P3
Updated•7 years ago
|
status-firefox56:
--- → wontfix
status-firefox57:
--- → fix-optional
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•