QA/Platform/Graphics: Difference between revisions

From MozillaWiki
< QA‎ | Platform
Jump to navigation Jump to search
Line 28: Line 28:


=== <small>[[QA/Platform/Graphics/Triage|Triage]]</small> ===
=== <small>[[QA/Platform/Graphics/Triage|Triage]]</small> ===
This section tracks periodic review of various types of issues to ensure efficient resolution of the most important issues.
{{:QA/Platform/Graphics/Triage}}
{{:QA/Platform/Graphics/Triage}}



Revision as of 21:48, 13 April 2016

Summary

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

Metrics:

Get Involved

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

Activities

Current Activities

  • 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.

Triage

This section tracks periodic review of various types of issues to ensure efficient resolution of the most important issues.

Get Involved

Want to help with or learn about triage? Contact me!

Help Wanted

Once per week, typically on Monday, we review bug reports tagged with help-wanted older than 30 days to ensure these issue are still relevant and on track to resolution.

How to Triage:

  1. Select a bug from this list
  2. Review the bug to make sure you understand the bug report and the information needed to move it forward
  3. Attempt to reproduce the bug
  4. If you can reproduce the bug, attempt to find a regression window either manually or using mozregression
  5. Update the bug report with any new information you can provide
  6. If you can't reproduce the issue or don't understand the issue, move on to the next bug report

Whenever updating a bug report be sure to add a comment explaining the change.

Incoming

Once per week, typically on Tuesday, we review bug reports that were reported more than 30 days ago but have yet to be triaged by the Graphics team.

How to Triage

  1. Select a bug from this list (it's best sort by most recent changed first)
  2. Review the information in the bug and make sure you understand the issue
  3. If the bug is a feature request, add the feature keyword and move on to the next bug
  4. Request for information from the report if there is information missing (regression window, steps to reproduce, minimized testcase, screenshots, system information, etc)
  5. If you can reproduce the issue as described then update the bug and escalate it to a graphics developer
  6. If you cannot reproduce the issue, ask a developer or the reporter if the bug is still valid
  7. Be sure to add the gfx-noted tag to the whiteboard field once triaged
  8. Move on to the next bug report if you can

Top Crashes

Once per week, typically on Wednesday, we review our top crash reports to ensure these issues have bug reports on track toward resolution.

How to Triage

Note: Whenever updating a bug report be sure to add a comment explaining the change.

  1. Review the reports above
  2. If you see a graphics crash that doesn't have a bug report, file a bug report for it
  3. If you see a graphics crash with an associated bug ID, open the bug report and update the statistics for the bug
  4. If the crash is escalating and is now in top-crash territory, add the topcrash keyword and nominate the bug to track
  5. If the crash is declining and is no longer in top-crash territory, remove the topcrash keyword
  6. Repeat the process for each crash you find in the list

Cold Crashes

Once per week, typically on Thursday, we review crash bug reports we have on file that have not been updated in more than 30 days to ensure these issues are still relevant and on track to resolution.

How to Triage:

  1. Load this list of bugs and sort by most recent changed
  2. Open the first bug report and review the information
  3. Check if there are anymore crash reports by clicking the signature link
  4. If there are no more crash reports, close the bug
  5. If there are still bug reports, update the statistics in the bug report and see if you can reproduce
  6. If you can't reproduce, ask the reporter for new information
  7. If you can reproduce, ask the developer what information is needed to move the bug forward
  8. Update the bug with any new information and move on to the next bug report

Cold Trackers

One per week, typically on Friday, we review tracked bug reports that have not been updated in more than 30 days to ensure these issues are still relevant and on track to resolution.

How to Triage:

  1. Select a bug from this list (sort by most recent changed)
  2. Review the information in the bug report
  3. Try to deduce if the bug is still relevant through testing, reviewing linked reports, or asking people involved on the bug
  4. If the bug is still relevant, update the status/tracking flags, and needinfo flag the developer for a status update
  5. If the bug is no longer relevant, update the status flags and close the bug report
  6. Once you've updated the bug move on to the next bug report

Cold Regressions

One per week we review old regression bug reports that have not been updated in more than 42 days to ensure these issues are still relevant and on track to resolution.

How to Triage

1. Select a bug from this list and review the information in the report

2. Make sure each bug has the following information:

  • a regression window (see step 4 if it doesn't)
  • [gfx-noted] in the whiteboard field
  • Has Regression Window and Has STR flags set to the correct value
  • 'status-firefox flags set to the correct values (old versions can be cleared, new versions can be set to ? if unknown)

3. Use the needinfo? flag and ask the bug reporter to test if the bug still occurs in the current Firefox Nightly

4. (Optional) See if you can reproduce the bug yourself and add a comment to the bug describing your test environment and result. If you're able to reproduce the bug use Mozregression to find the regression window. Be sure to use the needinfo:? flag to bring the bug to my attention (ashughes).

Past Activities

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
1728118 Intermittent <test-name> | application crashed [@ webrender::spatial_tree::SpatialTree::add_spatial_node] NEW 2026-03-15T22:42:12Z
1908798 Crash in [@ IPCError-browser | GPUProcessKill] NEW 2025-10-28T09:21:35Z
1996653 Mac GPU process: Crash in [@ IPCError-browser | GPUProcessKill] NEW 2025-12-04T22:02:30Z
2024553 Crash in [@ mozilla::dom::BrowserChild::RecvRealKeyEvent] NEW 2026-03-27T15:27:19Z
2026487 Latest nightly (build 20260325212151) crashing on mozilla::layout::ScrollbarActivity::IsActiv NEW 2026-03-26T22:34:53Z

5 Total; 5 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 2026-02-27T15:01:38Z
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 2026-03-09T16:49:19Z
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
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 2026-03-16T03:15:27Z
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 2026-02-21T13:04:49Z
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-03-26T00:44:23Z
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

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


New Issues

Full Query
ID Summary Last change time
2020179 Hardware acceleration rendering issue in full screen mode (Linux, Mesa 26.0.1) 2026-03-29T00:31:24Z
2020192 Frame rate is limited to the monitor with lowest FPS 2026-03-12T13:00:54Z
2020195 Canvas displays screen content from other applications due to NVIDIA/dmabuf 2026-03-27T15:03:04Z
2020420 Fullscreen mode goes black in Youtube when hardware acceleration is enabled 2026-03-19T17:16:08Z
2020498 about:unloads table should use font-variant-numeric: tabular-nums for readable number comparison 2026-03-02T21:42:02Z
2020561 naga::front::wgsl::lower::construction::Lowerer::construct panics with unwrap on LayoutError { inner: TooLarge } during WGSL lowering 2026-03-09T17:06:55Z
2020844 macOS - With Layer Compositor enabled, Large parts of UI (Address bar) and UI of pages with videos glitch 2026-03-09T18:48:24Z
2020894 canvas measureText() returns incorrect (inflated) width for emoji at small font sizes 2026-03-12T05:34:35Z
2020917 canvas measureText() resolves system-ui / -apple-system to a different font than DOM on macOS 2026-03-12T05:33:23Z
2021679 scroll-timeline named timeline defined on a shadow host (:host) is not resolved by elements inside the shadow tree 2026-03-27T20:11:45Z
2021701 Jank/jump when touch-scroll chains from a nested scroll container to a scroll-snap-type: y mandatory parent 2026-03-27T05:11:30Z
2021755 Animations in www.iranmonitor.org cusing high GPU usage on Firefox 2026-03-23T12:09:37Z
2021906 Firefox Becomes Active Window; Unable to Click Into Other App 2026-03-19T20:14:46Z
2021952 scroll-snap container resnaps during active pan gesture when a CSS scroll-driven animation causes a reflow on descendant 2026-03-26T21:06:49Z
2021980 Character reference to a carriage return results in wrapping _before_ the CR 2026-03-18T00:42:26Z
2022430 guacamole-server 1.2.0 does not render correctly since Firefox 148.0.0 (64) [Paste prompt] 2026-03-12T04:49:21Z
2022521 backdrop-filter (via Tailwind backdrop-brightness-* / backdrop-blur-*) renders incorrectly on modal overlays and sidebars, making text unreadable 2026-03-12T16:03:54Z
2023126 Broken rendering of a font with combining diacritics 2026-03-14T09:13:06Z
2023129 Ability to disable overlay scrollbar in CSS 2026-03-13T11:42:08Z
2023250 Significant increase in GPU usage during fullscreen YouTube playback on GLES2 2026-03-24T20:04:11Z
2023304 popover doesn't follow translated anchor 2026-03-14T03:35:41Z
2023444 YouTube HDR video is severely overexposed on Windows in Firefox Nightly while SDR video renders correctly 2026-03-17T12:56:36Z
2023445 Regression: clip-path inset rounded corner renders as square at bottom-left when zoom >= 133% 2026-03-19T14:24:37Z
2023457 NotSupportedError when transferring an OffscreenCanvas between two Workers via MessageChannel 2026-03-26T17:46:18Z
2023466 Pop out window is faded, or or has greyish cast 2026-03-16T12:24:54Z
2023546 Incorrect anchor-size calculation on transformed elements 2026-03-16T12:29:36Z
2023700 inherit on descendants of composited animations only updated occasionally 2026-03-22T14:43:28Z
2023826 FIREFOX DOES NOT SHOW CORRECTLY APTOS FONTS FAMILY 2026-03-25T23:50:52Z
2024908 Windows touch keyboard ignores autocorrect="off" on input/textarea and content-editable elements 2026-03-23T11:38:36Z
2025075 Tooltips containing long texts lacks the right side of their outline 2026-03-26T14:49:46Z
2025200 Canvas2D InlineTranslator Lookup methods use MOZ_ASSERT-only validation across IPC boundary 2026-03-24T23:00:51Z
2025208 WebGPU: periodic ~2s Cycle Collector pauses in rAF loop using wasm-bindgen WebGPU bindings 2026-03-23T18:24:58Z
2026570 WebGPU Video uploading sample fails with shader validation error 2026-03-26T12:07:19Z
2026690 Scrolled postion isnt restored after reloading 2026-03-26T17:54:14Z
2026792 Re-evaluate blanket DMABUF_SURFACE_EXPORT blocklist for mesa drivers 2026-03-26T21:10:39Z
2026854 Using autoscroll to scroll up to older X/Twitter DMs causes intense flickering 2026-03-27T05:52:24Z
2026937 Hardware Acceleration causes glitching in Firefox 149. It also shows some images as black and videos as plain green. Also regardless of hardware acceleration I see a line showing whatever is behind firefox window appear and disappear while scrolling. 2026-03-29T01:03:34Z
2027025 ClipboardEvent constructor does not set clipboardData 2026-03-27T16:13:20Z
2027228 Crash in [@ mozilla::detail::RWLockImpl::writeLock()] on RegisterFonts thread at startup (macOS ARM64, headless automation) 2026-03-28T03:32:21Z
2027413 Freeze when hardware acceleration is on 2026-03-28T12:52:27Z
2027432 [WebRender] Layer compositor causes rendering issues and breaks video 2026-03-28T15:50:36Z
2027437 Firefox 149 - Issue with WebGL support and NVIDIA Quadro K2100M 2026-03-28T16:42:08Z
2027508 Firefox 149.0 rendering is broken when scaling performed by System 2026-03-29T13:08:35Z

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


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)