QA/Platform/Graphics/Features/GPU Process: Difference between revisions
| (65 intermediate revisions by the same user not shown) | |||
| Line 344: | Line 344: | ||
|- | |- | ||
|} | |} | ||
= Experiments = | = Experiments = | ||
| Line 387: | Line 377: | ||
** [https://sql.telemetry.mozilla.org/queries/2069/source Experiment by process model] | ** [https://sql.telemetry.mozilla.org/queries/2069/source Experiment by process model] | ||
** [https://sql.telemetry.mozilla.org/queries/2065/source Experiment by process type] | ** [https://sql.telemetry.mozilla.org/queries/2065/source Experiment by process type] | ||
= Bugs = | = Bugs = | ||
| Line 402: | Line 389: | ||
= Sign off = | = Sign off = | ||
== Nightly == | == Nightly == | ||
* Metrics: | |||
** Overall crash volume for graphics related issues is unchanged | |||
** | |||
* Testing: | |||
** {{miss|}} Testrail regression tests passed by Softvision [https://testrail.stage.mozaws.net/index.php?/runs/view/2143] | |||
* Automation: | |||
* Areas of Risk | |||
** Automation: No unit or functional test coverage | |||
{| class="wikitable" | {| class="wikitable" | ||
! Category | ! Category | ||
| Line 407: | Line 405: | ||
! Status | ! Status | ||
|- | |- | ||
| rowspan=" | | rowspan="5" style="vertical-align: top" | Metrics | ||
| [https:// | | [https://mzl.la/2kTYeTE GPU_PROCESS_LAUNCH_TIME_MS_2] is ... | ||
| | | ''pending review'' | ||
<pre> | |||
5th Percentile: 0.192s | |||
25th Percentile: 0.296s | |||
Median: 0.462s | |||
75th Percentile: 0.914s | |||
95th Percentile: 3.440s | |||
</pre> | |||
|- | |- | ||
| [https://telemetry.mozilla.org/new-pipeline/dist.html#!cumulative=0&end_date=2017-01-23&keys=__none__!__none__!__none__&max_channel_version=nightly%252F53&measure=GPU_PROCESS_LAUNCH_TIME_MS_2&min_channel_version=nightly%252F50&product=Firefox&sanitize=1&sort_keys=submissions&start_date=2016-12-10&table=0&trim=1&use_submission_date=0 GPU_PROCESS_LAUNCH_TIME_MS_2 Histogram] is ... | | [https://telemetry.mozilla.org/new-pipeline/dist.html#!cumulative=0&end_date=2017-01-23&keys=__none__!__none__!__none__&max_channel_version=nightly%252F53&measure=GPU_PROCESS_LAUNCH_TIME_MS_2&min_channel_version=nightly%252F50&product=Firefox&sanitize=1&sort_keys=submissions&start_date=2016-12-10&table=0&trim=1&use_submission_date=0 GPU_PROCESS_LAUNCH_TIME_MS_2 Histogram] is ... | ||
| Pending developer review | | Pending developer review | ||
|- | |||
| MG: Main/Content/Plugin/GPU crashes [http://macmini/index.htm#psd-gpu-process] | |||
|- | |||
| [https://sql.telemetry.mozilla.org/dashboard/gfx-gpu-process-crashes GPU Process crash rate] | |||
|- | |||
| [https://telemetry.mozilla.org/new-pipeline/evo.html#!aggregates=median!mean!5th-percentile!25th-percentile!75th-percentile!95th-percentile&cumulative=0&end_date=null&keys=&max_channel_version=nightly%252F53&measure=SIMPLE_MEASURES_FIRSTPAINT&min_channel_version=nightly%252F50&os=Windows_NT%252C6.1!Windows_NT%252C10.0!Windows_NT%252C6.2&product=Firefox&sanitize=1&sort_keys=submissions&start_date=null&trim=1&use_submission_date=0 SIMPLE_MEASURES_FIRSTPAINT] does not regress | |||
| | |||
|- | |||
| Experiments | |||
| A/B stability does not regress | |||
| -4% crashes overall, +5% plugin crashes (needs investigation) [https://ashughes.com/?p=374] | |||
|- | |- | ||
| Testrail | | Testrail | ||
| Regression test suite passed on all platforms | | [https://testrail.stage.mozaws.net/index.php?/runs/view/2143 Regression test suite] passed on all platforms | ||
| Pending review | | Pending review | ||
|- | |- | ||
| Line 424: | Line 440: | ||
| Bugzilla | | Bugzilla | ||
| 0 blocking regressions | | 0 blocking regressions | ||
| [https://bugzilla.mozilla.org/buglist.cgi?list_id=13411501&o1=notequals&o2=equals&v1=---%2C%20unaffected&v2=%2B&f1=cf_status_firefox53&query_format=advanced&f2=cf_tracking_firefox53&component=Graphics&component=Graphics%3A%20Layers&component=Graphics%3A%20Text&product=Core tracked for 53] | |||
|- | |||
| Socorro | |||
| 0 blocking signatures | |||
| | | | ||
|- | |- | ||
| Line 433: | Line 453: | ||
| Aurora release notes verified | | Aurora release notes verified | ||
|- | |- | ||
! Risks | |||
! Description | |||
! Mitigation | |||
|- | |||
| Automation | |||
| No unit/function test coverage beyond a process startup test | |||
| Manual testing of functionality and process termination/recovery | |||
|} | |} | ||
| Line 480: | Line 507: | ||
== Aurora == | == Aurora == | ||
{| class="wikitable" style="width:60%" | {| class="wikitable" style="width:100%;" | ||
|- | |||
! style="width:30%" | Criteria | |||
! style="width:10%" | Status | |||
! style="width:60%" | Notes | |||
|- | |||
! colspan="3" style="text-align:left" | Testing | |||
|- | |||
| style="vertical-align:top" | Manual Test Coverage | |||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| | |||
* {{done|}} Softvision mid-Aurora sign-off via [https://testrail.stage.mozaws.net/index.php?/suites/overview/46 Testrail] | |||
* {{done|}} Aurora testday | |||
* {{skip|}} Betabreakers regression | |||
|- | |||
| style="vertical-align:top" | Automated Test Coverage | |||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| Coverage limited to process instantiation. Risks to be mitigated via manual testing. | |||
|- | |||
| Performance Test Coverage | |||
| style="text-align:center; vertical-align:top" | {{skip|}} | |||
| | |||
* {{skip|}} Softvision, Betabreakers, and/or Community testing Passmark test | |||
* {{skip|}} Softvision, Betabreakers, and/or Community testing WebGL and HWA Video benchmarks | |||
|- | |||
! colspan="3" style="text-align:left" | Bug Reports | |||
|- | |||
| style="vertical-align:top" | [https://mzl.la/2mGuyaD No unresolved blocker bugs] <br /> [https://mzl.la/2mGmR4k No untriaged bugs blocking Fx53] | |||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| <u>Bugs pending Firefox 53 status review:</u><br /> | |||
<bugzilla display="list"> | |||
{ | |||
"blocks":"1264543", | |||
"f1":"cf_status_firefox53", | |||
"o1":"anywordssubstr", | |||
"v1":"affected, ?", | |||
"include_fields":"id,summary,status" | |||
} | |||
</bugzilla> | |||
|- | |||
| style="vertical-align:top" | [https://mzl.la/2lA94Lt No unverified fixed bugs] | |||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
|<u>Bugs pending Firefox 53 status review:</u><br /> | |||
<bugzilla display="list"> | |||
{ | |||
"blocks":"1264543", | |||
"resolution":"FIXED", | |||
"f1":"cf_status_firefox53", | |||
"o1":"notequals", | |||
"v1":"fixed", | |||
"f2":"target_milestone", | |||
"o2":"anywordssubstr", | |||
"v2":"---, mozilla53", | |||
"include_fields":"id,summary,status" | |||
} | |||
</bugzilla> | |||
|- | |- | ||
! | ! colspan="3" style="text-align:left" | OKRs & Metrics | ||
|- | |||
| style="vertical-align:top" | [https://mzl.la/2kU1sq9 GPU_PROCESS_LAUNCH_TIME_MS_2 distribution <= 3s] | |||
| style="vertical-align:top; text-align:center" | {{done|}} | |||
| ''Note: A value larger than 3s likely represents users failing to get GPU Process'' | |||
{| class="wikitable" | |||
! Percentile || 2017-01-30 || 2017-02-06 || 2017-02-13 || 2017-02-20 || 2017-02-27 || 2017-03-06 || Net | |||
|- | |- | ||
| | | 5th || 0.222s || 0.232s || 0.234s || 0.235s || 0.236s || 0.236s || +0.014s (+6.3%) | ||
| | |||
| | |||
|- | |- | ||
| | | 25th || 0.360s || 0.366s || 0.365s || 0.364s || 0.365s || 0.365s || +0.005s (+1.4%) | ||
| | |||
|- | |- | ||
| | | 50th || 0.574s || 0.574s || 0.572s || 0.564s || 0.567s || 0.567s || -0.007s (-1.2%) | ||
| | |||
|- | |- | ||
| | | 75th || 1.150s || 1.140s || 1.130s || 1.100s || 1.110s || 1.110s || -0.040s (-3.5%) | ||
| | |||
|- | |- | ||
| | | 95th || 4.240s || 4.100s || 4.060s || 3.940s || 3.950s || 3.960s || -0.280s (-6.6%) | ||
| | |||
| | |||
|- | |- | ||
| | ! 3s Threshold || 91.94% || 92.20% || 92.32% || 92.41% || 92.57% || 92.55% || +1.01% | ||
| | |||
|- | |- | ||
| | ! 1s Threshold || 70.65% || 71.05% || 71.22% || 71.28% || 71.47% || 71.79% || +1.14% | ||
| | |} | ||
|- | |- | ||
| | | style="vertical-align:top" | [https://mzl.la/2kXKjvM GPU_PROCESS_LAUNCH_TIME_MS_2 evolution doesn't regress] | ||
| style="vertical-align:top; text-align:center" | {{done|}} | |||
| ''Note: A value larger than 3s likely represents users failing to get GPU Process'' | |||
{| class="wikitable" | |||
! Percentile || 2017-01-30 || 2017-02-06 || 2017-02-13 || 2017-02-20 || 2017-02-27 || 2017-03-06 || Net | |||
|- | |- | ||
| | | 5th || 0.226s || 0.236s || 0.241s || 0.242s || 0.223s || 0.227s || +0.001s (+0.4%) | ||
|- | |- | ||
| | | 25th || 0.358s || 0.361s || 0.365s || 0.365s || 0.339s || 0.345s || -0.013s (-3.6%) | ||
| | |||
|- | |- | ||
| | | 50th || 0.560s || 0.561s || 0.561s || 0.560s || 0.498s || 0.515s || -0.045s (-8.0%) | ||
| | |||
|- | |- | ||
| | | 75th || 1.120s || 1.100s || 1.090s || 1.090s || 0.834s || 0.935s || -0.185s (-16.5%) | ||
| | |||
|- | |- | ||
| | | 95th || 4.030s || 3.930s || 3.890s || 3.800s || 2.530s || 3.050s || -0.980s (-24.3%) | ||
| | |||
|} | |} | ||
|- | |- | ||
! | | style="vertical-align:top" | [https://sql.telemetry.mozilla.org/dashboard/gfx-gpu-process-crashes Telemetry graphics crash count/rate largely unchanged] | ||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| | |||
{| class="wikitable" | |||
! || 2017-01-30 || 2017-02-06 || 2017-02-13 || 2017-02-20 || 2017-02-27 || 2017-03-06 || Net | |||
|- | |||
| Crash Rate Average || 0.224 || 0.166 || 0.164 || 0.150 || 0.153 || 0.139 || -0.085 (-37.9%) | |||
|- | |- | ||
| | | Crash Count Average || 64 || 73 || 87 || 86 || 88 || 74 || +10 (+15.6%) | ||
| | |||
| | |||
|- | |- | ||
| | | Crash Count Percent || 1.17% || 1.07% || 1.18% || 1.14% || 1.17% || 1.14% || -0.03% (-2.5%) | ||
| | |} | ||
|- | |- | ||
| | | style="vertical-align:top" | [https://crash-stats.mozilla.com/topcrashers/?product=Firefox&version=53.0a2&days=7&process_type=gpu No unresolved topcrashes correlated to GPU Process] | ||
| style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| | |||
<u>GPU crashes rank 5th overall @ 0.82% with a combined 1071 reports</u><br /> | |||
1st-ranked is #47 overall @ 0.10% (mozilla::layers::CompositorD3D11::BeginFrame - {{bug|1306168}})<br /> | |||
2nd-ranked is #31 overall @ 0.13% (UMDevice::SetShaderResources - {{bug|1267997}})<br /> | |||
3rd-ranked is #51 overall @ 0.09% (nvwgf2um.dll | TCLSWrappers<T>::CLSDestroy - {{bug|1325933}})<br /> | |||
4th-ranked is #52 overall @ 0.09% (OOM | unknown | ... | mozilla::BufferList<T>::AllocateSegment)<br /> | |||
5th-ranked is #172 overall @ 0.03% (nvwgf2umx.dll | NDXGI::CDevice::DestroySynchronizationObjectCB - {{bug|1328082}}) | |||
|- | |- | ||
| | | style="vertical-align:top" | Telemetry Experiment reveals no regressions in A/B testing | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{skip|}} | ||
| | |||
* Compare SIMPLE_MEASURES_FIRSTPAINT as a proxy for performance | |||
* Compare crash counts/rates of cohorts in Telemetry | |||
* Compare crash counts/rates of cohorts in Socorro | |||
* Compare crash signatures of cohorts in Socorro | |||
|- | |- | ||
| style="vertical-align:top" | Percentage of users w/GPU Process and hardware profiles | |||
|style=" | | style="text-align:center; vertical-align:top" | {{skip|}} | ||
|style="text-align:center;" | | | | ||
* Measured via David Anderson's telemetry dashboard? | |||
* GPU_PROCESS_STATUS probe added similar to E10S_STATUS? See {{bug|1338694}}. | |||
|- | |- | ||
| | | style="vertical-align:top" | [https://people-mozilla.org/~danderson/moz-gfx-telemetry/www/#view=windows-features Insignificant change in hardware acceleration distribution] | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| | |||
GPU Process Status:<br /> | |||
<pre> | |||
Date Available Unavailable Failed Blocked | |||
2017-02-23 71.2% 28.4% 0.3% 0.1% | |||
2017-03-06 71.1% 28.5% 0.3% 0.1% | |||
</pre> | |||
D3D11 Status:<br /> | |||
<pre> | |||
Date Available Unavailable Failed Blocked Blacklisted | |||
2017-02-23 67.4% 12.2% 4.3% 1.5% 14.6% | |||
2017-03-06 67.5% 12.3% 4.3% 1.4% 14.5% | |||
</pre> | |||
Media Decoder Status:<br /> | |||
<pre> | |||
Date DXVA D3D9 DXVA D3D11 WMF Software | |||
2017-02-23 25.3% 15.0% 59.7% | |||
2017-03-06 25.2% 14.3% 60.5% | |||
</pre> | |||
|- | |- | ||
| | | style="vertical-align:top" | [https://mzl.la/2lnuYCz SIMPLE_MEASURES_FIRSTPAINT does not regress more than 5%] | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| | |||
<pre> | |||
Median Improvement | |||
Aurora 53 2.760s n/a | |||
Aurora 52 3.040s - 9.21% | |||
Aurora 51 2.880s - 4.17% | |||
Aurora 50 3.100s -10.97% | |||
</pre> | |||
''Note: even if it does regress it'll be hard to prove that it's GPU Process related and not some other change(s)'' | |||
|- | |- | ||
| | ! colspan="3" style="text-align:left" | QA Signoffs | ||
|- | |- | ||
| | | Okay to Merge to Beta | ||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| Signed off by Softvision on March 3, 2017 ([https://testrail.stage.mozaws.net/index.php?/reports/view/211 report]) | |||
|- | |- | ||
| | | Beta migration signed-off | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| Signed off by Softvision on March 8, 2017 ([https://wiki.mozilla.org/Releases/Firefox_53/Test_Plan/Beta/1 report]) | |||
|- | |- | ||
| | | Beta release notes signed-off | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| Signed off by Softvision on March 8, 2017 | |||
|- | |- | ||
|} | |} | ||
== | == Beta == | ||
{| class="wikitable" style="width:60%" | {| class="wikitable" style="width:100%;" | ||
|- | |||
! style="width:30%" | Criteria | |||
! style="width:10%" | Status | |||
! style="width:60%" | Notes | |||
|- | |||
! colspan="3" style="text-align:left" | Testing | |||
|- | |||
| style="vertical-align:top" | Manual Test Coverage | |||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| | |||
* Softvision mid-Beta sign-off via Testrail | |||
* Softvision pre-Release sign-off via Testrail | |||
* Beta testday | |||
|- | |||
| style="vertical-align:top" | Automated Test Coverage | |||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| Coverage limited to process instantiation. Risks to be mitigated via manual testing. | |||
|- | |||
| Performance Test Coverage | |||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| | |||
* Passmark benchmark completed by Softvision | |||
* WebGL benchmark completed by Softvision | |||
* HWA Video benchmark completed by Softvision | |||
|- | |||
! colspan="3" style="text-align:left" | Bug Reports | |||
|- | |- | ||
| style="vertical-align:top" | [https://mzl.la/2mGuyaD No unresolved blocker bugs] <br /> [https://mzl.la/2mGmR4k No untriaged bugs blocking Fx53] | |||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| <u>Bugs pending Firefox 53 status review:</u><br /> | |||
<bugzilla display="list"> | |||
{ | |||
"blocks":"1264543", | |||
"f1":"cf_status_firefox53", | |||
"o1":"anywordssubstr", | |||
"v1":"affected, ?", | |||
"include_fields":"id,summary,status" | |||
} | |||
</bugzilla> | |||
|- | |- | ||
| style="vertical-align:top" | [https://mzl.la/2lA94Lt No unverified fixed bugs] | |||
| style=" | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| style="text-align:center;" | | |<u>Bugs pending Firefox 53 status review:</u><br /> | ||
<bugzilla display="list"> | |||
{ | |||
"blocks":"1264543", | |||
"resolution":"FIXED", | |||
"f1":"cf_status_firefox53", | |||
"o1":"notequals", | |||
"v1":"fixed", | |||
"f2":"target_milestone", | |||
"o2":"anywordssubstr", | |||
"v2":"---, mozilla53", | |||
"include_fields":"id,summary,status" | |||
} | |||
</bugzilla> | |||
|- | |- | ||
| | ! colspan="3" style="text-align:left" | Metrics | ||
|style="text-align:center;" | | |- | ||
| style="vertical-align:top" | [https://mzl.la/2lY5Jdt GPU_PROCESS_LAUNCH_TIME_MS_2 distribution <= 3s] | |||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| ''Note: A value larger than 3s likely represents users failing to get GPU Process'' | |||
* 5th Percentile: 0.213s | |||
* 25th Percentile: 0.342s | |||
* 50th Percentile: 0.605s | |||
* 75th Percentile: 1.250s | |||
* 95th Percentile: 4.620s | |||
* Thresholds: 90.67% @ 3s, 68.17% @ 1s | |||
|- | |- | ||
| | | style="vertical-align:top" | [https://mzl.la/2lXWWIA GPU_PROCESS_LAUNCH_TIME_MS_2 evolution doesn't regress] | ||
| style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| ''Note: A value larger than 3s likely represents users failing to get GPU Process'' | |||
* 5th Percentile: 0.219s | |||
* 25th Percentile: 0.325s | |||
* 50th Percentile: 0.496s | |||
* 75th Percentile: 0.936s | |||
* 95th Percentile: 3.210s | |||
|- | |- | ||
| | | style="vertical-align:top" | [https://sql.telemetry.mozilla.org/dashboard/gfx-gpu-process-crashes Telemetry graphics crash count/rate largely unchanged] | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| | |||
* Crash Rate Average: 0.067 crashes per 1,000 usage hours | |||
* Crash Count Average: 603 crashes / day | |||
* Crash Count Percent: 0.389% | |||
|- | |- | ||
| style="vertical-align:top" | [https://crash-stats.mozilla.com/topcrashers/?product=Firefox&version=53.0b&days=28&process_type=gpu No unresolved topcrashes correlated to GPU Process] | |||
|style=" | | style="text-align:center; vertical-align:top" | {{done|}} | ||
|style="text-align:center;" | | | | ||
<u>GPU crashes rank 13th overall @ 0.34% with a combined 2,295 reports</u><br /> | |||
1st-ranked is #115 overall @ 0.04% (mozilla::layers::CompositorD3D11::BeginFrame - {{bug|1306168}})<br /> | |||
2nd-ranked is #49 overall @ 0.09% (igd10iumd32.dll | CContext::EmptyOutAllDDIBindPoints - {{bug|}})<br /> | |||
3rd-ranked is #95 overall @ 0.05% (UMDevice::SetShaderResources - {{bug|1267997}}) | |||
<br /> | |||
<b>Also track [https://goo.gl/9b1rb0 53 vs 52 crash data for Ryan Pollock]</b> | |||
|- | |- | ||
| | | style="vertical-align:top" | Telemetry Experiment reveals no regressions in A/B testing | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| DONE - https://ashughes.com/?p=426 | |||
* [https://bsmedberg.github.io/telemetry-experiments-dashboard/ Experiment stats] | |||
* Compare SIMPLE_MEASURES_FIRSTPAINT as a proxy for performance | |||
* [https://sql.telemetry.mozilla.org/dashboard/gfx-gpu-process-beta-53-experiment Compare crash counts/rates of cohorts in Telemetry] | |||
* [https://docs.google.com/spreadsheets/d/1KDESBrehRcJVpUCfEouRmElL8q2z-I_bPkVe54Arpqs/edit#gid=0 Compare crash counts/rates of cohorts in Socorro] | |||
* Compare crash signatures of cohorts in Socorro | |||
|- | |- | ||
| | | style="vertical-align:top" | [https://people-mozilla.org/~danderson/moz-gfx-telemetry/www/#view=windows-features Insignificant change in hardware acceleration distribution] | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| | |||
GPU Process Status: | |||
* 47.3% Unavailable | |||
* 33.2% Unused | |||
* 19.4% Available | |||
D3D11 Status: | |||
* 71.7% D3D11 | |||
* 26.7% Basic (software) | |||
* 1.60% D3D9 | |||
Media Decoder Status: | |||
* 56.7% WMF (software) | |||
* 25.6% D3D9 | |||
* 17.7% D3D11 | |||
|- | |- | ||
| | | style="vertical-align:top" | [https://mzl.la/2neFmgk SIMPLE_MEASURES_FIRSTPAINT does not regress more than 5%] | ||
| style="text-align:center; vertical-align:top" | {{done|}} | |||
| | |||
* Median: 2.926s | |||
* 15.9% improvement vs Firefox 52 | |||
* 18.4% improvement vs Firefox 51 | |||
* 2.46% improvement vs Firefox 50 | |||
''Note: even if it does regress it'll be hard to prove that it's GPU Process related and not some other change(s)'' | |||
|- | |- | ||
| | ! colspan="3" style="text-align:left" | QA Signoffs | ||
|- | |- | ||
| | | Okay to Merge to Release | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| DONE | |||
|- | |- | ||
| | | Release migration signed-off | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| DONE | |||
|- | |- | ||
| | | Release notes signed-off | ||
|style="text-align:center;" | | | style="text-align:center; vertical-align:top" | {{done|}} | ||
| DONE | |||
|- | |- | ||
|} | |} | ||
== Release == | |||
* Verify release notes | |||
* Verify feature enabled in Release | |||
* Verify updating gives GPU Process | |||
* Check for bugs during throttle period | |||
= References = | = References = | ||
* Meta bug: {{bug|1264543}} | * Meta bug: {{bug|1264543}} | ||
* https://public.etherpad-mozilla.org/p/GPU_Process_Testing | * https://public.etherpad-mozilla.org/p/GPU_Process_Testing | ||
Latest revision as of 23:20, 13 April 2017
Overview
Purpose
The purpose of this document is to describe the GPU Process feature from a testing perspective, including the following details:
- Scope, focus areas and objectives of testing
- Owners and points of contact for areas of responsibility
- Strategy and types of testing
- The entry and exit criteria
- The basis of the test estimates
- Any risks, issues, assumptions and test dependencies
- The test schedule and major milestones
- The test deliverables
Ownership
| Responsibility | Role | Person |
|---|---|---|
| Accountable | Engineering Manager | Milan Sreckovic (:milan) |
| Responsible | Tech Lead | David Anderson (:dvander) |
| Responsible | QA Lead | Anthony Hughes (:ashughes) |
| Supporting | Engineer | George Wright (:gw280) |
| Supporting | Engineer | Ryan Hunt (:rhunt) |
Scope
The following is in scope from a testing perspective for the project team.
- GPU process startup time
- Page load time
- GPU process restart time (in case of process kill)
- Real world performance with various common usecases (webgl, canvas2d, flash).
- Plugin startup time
- Antivirus conflicts
- Memory footprint
- Shutdown time
- Overall product stability
- Scrolling performance and correctness
The following is not in scope from a testing perspective for the project team.
- to be determined
Schedule
| Project phase | Date Started | Date Completed |
|---|---|---|
| Planning | ||
|
||
|
||
| Development | ||
|
||
|
||
|
||
| QA | ||
|
||
|
||
|
||
|
||
| Release |
Outstanding Questions
Test Coverage
Environments
| Coverage | In Scope for MVP | Out of Scope for MVP |
|---|---|---|
| Platforms | Windows 7 Platform Update and later | Windows 7 without Platform Update and earlier, Mac OS, Linux, Android, iOS |
| Devices | AMD, Intel, and NVIDIA hardware with Direct3D 11 and later support | AMD, Intel, and NVIDIA hardware with Direct3D 10 and earlier support |
| Configurations | TBD - Single/Multi/Hybrid/etc, Internal/External, Current/Beta/Legacy drivers | TBD - Single/Multi/Hybrid/etc, Internal/External, Current/Beta/Legacy drivers |
| Other | TBD - 3rd-party software (Antivirus, Security, WindowsBlinds, etc), Preference changes | TBD - 3rd-party software (Antivirus, Security, WindowsBlinds, etc), Preference changes |
| Channel Specific | TBD - Unique coverage requirements for Nightly, Aurora, Beta, Release | TBD - Unique coverage requirements for Nightly, Aurora, Beta, Release |
Risks
Be sure we have test coverage to ensure:
- GPU Process does not to regress acceleration coverage, performance, startup time, rendering quality, and correctness for platforms without GPU Process and platforms with GPU Process where GPU Process is disabled.
- GPU Process recovers more gracefully from a crash than legacy
- GPU Process handles device resets more gracefully than legacy
- GPU Process returns with hardware (not software) compositor following device reset
- GPU Process does not regress font rendering in chrome and content (eg. Skia fonts)
- GPU Process does not fail in some way that results in a lot of users not getting Direct3D11 acceleration
- GPU Process does not break existing "new" technologies (eg. WebVR, WebGL2)
- GPU Process does not break legacy behaviours (eg. PDF viewing, Printing, Video playback, WebGL1, UI controls, about pages, etc)
- Legacy behavior/quality/performance (GPU Process disabled) remains on-par with the Release prior to GPU Process shipping
Acceptable Risks:
- GPU Process causes a moderate spike in acceleration crashes [specific number for acceptable spike to be determined]
Builds
This section should contain links for builds with the feature
- Links for Nightly builds
- Links for Aurora builds
- Links for Beta builds
Tools
Detail the tools to be used for testing, for example see the following table:
| Process | Tool |
|---|---|
| Test plan creation | Mozilla wiki |
| Test case creation | TestRail/ Google docs |
| Test case execution | TestRail |
| Automated test execution | Talos, etc...? |
| Bugs management | Bugzilla |
| Experimentation | Telemetry Experiments |
Use Cases
| Use Cases | Smoketest Coverage | BFT Coverage | FFT Coverage | Notes |
|---|---|---|---|---|
| The following need to be verified with GPU Process enabled, GPU Process disabled, and across a process reset | ||||
| Printing | Verify previewing and printing various content types is not regressed by GPU Process | |||
| Private Window | Verify browser usage inside a Private Browsing window | |||
| Multi-Process Enabled | Verify GPU process is created when multi-process is enabled | |||
| Multi-process Disabled | Verify no GPU process is created when multi-process is disabled | |||
| Single-process Window | Verify no GPU process when using a non-e10s window | |||
| Offline Content | Verify accelerated content continues to render when in Offline mode | |||
| Video | Verify HTML5 and Flash video playback acceleration | |||
| Tab/Window Management | Verify arranging and management of tabs/windows | |||
| Theme Management | Verify management of various Firefox and system-level themes | |||
| WebVR | Verify WebVR demos continue to work at parity with the current Release | |||
| WebGL | Verify WebGL demos continue to work at parity with the current Release | |||
| Dev Tools | Verify Developer Tools continue to work at parity with the current Release | |||
| Custom fonts | Verify content rendering, printing, scrolling, etc with common font customizations | |||
| 2D Canvas | Verify content rendering and performance with 2D Canvas and SVG demos | |||
| Accessibility | ||||
| Mouse-only operation | ||||
| Keyboard-only operation | ||||
| Display (HiDPI) | ||||
| Interraction (scroll, zoom) | ||||
| Usable with a screen reader | ||||
| Usability and/or discoverability testing | ||||
| RTL build testing | ||||
| Help/Support | ||||
| Help/support interface required | Make sure link to support/help page exist and is easy reachable. | |||
| Support documents planned(written) | Make sure support documents are written and are correct. | |||
| Install/Upgrade | ||||
| Feature upgrades/downgrades data as expected | ||||
| Does sync work across upgrades | ||||
| Requires install testing | Separate feature/application installation needed (not only Firefox) | |||
| Affects first-run or onboarding | Florin/Lawrence are investigating if there is a dedicated QA for this, or we should test? Should be an yes/no and if is yes should add in detail column the team/person assigned. | |||
| Partner build testing | Does this affect partner builds? Yes/No options, add comment with details about who will lead testing | |||
| Enterprise
Raise up the topic to developers to see if they are expecting to work different on ESR builds | ||||
| Enterprise administration | ||||
| Network proxies/autoconfig | ||||
| ESR behavior changes | ||||
| Locked preferences | ||||
| Data Monitoring | ||||
| Temporary or permanent telemetry monitoring | List of error conditions to monitor | |||
| Telemetry correctness testing | ||||
| Server integration testing | ||||
| Offline and server failure testing | ||||
| Load testing | ||||
| Add-ons
If add-ons are available for testing feature, or is current feature will affect some add-ons, then API testing should be done for the add-on. | ||||
| Addon API required? | ||||
| Comprehensive API testing | ||||
| Permissions | ||||
| Testing with existing/popular addons | ||||
| Security
Contact Matt Wobensmith to see if security testing is necessary for current feature | ||||
| 3rd-party security review | ||||
| Privilege escalation testing | ||||
| Fuzzing | ||||
| Web Compatibility | ||||
| Testing against target sites | ||||
| Survey of many sites for compatibility | ||||
| Interoperability | ||||
| Common protocol/data format with other software: specification available. Interop testing with other common clients or servers. | ||||
| Coordinated testing/interop across the Firefoxes: Desktop, Android, iOS | ||||
| Interaction of this feature with other browser features | ||||
| Interaction of this feature with third-party software (Antivirus, Security, Games, Theming, etc) | ||||
Experiments
| Experiment | Contact | Tracking Bug | Status | Start Date | End Date |
|---|---|---|---|---|---|
| A/B test layers.gpu-process.dev.enabled in Nightly 53 | Anthony Hughes (:ashughes) | bug 1319206 | Done [1] | ||
| A/B test media.gpu-process-decoder in Nightly 53 | Anthony Hughes (:ashughes) |
Nightly 53 A/B Test layers.gpu-process.dev.enabled
Purpose:
- Compare crash rates for users with GPU process enabled vs users with GPU process disabled
Dependencies:
- How do we deal with the fact that the pref is set early during startup? (emailed felipeg)
- Telemetry probes to measure crash rates
- Telemetry probe to measure proportion of users in each cohort
Measurements:
- Evolution for GPU_PROCESS_LAUNCH_TIME
- Histogram for GPU_PROCESS_LAUNCH_TIME
- Crash Stats
- MOZ30726-MINI#psd-gpu-process-nightly53 (see :ashughes to request access)
- SQL Telemetry
Bugs
65 Total; 8 Open (12.31%); 55 Resolved (84.62%); 2 Verified (3.08%);
Sign off
Nightly
- Metrics:
- Overall crash volume for graphics related issues is unchanged
- Testing:
- [MISSED] Testrail regression tests passed by Softvision [2]
- Automation:
- Areas of Risk
- Automation: No unit or functional test coverage
| Category | Criteria | Status |
|---|---|---|
| Metrics | GPU_PROCESS_LAUNCH_TIME_MS_2 is ... | pending review
5th Percentile: 0.192s
25th Percentile: 0.296s
Median: 0.462s
75th Percentile: 0.914s
95th Percentile: 3.440s
|
| GPU_PROCESS_LAUNCH_TIME_MS_2 Histogram is ... | Pending developer review | |
| MG: Main/Content/Plugin/GPU crashes [3] | ||
| GPU Process crash rate | ||
| SIMPLE_MEASURES_FIRSTPAINT does not regress | ||
| Experiments | A/B stability does not regress | -4% crashes overall, +5% plugin crashes (needs investigation) [4] |
| Testrail | Regression test suite passed on all platforms | Pending review |
| Automation | TBD | |
| Bugzilla | 0 blocking regressions | tracked for 53 |
| Socorro | 0 blocking signatures | |
| Migration | Okay to merge to Aurora | |
| Aurora migration verified | ||
| Aurora release notes verified | ||
| Risks | Description | Mitigation |
| Automation | No unit/function test coverage beyond a process startup test | Manual testing of functionality and process termination/recovery |
| Criteria | Status | Notes/Details |
|---|---|---|
| Testing Prerequisites (specs, use cases) | ||
| Testing Infrastructure setup | ||
| Test Plan Creation | ||
| Test Cases Creation | ||
| Full Functional Tests Execution | ||
| Automation Coverage | ||
| Performance Testing | ||
| All Defects Logged | ||
| Critical/Blockers Fixed and Verified | ||
| Metrics/Telemetry | ||
| QA Signoff - Okay to Merge | Email to be sent | |
| QA Signoff - Aurora Migration | Email to be sent | |
| QA Signoff - Verify Aurora Release Notes | Email to be sent |
Aurora
| Criteria | Status | Notes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Testing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Manual Test Coverage | [DONE] |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Automated Test Coverage | [DONE] | Coverage limited to process instantiation. Risks to be mitigated via manual testing. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Performance Test Coverage | [SKIPPED] |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Bug Reports | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| No unresolved blocker bugs No untriaged bugs blocking Fx53 |
[DONE] | Bugs pending Firefox 53 status review: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| No unverified fixed bugs | [DONE] | Bugs pending Firefox 53 status review:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| OKRs & Metrics | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GPU_PROCESS_LAUNCH_TIME_MS_2 distribution <= 3s | [DONE] | Note: A value larger than 3s likely represents users failing to get GPU Process
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GPU_PROCESS_LAUNCH_TIME_MS_2 evolution doesn't regress | [DONE] | Note: A value larger than 3s likely represents users failing to get GPU Process
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Telemetry graphics crash count/rate largely unchanged | [DONE] |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| No unresolved topcrashes correlated to GPU Process | [DONE] |
GPU crashes rank 5th overall @ 0.82% with a combined 1071 reports | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Telemetry Experiment reveals no regressions in A/B testing | [SKIPPED] |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Percentage of users w/GPU Process and hardware profiles | [SKIPPED] |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Insignificant change in hardware acceleration distribution | [DONE] |
GPU Process Status: Date Available Unavailable Failed Blocked 2017-02-23 71.2% 28.4% 0.3% 0.1% 2017-03-06 71.1% 28.5% 0.3% 0.1% D3D11 Status: Date Available Unavailable Failed Blocked Blacklisted 2017-02-23 67.4% 12.2% 4.3% 1.5% 14.6% 2017-03-06 67.5% 12.3% 4.3% 1.4% 14.5% Media Decoder Status: Date DXVA D3D9 DXVA D3D11 WMF Software 2017-02-23 25.3% 15.0% 59.7% 2017-03-06 25.2% 14.3% 60.5% | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SIMPLE_MEASURES_FIRSTPAINT does not regress more than 5% | [DONE] |
Median Improvement Aurora 53 2.760s n/a Aurora 52 3.040s - 9.21% Aurora 51 2.880s - 4.17% Aurora 50 3.100s -10.97% Note: even if it does regress it'll be hard to prove that it's GPU Process related and not some other change(s) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| QA Signoffs | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Okay to Merge to Beta | [DONE] | Signed off by Softvision on March 3, 2017 (report) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Beta migration signed-off | [DONE] | Signed off by Softvision on March 8, 2017 (report) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Beta release notes signed-off | [DONE] | Signed off by Softvision on March 8, 2017 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Beta
| Criteria | Status | Notes |
|---|---|---|
| Testing | ||
| Manual Test Coverage | [DONE] |
|
| Automated Test Coverage | [DONE] | Coverage limited to process instantiation. Risks to be mitigated via manual testing. |
| Performance Test Coverage | [DONE] |
|
| Bug Reports | ||
| No unresolved blocker bugs No untriaged bugs blocking Fx53 |
[DONE] | Bugs pending Firefox 53 status review: |
| No unverified fixed bugs | [DONE] | Bugs pending Firefox 53 status review:
|
| Metrics | ||
| GPU_PROCESS_LAUNCH_TIME_MS_2 distribution <= 3s | [DONE] | Note: A value larger than 3s likely represents users failing to get GPU Process
|
| GPU_PROCESS_LAUNCH_TIME_MS_2 evolution doesn't regress | [DONE] | Note: A value larger than 3s likely represents users failing to get GPU Process
|
| Telemetry graphics crash count/rate largely unchanged | [DONE] |
|
| No unresolved topcrashes correlated to GPU Process | [DONE] |
GPU crashes rank 13th overall @ 0.34% with a combined 2,295 reports |
| Telemetry Experiment reveals no regressions in A/B testing | [DONE] | DONE - https://ashughes.com/?p=426
|
| Insignificant change in hardware acceleration distribution | [DONE] |
GPU Process Status:
D3D11 Status:
Media Decoder Status:
|
| SIMPLE_MEASURES_FIRSTPAINT does not regress more than 5% | [DONE] |
Note: even if it does regress it'll be hard to prove that it's GPU Process related and not some other change(s) |
| QA Signoffs | ||
| Okay to Merge to Release | [DONE] | DONE |
| Release migration signed-off | [DONE] | DONE |
| Release notes signed-off | [DONE] | DONE |
Release
- Verify release notes
- Verify feature enabled in Release
- Verify updating gives GPU Process
- Check for bugs during throttle period