QA/Platform/Graphics: Difference between revisions
Jump to navigation
Jump to search
Full Query
Full Query
No edit summary |
|||
| Line 25: | Line 25: | ||
* [https://docs.google.com/spreadsheets/d/1us2Rw-xwKZvuvvTTidy96C5PPt3ivgB58LSDkmV0qnY/edit#gid=2 B2G Sanity Checks] (2015) | * [https://docs.google.com/spreadsheets/d/1us2Rw-xwKZvuvvTTidy96C5PPt3ivgB58LSDkmV0qnY/edit#gid=2 B2G Sanity Checks] (2015) | ||
* [[QA/Platform/Graphics/Toronto_Lab_Testing|Toronto Lab Testing]] (2015) | * [[QA/Platform/Graphics/Toronto_Lab_Testing|Toronto Lab Testing]] (2015) | ||
= Top Issues = | |||
== Blockers == | |||
<bugzilla type="bug"> | |||
{ | |||
"include_fields":"id,summary,status,last_change_time", | |||
"product":"Core", | |||
"resolution":"---", | |||
"query_format":"advanced", | |||
"bug_severity":"blocker", | |||
"f1":"component", | |||
"o1":"anywordssubstr", | |||
"v1":"Canvas: 2D, Canvas: WebGL, GFX: Color Management, Graphics, Graphics: Layers, Graphics: Text, Image Blocking, ImageLib, Panning and Zooming" | |||
} | |||
</bugzilla> | |||
== Crashes == | |||
<bugzilla type="bug"> | |||
{ | |||
"include_fields":"id,summary,status,last_change_time", | |||
"product":"Core", | |||
"resolution":"---", | |||
"query_format":"advanced", | |||
"f1":"keywords", | |||
"o1":"anywordssubstr", | |||
"v1":"topcrash", | |||
"f2":"component", | |||
"o2":"anywordssubstr", | |||
"v2":"Canvas: 2D, Canvas: WebGL, GFX: Color Management, Graphics, Graphics: Layers, Graphics: Text, Image Blocking, ImageLib, Panning and Zooming" | |||
} | |||
</bugzilla> | |||
== Features == | |||
<bugzilla type="bug"> | |||
{ | |||
"include_fields":"id,summary,status,last_change_time", | |||
"product":"Core", | |||
"resolution":"---", | |||
"query_format":"advanced", | |||
"f1":"keywords", | |||
"o1":"anywordssubstr", | |||
"v1":"feature", | |||
"f2":"component", | |||
"o2":"anywordssubstr", | |||
"v2":"Canvas: 2D, Canvas: WebGL, GFX: Color Management, Graphics, Graphics: Layers, Graphics: Text, Image Blocking, ImageLib, Panning and Zooming" | |||
} | |||
</bugzilla> | |||
= Metrics = | = Metrics = | ||
| Line 31: | Line 78: | ||
* Telemetry: [http://people.mozilla.org/~danderson/moz-gfx-telemetry/www/ GFX], [https://telemetry.mozilla.org/ All] | * Telemetry: [http://people.mozilla.org/~danderson/moz-gfx-telemetry/www/ GFX], [https://telemetry.mozilla.org/ All] | ||
* Bugzilla: [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html#sampleInterval=week&sampleMax=2015-11-07&sampleMin=2012-10-28&productFilter=core&componentFilter=canvas%3A+2d,canvas%3A+webgl,gfx%3A+color+management,graphics,graphics%3A+layers,graphics%3A+text,image+blocking,imagelib,panning+and+zooming Bug Age] | * Bugzilla: [http://people.mozilla.org/~klahnakoski/modevmetrics/Bug-Counts.html#sampleInterval=week&sampleMax=2015-11-07&sampleMin=2012-10-28&productFilter=core&componentFilter=canvas%3A+2d,canvas%3A+webgl,gfx%3A+color+management,graphics,graphics%3A+layers,graphics%3A+text,image+blocking,imagelib,panning+and+zooming Bug Age] | ||
= Understanding the Problem Space = | = Understanding the Problem Space = | ||
| Line 97: | Line 142: | ||
; Telemetry | ; Telemetry | ||
* COMPOSITE_TIME: time in CompositorParent::CompositeToTarget dispatching draw calls and calling SwapBuffers, but not texture upload (ie. complete composition) | * COMPOSITE_TIME: time in CompositorParent::CompositeToTarget dispatching draw calls and calling SwapBuffers, but not texture upload (ie. complete composition) | ||
Revision as of 23:47, 12 April 2016
Summary
This page holds important information related to testing and quality assurance for Gecko's graphics code.
- About the team
- Major code changes worth tracking
- Inventory of hardware available for testing
- PCI Device ID Catalog (useful for determining hardware make/model)
- Codenames of NVIDIA chipsets
- Information about graphics driver blocklisting
- Draft guides related to Graphics QA
Get Involved
Here are some ways you can help the Graphics team (and Mozilla):
- Run a sanity test
- Add your details to our inventory
- Send an e-mail to introduce yourself and get further direction
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.
- Past Activities (no longer active)
- Fennec Skia Sanity Checks (2015)
- B2G Sanity Checks (2015)
- Toronto Lab Testing (2015)
Top Issues
Blockers
No results.
0 Total; 0 Open (0%); 0 Resolved (0%); 0 Verified (0%);
Crashes
| ID | Summary | Status | Last change time |
|---|---|---|---|
| 1886765 | Crash in [@ mozilla::wr::RenderThread::PostRunnable] | NEW | 2025-12-15T12:15:24Z |
| 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 |
3 Total; 3 Open (100%); 0 Resolved (0%); 0 Verified (0%);
Features
40 Total; 40 Open (100%); 0 Resolved (0%); 0 Verified (0%);
Metrics
- Metrics-Graphics: staging, production
- Code Quality: Code Quality, Quality Indices
- Telemetry: GFX, All
- Bugzilla: Bug Age
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)