QA/Platform/Graphics

From MozillaWiki
Jump to navigation Jump to search

Summary

This page holds important information related to testing and quality assurance for Gecko's graphics code.

Get Involved

Here are some ways you can help the Graphics team (and Mozilla):

Activities

Current Activities

The following activities are on-going:

  • Betabreakers runs sanity tests of major changes at least once during each new Aurora version
  • One & Done is used to enable volunteers to participate in sanity testing
  • Triage is done daily from 10am to 11am Pacific to ensure effective resolution of critical issues, each day focusing on a different category of issues.

Past Activities

The following activities are no longer active:

Top Issues

Blockers

No results.

0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);


Crashes

Full Query
ID Summary Status Last change time
1908798 Crash in [@ IPCError-browser | GPUProcessKill] NEW 2025-10-28T09:21:35Z
1972146 Crash in [@ <unknown in igd10um64xe.dll> | CContext::TID3D11DeviceContext_Draw_<T>] NEW 2026-01-26T12:15:09Z
1996653 Mac GPU process: Crash in [@ IPCError-browser | GPUProcessKill] NEW 2025-12-04T22:02:30Z
2007715 Hit MOZ_CRASH(Element state change during style refresh (6291456)) at /builds/worker/checkouts/gecko/layout/style/RestyleManager.cpp:3374 NEW 2026-01-14T18:00:39Z
2009124 Crash in [@ WerpWaitForCrashReporting | RtlReportExceptionHelper | RtlReportException | LdrpInitializeNode$filt$1] NEW 2026-01-14T12:12:01Z
2011700 Crash in [@ webrender::render_task::render_task_sanity_check] ASSIGNED 2026-01-26T16:31:17Z
2011999 Crash in [@ wgpu_hal::dx12::Adapter::expose] ASSIGNED 2026-01-26T20:10:57Z

7 Total; 7 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Features

Full Query
ID Summary Status Last change time
703217 Implement image() from CSS Image Values and Replaced Content Module Level 4 NEW 2022-10-11T00:04:16Z
790640 add Media Fragments for images (spatial dimensions) NEW 2023-02-16T08:13:30Z
952539 WebGL should support efficiently uploading a subrect of a canvas to a texture NEW 2024-08-14T10:25:46Z
1152974 Enable by default DEAA (Anti-aliasing) for Linux NEW 2023-08-11T18:19:59Z
1200864 Skip DrawElements buffer validation when we have robust_buffer_access NEW 2023-03-24T17:36:32Z
1223880 Implement initial-letter (from CSS Inline Layout Module Level 3) NEW 2025-09-18T13:44:23Z
1233569 Deprecate RGB8 from being renderable in WebGL 1 NEW 2022-10-11T17:53:19Z
1237489 [webvr] Add basic MOZ_texture_from_element to enable creating a texture from an arbitrary element NEW 2022-10-11T17:55:16Z
1244513 webm videos should be color corrected UNCONFIRMED 2022-10-11T17:59:31Z
1264543 [meta] Out-of-process compositing NEW 2024-09-22T12:02:05Z
1282074 Support very large canvases NEW 2026-01-26T20:38:49Z
1302685 [meta] Support OpenType Font Variations (Variable fonts) NEW 2025-10-02T18:45:57Z
1309309 Report memory used by ANGLE in about:memory as its own block? NEW 2022-10-11T18:39:33Z
1350292 Memory allocated by WebGL in WebGLBuffer::BufferData is not tracked in about:memory (detected by DMD in heap-unclassified) NEW 2024-03-05T08:06:06Z
1367003 Page slow to load when scrolling up and down. NEW 2022-10-11T19:19:15Z
1371101 Run color, border-color, and background-color animations off the main thread NEW 2024-04-03T03:21:39Z
1371108 WebGL: Make default back buffer default to 8x8 AA when available UNCONFIRMED 2022-10-11T19:21:50Z
1371627 GL_EXT_draw_buffers extension not supported UNCONFIRMED 2022-10-11T19:22:13Z
1371836 Provide a performance object for the WebGL canvas NEW 2022-10-11T19:22:42Z
1374710 GLBlitHelper should cache the various shaders NEW 2025-04-05T10:08:55Z
1381098 imageBitmap should provide an api to pull out raw pixel data (unmodified) without having to draw it to a canvas or a renderBuffer. This should be able to run in a webworker UNCONFIRMED 2023-08-07T12:24:48Z
1391345 Some emoji on the emojione demo page don't show up NEW 2022-10-11T19:36:02Z
1392080 Feature request : NPAPI being phased out : please provide an alternative for direct Vulkan/Direct3ᴅ12 access for viewing stereoscopic videos ! UNCONFIRMED 2025-11-15T02:05:08Z
1402293 Implement support for High Efficiency Image File Format (HEIF) NEW 2025-12-27T11:39:46Z
1403299 Support rendering fonts via FreeType on Windows NEW 2024-07-25T05:06:45Z
1403933 Support standard swizzle in D3D11 texture NEW 2025-08-04T12:18:17Z
1412350 Support Color Management on Android NEW 2024-05-31T01:24:55Z
1428954 Support encoding .ico files with multiple sizes NEW 2022-10-11T21:09:36Z
1443863 Implement support for AV1 Still Image File Format (AVIF) NEW 2025-03-02T15:12:52Z
1461360 [meta] Cross-platform dependencies for pinch-zooming on desktop NEW 2023-04-23T08:13:11Z
1476861 Implement FillRoundedRect for DrawTargetSkia ASSIGNED 2022-10-11T21:48:00Z
1477078 Implement PushClipRoundedRect for DrawTargetSkia ASSIGNED 2022-10-11T21:48:11Z
1480894 Implement wide-gamut support on Canvas NEW 2022-10-11T21:51:27Z
1516362 Selecting text using background-clip: text should probably change the text color NEW 2022-10-11T22:20:40Z
1522397 Displayed content in active tab doesn't adapt to screen resolution changes when connecting/disconnecting external monitor NEW 2023-05-24T13:32:17Z
1532721 Re-enable D2D on Qualcomm devices when able NEW 2024-06-19T14:13:44Z
1536809 Add support for Canvas 2D "desynchronized" construction attribute UNCONFIRMED 2025-09-18T13:44:10Z
1539075 Implement support for JPEG XL (image/jxl) ASSIGNED 2026-01-26T12:04:47Z
1547612 Use Lanczos method for upscaling images for different zoom levels NEW 2023-01-14T09:05:28Z
1605234 [meta] Support elastic overscroll on desktop NEW 2025-12-10T21:05:44Z

40 Total; 40 Open (100%); 0 Resolved (0%); 0 Verified (0%);


New Issues

Full Query
ID Summary Last change time
2007849 Found a gradient that makes my screen to flicker 2026-01-13T02:06:16Z
2007898 Firefox color management regression: incorrect canvas/PDF rendering on multi-monitor systems with different ICC profiles (washed-out colors) 2026-01-13T20:03:52Z
2008044 Static filename "image.png" for clipboard images prevents multiple uploads in web apps (e.g. Google Gemini) 2025-12-31T10:00:11Z
2008071 Firefox on Linux doesn't support 10 bit 2026-01-09T13:40:53Z
2008103 WebGPU scheduling issues with `onSubmittedWorkDone` and crash on window resize 2026-01-08T16:18:02Z
2008298 faint grid lines and text "strikethrough" glitches 2026-01-02T10:59:56Z
2008384 Gnome On Screen Keyboard Doesn't Work With Extensions 2026-01-09T07:48:18Z
2008445 Font Changed to Helvetica 2026-01-24T00:35:12Z
2008452 Developer Console doesn't show background images loaded by CSS 2026-01-04T10:43:21Z
2008506 [BSD] firefox exits with a segmentation fault in headless mode in freebsd cause of having no X-server and gpu 2026-01-12T08:24:13Z
2008637 Integer overflow in ShmSegmentsReader can lead to crash 2026-01-06T14:18:12Z
2009062 memory leaks and freezing 2026-01-08T18:00:27Z
2009317 Can't stop gif animation 2026-01-15T22:09:16Z
2009373 The CSS property `backdrop-filter` conflicts with Nvidia VSR. 2026-01-17T13:12:40Z
2009506 [WebGPU] [aarch64] [arm64] @ dri2_allocate_textures 2026-01-16T15:46:10Z
2009570 HDR has a glitched scroll 2026-01-20T04:42:03Z
2010367 position-try: flip-block is not properly flipping margin on element. 2026-01-26T13:45:38Z
2010645 WebGL Google map turns black after zooming in and out a few times 2026-01-20T21:52:20Z
2010717 Implement alignment-baseline: alphabetic 2026-01-16T00:14:42Z
2010718 Implement alignment-baseline: ideographic 2026-01-16T00:14:42Z
2010719 Implement alignment-baseline: central 2026-01-16T00:14:42Z
2010720 Implement alignment-baseline: mathematical 2026-01-16T00:14:42Z
2010721 Support alignment-baseline property for SVG text 2026-01-16T00:14:42Z
2011051 sign(-1.0) in webgpu/wgsl returns nonsense in Firefox on Windows 2026-01-20T14:22:10Z
2011057 color-interpolation-filters ignored when clip-path is set 2026-01-19T02:33:30Z
2011058 Scrolling stutters every few seconds 2026-01-22T23:20:42Z
2011082 WebGPU on Apple Silicon causes system-wide video/animation stutter 2026-01-26T18:10:00Z
2011333 control+w rapidly closing tabs 2026-01-23T10:00:31Z
2011439 The CSS "filter" property resets the "cursor" property when dragging 2026-01-20T16:19:59Z
2012000 motionMark scores are much slower on firefox compared to ungoogled chromium 2026-01-26T12:31:55Z
2012226 FOUT mitigation delay cannot be disabled 2026-01-24T01:56:00Z
2012288 Writing or rendering to a "2D array texture" seems to ignore the layer index 2026-01-24T17:54:36Z
2012431 Anchor-positioning not working with shadow-DOM parts 2026-01-26T11:42:02Z

33 Total; 33 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Metrics

Understanding the Problem Space

First order of business for my transition to the Graphics team is to understand the problem space so I can understand the immediate needs of the team and make the best impact I can in the shortest amount of time.

What are the key problems/challenges facing the Graphics team in terms of quality?
  • discrepancy in environments between testers and release users
  • discoverability of bugs pre-release
  • ?...
Where can QA add value/support to the Graphics team?
  • improving pre-release discoverability of bugs
  • closing the gap between tester and release systems
  • helping with bug triage, particularly with bugs hiding in general components
  • representation in crashkill
  • improving code coverage and/or identifying gaps in code coverage
  • identifying ways to improve participation in the graphics team (events, projects, One & Done, etc)
  • documentation of tools, testing processes, etc
  • building out the lab in Toronto
  • continuing to drive Betabreakers testing every 6 weeks
  • verifying bug fixes (what does this look like)?
  • profiling areas of risk (eg. troublesome configs)
  • conducting root cause analysis for regressions
  • understanding problems outside of our control (eg. driver resets)
  • feature testing and upcoming priorities (e10s, Windows 10, El Capitain, Android, B2G, etc)
What does QA need to know to be effective?
  • key components of an actionable Graphics bug
  • fundamentals/technologies that should be learned
  • how to distinguish a graphics crash from a non-graphics crash with a graphics signature
  • meetings, mailing lists, bugzilla components to watch, blogs, IRC channels to join, etc
  • who is each member of the team (incl. contributors) and what do they do
  • where does graphics code reside in the tree?
  • what role does Unified Telemetry in graphics quality?
  • what are the prefs to enable/disable different functionalities?
  • we need a database of known-troublesome hardware/driver configurations to inform testing, hardware acquisitions, and blocklisting
Understanding the Stability
  • How do we identify a graphics crash?
    • by signature: gfx, layers, D2D, D3D, ?...
    • by topmost filename: gfx, ?...
    • by driver (DLL, version, ?...)
    • by device/vendor ID?...
    • ?...
  • How do we prioritize graphics crashes?
    • Overall topcrashes in release > beta > aurora > nightly
    • Gfx crashes in release > beta > aurora > nightly
    • Explosive crashes in release > beta > aurora > nightly
  • What tools do we have at our disposal to investigate crashes?
    • Bughunter for investigating crashes correlated to a URL
    • KaiRo's reports for identifying crashes that are new or escalating quickly
    • Socorro for getting detailed information about crash reports
  • What information is needed to make a crash actionable by developers?
    • Correlations to particular hardware, driver, add-on, 3rd-party software, or library
    • ?...
Participation
  • Sanity checking via One & Done
  • Meetups to connect testers/users with devs
  • Testdays to teach people about graphics testing
  • Documentation and translation of documentation
  • Engaging on community spaces (Discourse, Reddit, Facebook, Twitter, etc)
Telemetry
  • COMPOSITE_TIME: time in CompositorParent::CompositeToTarget dispatching draw calls and calling SwapBuffers, but not texture upload (ie. complete composition)