TPEGFX/2017-Q1
From MozillaWiki
< TPEGFX
Contents
GFX Topics(from high to low priority)
- gfx Stability
- Quantum Rendering(FF57 Aurora on 8/7)
- Canvas 2D perf(google sheet/streaming)
- DisplayList(layout related work)
- Paint correctness(buglist)
- Any layout works, ex: perf/CSS properties
Goal
ChihYi Leu
- WebGL Stability
- bug 1329051 - WebGL shader crashes with "shaderSource: Source has more than 262143 characters. (Driver workaround)" while it is working on Chrome and Edge
- land
- bug 1336710 - Crash in rx::Blit9::initialize
- land
- bug 1329051 - WebGL shader crashes with "shaderSource: Source has more than 262143 characters. (Driver workaround)" while it is working on Chrome and Edge
- WebGL conformance test
- bug 1324765 - Crash in std::vector<T>::_Buy
- land
- bug 1315037 - Intermittent dom/canvas/test/webgl-conf/generated/test_2_conformance__textures__video__tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html | Test timed out.
- Cause found, add diagnosis patch for future idenfication
- bug 1324765 - Crash in std::vector<T>::_Buy
- Assist Daosheng for his VR Gamepad Mochitest work if he has no bandwidth to do it.
- bug 1306505 - [webvr] Implement mochitest: VRDisplay.exitPresent must only be allowed by content that started VR Presentation
- land
- bug 1306505 - [webvr] Implement mochitest: VRDisplay.exitPresent must only be allowed by content that started VR Presentation
- TODO
- (done) update bugzilla more frequently
- gfx triage for WebGL(stability or regression)
- (done) Sharing testing environment/Fire request for video card purchase
- (done) Perform ANGLE update(before Mid of March) or Conformance suite upgrade
- bug 1347866 - Update ANGLE to chromium/2950
- land (4/12)
- bug 1347866 - Update ANGLE to chromium/2950
- WebGL spec/flow(or depend on Topics peter provided)
- (done) prepare for WebGL work week during 4/10
- WebGL demo profiling
- Survey async/multithread D3D shader compiling (See bug 1347866)
Daosheng Mu
- bug 1260558 - [webvr] [meta] Support Oculus Touch Controllers
- [Done] bug 1305873 - [webvr] Update Oculus support to the latest SDK (Currently 1.10)
- [Done] bug 1305889 - [webvr] Enumerate Oculus Touch Controllers through the Gamepad API
- [Done] bug 1305890 - [webvr] Support Oculus Touch button and analogue inputs in the Gamepad API
- [Done] bug 1305891 - [webvr] Support Oculus Touch orientation and position tracking in the Gamepad API
- [Done] bug 1305892 - [webvr] Support Oculus Touch Haptic Feedback
- WebVR conformance test suite
- [Done] bug 1323328 - [webvr] Implement Cross-Browser compatible tool for emulating VR hardware
- [Del] Integrate with OpenVR runtime source code to emulate the real device
- We choose to make a puppet device for our first step.
- [Done] Share conformance test suite to ensure compatibility across browsers as much as possible.
- [Done] Gamepad extension tests
- [Del] Integrate with OpenVR runtime source code to emulate the real device
- bug 1229479 - [webvr] Implement Mochitests for WebVR (optional)
- [Done] bug 1306493 - [webvr] Implement Mochitest: Multiple calls to VRDisplay.GetFrameData must return the same values within a frame
- bug 1306505 - [webvr] Implement mochitest: VRDisplay.exitPresent must only be allowed by content that started VR Presentation
- Forward to lenzak
- bug 1306507 - [webvr] Implement Mochitest: VRDisplay.isPresenting must not spill information between JS contexts
- bug 1311797 - [webvr] Implement Mochitest: `vrdisplayactivate` event should trigger only when no content is presenting
- bug 1311802 - [webvr] Implement Mochitest: onvrdisplaydeactivate should only trigger for content that is presenting
- [Done] bug 1323328 - [webvr] Implement Cross-Browser compatible tool for emulating VR hardware
- WebGL module work
- [Done] Figure out WebGL perf plan, like talos or perf improvement
- [Done] Study spec, https://github.com/KhronosGroup/WebGL/issues
- [Done] Review
- [Done] bug 1302341 - SVG link element focus behavior (optional)
- [Done] bug 1302340 - SVG elements and negative tabindex (optional)
- TODO
- Question list for WebGL perf
- investigate bug 1207170 - webgl perf
- highlight to peter about bandwidth concern for WebVR and WebGL
Ethan Lin
- Display item conversion
- [Done] nsDisplayBorder conversion
- Turn on border preference for some reftests (bug 1329609, bug 1331538)
- nsDisplayBorder - Enable more border properties (bug 1337291, bug 1337681, bug 1347445, bug 1346702)
- [Done] nsDisplayOutline conversion (bug 1340082)
- [Done] nsDisplayImage conversion (bug 1345053)
- [Done] nsDisplayButtonForeground conversion (bug 1344622)
- [Done] nsDisplayCanvasBackgroundColor conversion (bug 1343450)
- [Done] Fix rendering problem after display item conversion (bug 1330945, bug 1332688, bug 1354464, )
- [Done] nsDisplayBorder conversion
- [Done] Import ContentClient to WebRenderPaintedLayer (bug 1322504)
- QR mask layer enhancement (bug 1341565, bug 1354464, bug 1355012)
-
DisplayItem conversion perf- Simplify properties conversion
- gfx:Rect -> WRRect -> WrRect
- memory usage/memory copy/IPC cost when there are lots of displayitems
- Simplify properties conversion
- Come out plans for DisplayItem topic (bug 1342343)
- Consider wr_push/RenderLayer Overhead(Go to accumulated)/how to group different displyitem
- Copy WR items into gfx-wr-2017 with effort estimation
- mentor topics(optional)
- Team influence
Jerry Shih
- [Done] Webrender updating support
- bug 1329574 - enable depth-buffer when we use webrender
- [Done] Renderer thread support
- bug 1337661 - handle renderer thread reftest failed
- bug 1338274 - clean up non-renderer thread code
- bug 1337803 - turn on renderer thread by default
- WR external image integration
- update compositable, textureHost and textureSource for new WR thread model(WR render and WR backend are not at IPC receiver thread)
- [Done] bug 1338285 - WR external image callback interface
- [Done] bug 1340997 - implement external image handler in RendererOGL
- Try to use renderOGL with WRCompoisitables in renderer thread - 2 week
- bug 1341235 - External image integration
-
bug 1336956bug 1336963 - split textureHost into WRTextureHost and WRCompositableTextureHost - 2 days -
update textureHost::Create() to create WRxxxTextureHost - 2 days -
create WRCompositable - 1 day -
update WRImageHost base on bug 1336021 for renderer thread- 2 days
- Video playback in WR
- [Done] support GL_IOSurface in WR - 3 days
- [Done] bug 1347062 - Use texture handle directly for video with webrender - 3 days
- bug 1351187 - Try to use 1 image key for all yuv planes - 3 days
- bug 1351189 - Support DXGIYCbCrTextureHostD3D11 with Webrender - 5 days
-
Schedule a new composition to renderer when the CompositorBridgeParent receives a new video frame - 2 days - [TBD] Review the video playback path to show the video frame in WR - 3 days
- Software and hardware coding path
- [TBD] Handle the problem of different decoding size of video.
- https://github.com/servo/webrender/issues/943
- Sotaro is working for this with another approach(bug 1345054).
- [Done] [WR]handle shmem in WR(upload to gl texture in WR)
- bug 1330530 - support external shmem in Webrender - 1 week without review
-
support subimage for wr add_image api- This api is not used due to the SkPicture.
- update compositable, textureHost and textureSource for new WR thread model(WR render and WR backend are not at IPC receiver thread)
- Talked with JeffM. We will just use the original gecko path. No action for this item.
- compare the current gecko and the WR with all WRImageLayer for gallery-like page.
- breackdown every item into one small bug(less than one month)
- Copy WR items into gfx-wr-2017 with effort estimation
- mentor topics
- Team influence
Kevin Chen
- gfx Stability
- nvwgf2umx.dll crashes
- bug 1292273 - Crash in nvwgf2um.dll | BaseThreadInitThunk
- bug 1325933 - Crash in nvwgf2um.dll | TCLSWrappers<T>::CLSDestroy
- bug 1328082 - Crash in nvwgf2umx.dll | NDXGI::CDevice::DestroySynchronizationObjectCB
- device reset crashes
- bug 1160157 - non device reset startup forced crash in mozilla::layers::SyncObjectD3D11::FinalizeFrame()
- (Done) bug 1352376 - Failed to create ContentDevice in content process after device reset
- (Done) bug 1338639 - Crash in mozilla::layers::SyncObjectD3D11::Init
- bug 1160157 - non device reset startup forced crash in mozilla::layers::SyncObjectD3D11::FinalizeFrame()
- Add tests
- (Done) bug 1300699 - Add a gtest to prevent using basicCompositor with d3d11/d3d9TextureHost
- nvwgf2umx.dll crashes
- DOM-Labeling
- (Done) Analyze dispatch tasks with task tracker.
- (Done) bug 1343758 - gfx-labeling Label runnables in gfx vr.
- (Done) bug 1343479 - gfx-labeling Label runnables in apz.
- (Done) bug 1343472 - gfx-labeling Label runnables in gpu process.
- gfx triage practice
- https://bugzilla.mozilla.org/page.cgi?id=user_activity.html&action=run&who=kechen%40mozilla.com&from=2017-01-01&to=2017-03-31&group=when
- (Done) bug 1329090 - Use invalid size in GrResourceProvider::createBuffer in firefox 51
- (Done) bug 1328872 - Crash in CDIProperties<T>::SetValue
- Houdini Painting API
- bug 1318573 - Refactor Canvas2D API to support a subset for Houdini Paint API
- bug 1324740 - Implement PaintRenderingContext2D for Houdini API
- (Done) bug 1331857 - Create a base class for CanvasRenderingContext2D
- integrate with paint worklet and add test case for it
- Campus presentation
- 2/22 @ TsingHua University.
-
WebRenderer support - TODO
- breackdown every item into one small bug(between two week or less than one month)
- frequently bugzilla updates
Morris Tseng
- Canvas support
- bug 1322500 - Using CanvasClient for canvas (done)
- Share ANGLE surface
- bug 1328493 - Injecting DXGI resources to ANGLE as gl texture. (done)
- bug 1340871 - Content need to know webrender is using ANGLE or not. (done)
- bug 1323316 - Use ANGLE for WebRender (done)
- Display item conversion
- bug 1339683 - Convert nsDisplayBullet to DisplayItemLayer. (done)
- bug 1328494 - Support nsDisplayBullet. (done)
- bug 1341156 - Support image border in Quantum Render. (done)
- bug 1347469 - Supports gradient border in quantum render (done)
- bug 929484 - Make HTML table frames (including row/cell/etc. frames) create their own display list items
- WebRender/servo improve
- Add two new rectangle structures in webrender. (done)
- Supports gradient border in webrender. (done)
- Supports gradient border in servo (done)
- Misc
- bug 1332798 - Crash in <name omitted> | mozilla::widget::RectTextureImage::BeginUpdate (done)
Peter Chang
- OMTA
- [Done]dispatch animation/animationdata (bug 1325022) ~ two weeks
- Works in compositor side
- [Done]Remove the layer dependency in SampleAnimation (bug 1328229/1332211) ~ two weeks
- Add sampleanimation(bug 1345017) ~ two weeks
- Calling new WR API with new animated value ~ one weeks
- <del>replay WRcmds in WRBridgeParent if animation exists (bug 1328231) ~ three weeks
- recording WRCmds
- update animation value from the related div
- replay saved WRcmds
- [WR][Done]Add support to Webrender(opacity and scaling) ~ Done by Glenn
- Support OMTA testing flow
- remove layerHandle for omta testing api(bug 1337889)
- Save CompositorAnimationsId/Animation Data/animation value
- Query transform/opacity based on CompositorAnimationsId
- move OMTA testing methods into share sub-protocol(bug 1316906)
- remove layerHandle for omta testing api(bug 1337889)
Vincent Liu
- gfx Stability
- Monitor crash bugs in the list - every day.
- Study listed cash bug in two days. (reproduce, find a possible way to fix).
- bug 1322741 - [Done]Crash in mozilla::layers::SyncObjectD3D11::Init
- bug 1329849 - [Done]crash at null [@DataAtOffset] in gfx/2d/DataSurfaceHelpers.cpp:91
- bug 1331925 - [Done]canvas.toBlob callback not invoked when height is 0
- bug 1336351 - [Done]canvas.toBlob callback should be async when height or width is 0
- bug 1337009 - [Done]Re-enable CSS shapes reftests and CSS text reftests on Windows debug builds
-
bug 1339751 - [Working]Add gfxCriticalNote to dump error message when calling into ipc FatalError. -
Add information to indicate OOM - bug 1332980 - [Working]Assertion failure: aKernelUnitLengthX > 0 (aKernelUnitLengthX can not be a negative or zero value)
- bug 1343851 - [Done]Crash in mozilla::gl::SurfaceFactory::NewTexClient
- bug 1314543 - [Done]Crash in mozilla::gfx::FeatureChange::AssertSanity | "unexpected type tag"
- bug 1347617 - [Done]Memory disclosure in ConvolvePixel
- Triage with other people to find out better way to fix.
- bug 1325518,bug 1329432,bug 1328748,bug 1328905,bug 1329083,bug 1329176,bug 1329415,
- bug 1325259 - Assertion failure: [GFX1]: RGBX corner pixel at (423,51) in 846x103 surface is not opaque
- bug 1300355 - intermittent blank reftest test or reference screenshots on win7 PGO
- bug 1339080 - Crash in mozalloc_abort | NS_DebugBreak | mozilla::ipc::FatalError | mozilla::dom::ContentChild::FatalErrorIfNotUsingGPUProcess | libxul.so@0xd8d46b | mozilla::layers::PCompositorBridgeChild::SendPTextureConstructor
- bug 1340876 - WebVR demos on Android crash, e.g. in libstagefright_soft_vpxdec.so
- bug 1331371 - Intermittent file:///C:/slave/test/build/tests/reftest/tests/layout/reftests/w3c-css/submitted/variables/variable-supports-13.html | application terminated with exit code 1 after Assertion failure: [GFX1]: Failed to create DrawTarget
- bug 1347098 - Crash in mozilla::gfx::DrawTargetD2D1::factory
- WebGL Conformance Test
- bug 1323122 - [Done]Upgrade 2.0.0 Webgl conformance tests to top-of-tree - done
- [Done]Hold a triage meeting to go through triage.
- TODO (senior engs)
- breackdown every item into one small bug(less than one month)
- mentor topics
- Team influence
- Solid gfx triage/crash improvement plan
- Triage flow
- Hold a triage meeting to go through triage.
open qusetion
- TODO (senior engs)
- breackdown every item into one small bug(less than one month)
- Copy WR items into gfx-wr-2017 with effort estimation
- mentor topics
- Team influence
Ethan
disable fallback for reftest share the same mapping between c++/rust by code generator
evaluate displayitem conversion performance/memory usage
Morris
how to support image layer more efficiently(similar to jerry's question?)
Jerry
image resource lifetime problem
peter
omta always repaint all pixel in WR