TPEGFX/2016-Q4: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(41 intermediate revisions by 8 users not shown)
Line 1: Line 1:
==GFX Topics==
==GFX Topics(from high to low priority)==
* gfx Stability
* [https://howareyou322.github.io/gfx-stability gfx Stability]
* Quantum Compositor process (2016/Q4)
* Quantum Compositor process (2016/Q4)
* Quantum Rendering
* [https://public.etherpad-mozilla.org/p/webgl2-conf WebGL2 conformance](2017/Q1 target at 51)
* WebGL2
** focus on [*] or [WI] first
* [https://public.etherpad-mozilla.org/p/wrgfx Quantum Rendering]
* Canvas 2D perf(google sheet/streaming)
* DisplayList(layout related work)
* DisplayList(layout related work)
* Paint correctness([https://bugzilla.mozilla.org/buglist.cgi?keywords=correctness&keywords_type=allwords&list_id=12942222&resolution=---&query_format=advanced buglist])
* Paint correctness([https://bugzilla.mozilla.org/buglist.cgi?keywords=correctness&keywords_type=allwords&list_id=12942222&resolution=---&query_format=advanced buglist])
Line 10: Line 12:
==Goal==
==Goal==
===ChihYi Leu===
===ChihYi Leu===
* WebGL2 Conformance
* Fix webgl conformance bugs
** Enable WebGL2 testing on Linux
** {{bug|1316539}} - [WebGL2 conformance test]Pass 2/conformance/textures/misc/tex-sub-image-2d-bad-args.html
*** Driver on Linux Tryserver is too old to enable WebGL2
*** land
* Composition reftest
** {{bug|1316544}} - [WebGL2 conformance test] Pass 2/conformance2/textures/misc/copy-texture-image-webgl-specific.html
** Add RefTest to detect an obsoleted faulty patch in Bug 1284440
*** land
*** We have no appropriate snapshot flow for framebuffer update related bug for now, discussing about adding new snapshot flow
** {{bug|1316546}} - Failure on 2/conformance2/textures/misc/copy-texture-image.html
* [https://public.etherpad-mozilla.org/p/Gecko-Inside-Sharing Gecko Graphics inside]
*** Test correctness under discussion
** Host discussion meeting every two weeks
* Presentation skill
* Update driver blacklist for Intel graphics under Windows
** Proper speaking speed
** {{bug|1299757}} - land
** Simple and clean description
** {{bug|1295902}} - land
* GFX Stability
** {{bug|1295899}} - land
** Fix webGL crashes, mostly filed by sheriff
*** {{bug|1304291}} -  Assertion failure: [GFX1]: RGBX corner pixel at (0,0) in 1280x868 surface is not opaque: 0,0,0,0
**** land
*** {{bug|1290831}} - Hit MOZ_CRASH(Unexpected error with MOZ_GL_DEBUG_ABORT_ON_ERROR. (Run with MOZ_GL_DEBUG_ABORT_ON_ERROR=0 to disable)) at GLContext.h:759
**** land
*** {{bug|1300549}} - Assertion failure: blob->mHeight >= 1, at WebGLTextureUpload.cpp:155
**** land
*** {{bug|1316327}} - Crash in mozilla::WebGLFramebuffer::BlitFramebuffer (Webgl2.0 regression)
**** land
*** {{bug|1309586}} - Assertion failure: false at WebGLContext.cpp:2274
**** Discussed with Ethan, it's more important to mitigate using CPU-side conversion instead of remove the assertion here.
* Fix at least one crash from crash-stat (optional)


===Daosheng Mu===
===Daosheng Mu===
* WebVR Gamepad support
** {{Bug|1299926}} - [webvr] [meta] Support HTC Vive controllers - land
*** {{Bug|1299928}} - [webvr] Enumerate HTC Vive Controllers through the Gamepad API - land
*** {{Bug|1299929}} - [webvr] Support HTC Vive button inputs and analogue triggers in the Gamepad API - land
*** {{Bug|1299930}} - [webvr] Support HTC Vive controller trackpads through the Gamepad API - land
*** {{Bug|1299932}} - [webvr] Support HTC Vive orientation and position tracking in the Gamepad API - land
*** {{Bug|1315636}} - [webvr] Support HTC Vive button release - land
*** {{Bug|1299937}} - [webvr] Support HTC Vive Haptic Feedback - r?
*** {{Bug|1313581}} - [webvr] Support HTC Vive controller hand through the Gamepad API - land
** {{Bug|1318586}} - [webvr] Adjust OpenVR controller button mapping - land
** {{Bug|1320633}} - [webvr] Refresh for new controllers coming in gfxVROpenVR - land
** {{Bug|1316279}} - [webvr] WebVR in out-of-process compositing mode - land
** {{Bug|1321505}} - [webvr] After reloading pages, it can't enumerate the controllers - land
** {{Bug|1313585}} - nsGlobalWindow needs to remove the existing gamepads while it is removed by GamepadManager. - land
** {{Bug|1310904}} - --disable-gamepad build fails: dom/gamepad/ipc/GamepadEventTypes.ipdlh: fatal error: 'mozilla/dom/GamepadMessageUtils.h' file not found - land
** {{Bug|1317706}} - Remove Pose WebIDL because we can move the sharing implementation to our c++ code - land
** {{Bug|1318618}} - Support nsCString data type in gfxPrefs in OOP compositor - land
** {{Bug|1320343}} - Preferences::SetBool called from the content process in VRManager - land
** {{Bug|1311587}} - Crash in mozilla::gfx::VRControllerManagerOpenVR::HandleInput - land
** {{Bug|1315718}} - mGamepadManager looks like a security hazard - land
** {{Bug|1315896}} - Remove MOZ_GAMEPAD and adjust for other non gamepad support platforms build. - land
** {{Bug|1323088}} - Firefox Nightly 53.0a1 (2016-12-11) crashes in [@ @0x0 | mozilla::gfx::VRControllerManagerOpenVR ... ] & [@ @0x0 | mozilla::gfx::VRManager ... ] - land
** reviews
* WebGL2 conformance
* WebGL2 conformance
** Fix high-priority failures in [https://public.etherpad-mozilla.org/p/webgl2-failures webgl2-failures]
** focus on [*] or [WI] first in [https://public.etherpad-mozilla.org/p/webgl2-conf webgl2-conf]
** Enable WebGL2 testing on win8
** {{Bug|1323626}} - [WebGL2 conformance test] Pass conformance2/textures/misc/tex-mipmap-levels.html - help investigation
* Webrender
** {{Bug|1320030}} - Failure in conformance/extensions/oes-vertex-array-object.html - help investigation
** Share the architecture of WebRender 1.0
** {{Bug|1323367}} - [WebGL2 conformance test] conformance2/textures/misc/tex-input-validation.html crash - help investigation
* [https://public.etherpad-mozilla.org/p/Gecko-Inside-Sharing Gecko Graphics inside]
** reviews
** Host discussion meeting every two weeks
* Figure out Q1 testing plan for WebVR in Gecko
** Discuss and file {{Bug|1323327}} - (webvr-conformance) [webvr] [meta] Implement Cross-Browser WebVR conformance suite and tools
** Integrate our automated-test with OpenVR runtime source code to build up a conformance test suit like WebGL conformance tests.
* WebAPI practice
** Figure out how to design good WebIDL bindings for developers. Focus on types, attribute, WebIDL DOM bindings, Extended Attribute.
** Study
*** https://jstenback.wordpress.com/2012/04/07/history-of-mozillas-dom-bindings/
*** https://jstenback.wordpress.com/2012/04/11/new-dom-bindings/
*** http://tech.mozilla.com.tw/posts/1172/gecko-new-dom-bindings
*** http://tech.mozilla.com.tw/posts/5013/webidl-extended-attribute-大解密


=== Ethan Lin ===
=== Ethan Lin ===
* WebGL2 conformance
* WebGL2 conformance
** Fix high-priority failures in [https://public.etherpad-mozilla.org/p/webgl2-failures webgl2-failures]
** Update ANGLE/2862, ANGLE/2924
* Implement border-image-repeat: space
*** {{Bug|1303443}} - Update to ANGLE/2862
** {{Bug|720531}} - Implement border-image-repeat space keyword
*** {{Bug|1319004}} - Update ANGLE to chromium/2924
* focus-within
** Fix high-priority failures in [https://public.etherpad-mozilla.org/p/webgl2-conf webgl2-failures]
** {{Bug|1176997}} - Add support for pseudo class :focus-within
** review
* Enhance canvas performance
** {{Bug|1289975}} - Do not reset layer when setting the same dimension to canvas
** {{Bug|1296166}} - Avoid calling EnsureTarget in CanvasRenderingContext2D::GetImageData
** {{Bug|1293968}} - Avoid calling EnsureTarget in CanvasRenderingContext2D::GetImageBuffer
** {{Bug|1293970}} - Avoid canvas copy-on-write in CanvasRenderingContext2D::PutImageData and DrawWindow
* Stability
* Stability
** {{Bug|1287652}} - SEGV on unknown address 0x44 in [@mozilla::gfx::SetPaintPattern]
** Fix webgl/canvas crash issues
** {{Bug|1299062}} - heap-overflow and potential UAF [@mozilla::dom::CanvasRenderingContext2D::GetImageDataArray]
*** {{Bug|1298576}} - Division exception/EXCEPTION_INT_OVERFLOW in WebGl shader compiler
** {{Bug|1290628}} - MOZ_CRASH "d0 < fPathLength" in [@SpecialLineRec::addSegment()]
*** {{Bug|1299062}} - heap-overflow and potential UAF [@mozilla::dom::CanvasRenderingContext2D::GetImageDataArray]  
*** {{Bug|1317640}} - Crash [@ mozalloc_abort]  
*** {{Bug|1316926}} - Security Bug
* Quantum Render
** Address some rendering problems
*** {{Bug|1321231}} - Correct WebRenderLayer coordinate
*** {{Bug|1324679}} - Fix overflow area for wr_pop_dl_builder
** Display Item conversion - nsDisplayBorder
*** {{Bug|1322079}} - Add support for border layers in WebRender LayerManager/Bridge code


=== Jerry Shih ===
=== Jerry Shih ===
* WebGL2 conformance
* WebRender
** Fix high-priority "gl-object-get-calls" failures({{Bug|1236394}})
** Add shared texture support to WebRender
* Gecko stability
*** Add shared direct binding Texture support to WebRender
** windows device-reset related issue
**** {{Bug|1323143}} - remove the reference of external images in previous frame when the render_backend produces a new frame
***{{Bug|1160157}}, {{Bug|1276062}}, {{Bug|1292774}}, {{Bug|1298058}},
**** https://github.com/servo/webrender/pull/636
** WebGL fuzzy testing crash
*** Handle LayerTransaction sync problem for WebRender render_backend thread model.
***{{Bug|1259702}}
**** {{Bug|1320320}} - flush and wait the last frame's data before the webrender render() call
** WebGL crash
***** Will backout this bug after {{Bug|1323143}}
***{{Bug|1300486}}
** Use compositable for WebRenderXXXLayer
* CSS parser
*** {{Bug|1321141}} - make PWebRenderBridge support PCompositable
**{{Bug|1295456}} - css-color-4 implementation
*** {{Bug|1321144}} - use ImageClient/Host in WebRenderXXXXLayer
*** {{Bug|1325349}} - use ImageLayer's imageContainer directly in WebRenderImageLayer
* css-color-4 supportion in gecko
** {{Bug|1295456}} - Implement css-color-4 changes to color function syntax
* css-color-4 update for devtool
**{{Bug|1302787}} - add devtools support for css-color-4
**{{Bug|1310681}} - finish devtools support for css-color-4


===Kevin Chen===
===Kevin Chen===
* Android webgl mochitest failures
* gfx Stability
** Reproduce the crash.
** Working on device reset crashes
** Try to find the root cause.
*** {{Bug|1317267}} {{Bug|1317131}} {{Bug |1309829}} {{Bug|1292273}} {{Bug|1160157}} {{Bug|1323407}}
* Paint correctness
** Others
** SVG correctness support.
*** {{Bug|1313135}}
** {{Bug|1285320}} {{Bug|1264809}} {{Bug|1298318}}
* Figure out future plan
** Verify {{Bug|1284798}}
** Do some studies via code review and bug fixing for future plan.
* [https://public.etherpad-mozilla.org/p/Gecko-Inside-Sharing Gecko Graphics inside]
** CSS Painting API
** Give a presentation about [https://docs.google.com/presentation/d/1v8CyOsOwHsTdqnylUM5H6ZQ8wzJrHM8sosj6IWNIDrg/edit#slide=id.p DisplayList and Layer construction].
*** {{Bug|1318573}}
** Device Reset refactoring and stability


=== Morris Tseng ===
=== Morris Tseng ===
* WebGL2
* Quantum Render
** Fix high-priority failures in [https://public.etherpad-mozilla.org/p/webgl2-failures webgl2-failures]
** Build infra.
** Update ANGLE to chromium/2845
*** Separate bindings to different crate
** Enable ANGLE on WebGL2
*** Add compile option to exclude or include webrender.
* WebRender
*** Toggle webrender profiler by preference.
** Border: double support for WebRender
** Merged all webrender commands to single transaction.
** Worker.terminated implementation for servo.
** Using CanvasClient for WebRenderCanvasLayer.
** Discussion.
* WebGL2 conformance tests
* Unshipped bitmaprenderer and rename the function to match spec.


=== Peter Chang ===
=== Peter Chang ===
* gfx stability
** Update top crash/regression bugs within one week and fix them within one month
* WebGL2 conformance
** conformance suite upgrade 2.0
** Fix high-priority failures in [https://public.etherpad-mozilla.org/p/webgl2-failures webgl2-failures]


=== Vincent Liu ===
=== Vincent Liu ===
* WebGL Stability and Conformance test.
** all webgl2 crash bugs with all/windows categories in in [https://public.etherpad-mozilla.org/p/webgl2-conf webgl2-failures].
*** {{Bug|1313584}} - Hit MOZ_CRASH(GFX: Unhandled pname) at /Volumes/firefoxos/gecko-dev/dom/canvas/WebGLSampler.cpp:112
*** {{Bug|1314505}} - signal 11 was received by running dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/indexedstatequery.html
*** {{Bug|1320613}} - Crash in conformance/extensions/webgl-draw-buffers-feedback-loop.html
*** {{Bug|1323122}} - [In progress] Upgrade 2.0.0 Webgl conformance tests to top-of-tree
*** Arrange all webgl conformance test results on Etherpad in [https://public.etherpad-mozilla.org/p/webgl2-conf webgl2-failures].
** Bug triages
*** {{Bug|1319325}} - Crash in read-pixels-pack-parameters.html
* GFX stability.
* GFX stability.
** Update top crash/regression/2D canvas bugs within one week and fix them within one month
** Bugs triages
*** Fix {{Bug|1281800}}, {{Bug|1283113}}, {{Bug|1286458}}
*** {{Bug|1309073}} - Crashes when calling processOneGlyph() with finalPosition.fX = NaN
*** Clarify {{Bug|1206948}}, {{Bug|1254443}}
*** {{Bug|1306890}} - SEGV in SkBlitLCD16OpaqueRow_SSE2
*** Ever tried the first version of fix {{Bug|1287863}}
*** {{Bug|1311274}} - Canvas2dContext filter: filter-function taints the canvas
* [https://public.etherpad-mozilla.org/p/Gecko-Inside-Sharing Gecko Graphics inside]
** Crash bugs
** Host discussion meeting every two weeks
*** {{Bug|1310064}} - Crash in VerifyRGBXFormat in DrawTargetSkia.
*** A study and a internal sharing for Compositor.
** fix at least one bug from crash-report.
* Android webgl mochitest failures
***{{Bug|1322741}} - [In progress] Crash in mozilla::layers::SyncObjectD3D11::Init
** {{Bug|1285531}} - High number of jemalloc crashes in webgl
* Others
*** Find out a fixed way to reproduce this crash.
** {{Bug|1301459}} - In nsSVGMaskFrame::GetMaskForMaskedFrame, create surface by Factory::CreateDataSourceSurface.
*** Worked out WIP to approach this issue.

Latest revision as of 09:44, 4 January 2017

GFX Topics(from high to low priority)

  • gfx Stability
  • Quantum Compositor process (2016/Q4)
  • WebGL2 conformance(2017/Q1 target at 51)
    • focus on [*] or [WI] first
  • Quantum Rendering
  • Canvas 2D perf(google sheet/streaming)
  • DisplayList(layout related work)
  • Paint correctness(buglist)
  • Any layout works, ex: perf/CSS properties

Goal

ChihYi Leu

  • Fix webgl conformance bugs
    • bug 1316539 - [WebGL2 conformance test]Pass 2/conformance/textures/misc/tex-sub-image-2d-bad-args.html
      • land
    • bug 1316544 - [WebGL2 conformance test] Pass 2/conformance2/textures/misc/copy-texture-image-webgl-specific.html
      • land
    • bug 1316546 - Failure on 2/conformance2/textures/misc/copy-texture-image.html
      • Test correctness under discussion
  • Presentation skill
    • Proper speaking speed
    • Simple and clean description
  • GFX Stability
    • Fix webGL crashes, mostly filed by sheriff
      • bug 1304291 - Assertion failure: [GFX1]: RGBX corner pixel at (0,0) in 1280x868 surface is not opaque: 0,0,0,0
        • land
      • bug 1290831 - Hit MOZ_CRASH(Unexpected error with MOZ_GL_DEBUG_ABORT_ON_ERROR. (Run with MOZ_GL_DEBUG_ABORT_ON_ERROR=0 to disable)) at GLContext.h:759
        • land
      • bug 1300549 - Assertion failure: blob->mHeight >= 1, at WebGLTextureUpload.cpp:155
        • land
      • bug 1316327 - Crash in mozilla::WebGLFramebuffer::BlitFramebuffer (Webgl2.0 regression)
        • land
      • bug 1309586 - Assertion failure: false at WebGLContext.cpp:2274
        • Discussed with Ethan, it's more important to mitigate using CPU-side conversion instead of remove the assertion here.
  • Fix at least one crash from crash-stat (optional)

Daosheng Mu

  • WebVR Gamepad support
    • bug 1299926 - [webvr] [meta] Support HTC Vive controllers - land
      • bug 1299928 - [webvr] Enumerate HTC Vive Controllers through the Gamepad API - land
      • bug 1299929 - [webvr] Support HTC Vive button inputs and analogue triggers in the Gamepad API - land
      • bug 1299930 - [webvr] Support HTC Vive controller trackpads through the Gamepad API - land
      • bug 1299932 - [webvr] Support HTC Vive orientation and position tracking in the Gamepad API - land
      • bug 1315636 - [webvr] Support HTC Vive button release - land
      • bug 1299937 - [webvr] Support HTC Vive Haptic Feedback - r?
      • bug 1313581 - [webvr] Support HTC Vive controller hand through the Gamepad API - land
    • bug 1318586 - [webvr] Adjust OpenVR controller button mapping - land
    • bug 1320633 - [webvr] Refresh for new controllers coming in gfxVROpenVR - land
    • bug 1316279 - [webvr] WebVR in out-of-process compositing mode - land
    • bug 1321505 - [webvr] After reloading pages, it can't enumerate the controllers - land
    • bug 1313585 - nsGlobalWindow needs to remove the existing gamepads while it is removed by GamepadManager. - land
    • bug 1310904 - --disable-gamepad build fails: dom/gamepad/ipc/GamepadEventTypes.ipdlh: fatal error: 'mozilla/dom/GamepadMessageUtils.h' file not found - land
    • bug 1317706 - Remove Pose WebIDL because we can move the sharing implementation to our c++ code - land
    • bug 1318618 - Support nsCString data type in gfxPrefs in OOP compositor - land
    • bug 1320343 - Preferences::SetBool called from the content process in VRManager - land
    • bug 1311587 - Crash in mozilla::gfx::VRControllerManagerOpenVR::HandleInput - land
    • bug 1315718 - mGamepadManager looks like a security hazard - land
    • bug 1315896 - Remove MOZ_GAMEPAD and adjust for other non gamepad support platforms build. - land
    • bug 1323088 - Firefox Nightly 53.0a1 (2016-12-11) crashes in [@ @0x0 | mozilla::gfx::VRControllerManagerOpenVR ... ] & [@ @0x0 | mozilla::gfx::VRManager ... ] - land
    • reviews
  • WebGL2 conformance
    • focus on [*] or [WI] first in webgl2-conf
    • bug 1323626 - [WebGL2 conformance test] Pass conformance2/textures/misc/tex-mipmap-levels.html - help investigation
    • bug 1320030 - Failure in conformance/extensions/oes-vertex-array-object.html - help investigation
    • bug 1323367 - [WebGL2 conformance test] conformance2/textures/misc/tex-input-validation.html crash - help investigation
    • reviews
  • Figure out Q1 testing plan for WebVR in Gecko
    • Discuss and file bug 1323327 - (webvr-conformance) [webvr] [meta] Implement Cross-Browser WebVR conformance suite and tools
    • Integrate our automated-test with OpenVR runtime source code to build up a conformance test suit like WebGL conformance tests.
  • WebAPI practice

Ethan Lin

  • WebGL2 conformance
  • Stability
    • Fix webgl/canvas crash issues
      • bug 1298576 - Division exception/EXCEPTION_INT_OVERFLOW in WebGl shader compiler
      • bug 1299062 - heap-overflow and potential UAF [@mozilla::dom::CanvasRenderingContext2D::GetImageDataArray]
      • bug 1317640 - Crash [@ mozalloc_abort]
      • bug 1316926 - Security Bug
  • Quantum Render
    • Address some rendering problems
    • Display Item conversion - nsDisplayBorder
      • bug 1322079 - Add support for border layers in WebRender LayerManager/Bridge code

Jerry Shih

  • WebRender
    • Add shared texture support to WebRender
      • Add shared direct binding Texture support to WebRender
      • Handle LayerTransaction sync problem for WebRender render_backend thread model.
        • bug 1320320 - flush and wait the last frame's data before the webrender render() call
    • Use compositable for WebRenderXXXLayer
      • bug 1321141 - make PWebRenderBridge support PCompositable
      • bug 1321144 - use ImageClient/Host in WebRenderXXXXLayer
      • bug 1325349 - use ImageLayer's imageContainer directly in WebRenderImageLayer
  • css-color-4 supportion in gecko
    • bug 1295456 - Implement css-color-4 changes to color function syntax
  • css-color-4 update for devtool

Kevin Chen

Morris Tseng

  • Quantum Render
    • Build infra.
      • Separate bindings to different crate
      • Add compile option to exclude or include webrender.
      • Toggle webrender profiler by preference.
    • Merged all webrender commands to single transaction.
    • Using CanvasClient for WebRenderCanvasLayer.
  • WebGL2 conformance tests
  • Unshipped bitmaprenderer and rename the function to match spec.

Peter Chang

Vincent Liu

  • WebGL Stability and Conformance test.
    • all webgl2 crash bugs with all/windows categories in in webgl2-failures.
      • bug 1313584 - Hit MOZ_CRASH(GFX: Unhandled pname) at /Volumes/firefoxos/gecko-dev/dom/canvas/WebGLSampler.cpp:112
      • bug 1314505 - signal 11 was received by running dom/canvas/test/webgl-conf/checkout/deqp/functional/gles3/indexedstatequery.html
      • bug 1320613 - Crash in conformance/extensions/webgl-draw-buffers-feedback-loop.html
      • bug 1323122 - [In progress] Upgrade 2.0.0 Webgl conformance tests to top-of-tree
      • Arrange all webgl conformance test results on Etherpad in webgl2-failures.
    • Bug triages
      • bug 1319325 - Crash in read-pixels-pack-parameters.html
  • GFX stability.
    • Bugs triages
      • bug 1309073 - Crashes when calling processOneGlyph() with finalPosition.fX = NaN
      • bug 1306890 - SEGV in SkBlitLCD16OpaqueRow_SSE2
      • bug 1311274 - Canvas2dContext filter: filter-function taints the canvas
    • Crash bugs
      • bug 1310064 - Crash in VerifyRGBXFormat in DrawTargetSkia.
    • fix at least one bug from crash-report.
      • bug 1322741 - [In progress] Crash in mozilla::layers::SyncObjectD3D11::Init
  • Others
    • bug 1301459 - In nsSVGMaskFrame::GetMaskForMaskedFrame, create surface by Factory::CreateDataSourceSurface.