Closed Bug 1682365 Opened 5 years ago Closed 5 years ago

Improve render task graph v2

Categories

(Core :: Graphics: WebRender, task)

task

Tracking

()

RESOLVED FIXED
Tracking Status
firefox86 --- fixed

People

(Reporter: gw, Assigned: gw)

References

(Blocks 1 open bug)

Details

Attachments

(6 files)

No description provided.

Assuming you're actively working on this, so assigning to you to clear my triage queue

Assignee: nobody → gwatson
Severity: -- → S3

Remove usage of the implicit prev pass alpha and color texture
samplers from batching / renderer / shader code. They are replaced
by explicit references to the texture ID for the source task.

With this change, all color/alpha intermediate surfaces are individual
textures, rather than texture arrays.

This can in theory cause more batch breaks in some cases, but this
is likely to be very rare in practice.

Benefits:

  • No more allocating the array at the size of the largest task / slice.
  • Remove a source of many driver bugs on android devices.
  • Simplify integration of future patches with render task graph.

Much of the render target array texture code is still present, since
picture cache tiles in the Draw compositor still make use of texture
arrays. However, once these are switched to normal textures, we can
remove most of the slice layer, blit workaround functionality etc.

Remove the default feature setting for selecting the image sampler
kind. Instead, this must be explicitly specified by the shader or
a dynamic feature define, which makes sampler selection less error prone.

This patch makes picture cache tiles use normal textures instead
of array textures. With this and the previous patch, WR no longer
uses array textures at all (except when provided by the external
image handler trait).

This patch splits the graph building functionality into
RenderTaskGraphBuilder and the graph querying code into
the existing RenderTaskGraph struct.

The Builder struct is retained frame to frame, which means
there is no longer a need for the RenderTaskGraphCounters
struct. The Graph struct is constructed per-frame by calling
end_pass on the Builder.

Although this doesn't do much different internally, it will
make integration with the new task graph changes simpler. It
also enforced during frame building when it is possible
to add / query render tasks.

A few unrelated tidy ups are included in this patch - mostly
removing where the task graph is passed to from a few structs
and methods that no longer require access to the graph.

Once the new graph API is in place, it becomes possible to express
an input dependency on a persistent target (for example, if wanting
to read back from a picture cache tile for a mix-blend, or marking
that a color target depends on a render task in a texture cache).

To make that simpler to express, this patch adds a specific struct
for render target locations that are persistent, and updates the
surrounding code to use it. At the same time, introduce an Unallocated
field for dynamic tasks that are not yet allocated, rather than
using an Option.

Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0c03e3ad5e56 Pt 1 - Remove PrevPassAlpha and PrevPassColor r=nical
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/15da94c6a7b1 Pt 2 - Remove texture array usage from render task graph. r=nical
Flags: needinfo?(gwatson)
Keywords: leave-open

Updated those test expectations with a little extra fuzziness and re-pushed. Thanks!

Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5589923a52c8 Pt 2 - Remove texture array usage from render task graph. r=nical

This patch introduces the new frame graph implementation, which
allows for more advanced and efficient render task graphs.

The goal of this initial work is to achieve feature parity with
the existing render task graph.

Follow up work will take advantage of the new graph functionality
to improve the efficiency of current mix-blend-mode, backdrop-filter
and svg filter operations.

Regressions: 1682465
Regressions: 1682473
Regressions: 1682498
Regressions: 1682566
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c3495de132cd Pt 1 - Remove PrevPassAlpha and PrevPassColor r=nical https://hg.mozilla.org/integration/autoland/rev/86db847cfe57 Pt 2 - Remove texture array usage from render task graph. r=nical

Backed out 5 changesets (bug 1682473, bug 1682498, bug 1682465, bug 1682365) for multi-mix-blend-mode.yaml failures.

Push with failure: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&selectedTaskRun=Kid1CB6RTR2x4v6XbEbAJg.0&fromchange=897f30ea5f537394c6895b70cff1551573ebfb39&searchStr=android%2C8.0%2Cpixel2%2Cdebug%2Cwebrender%2Cstandalone%2Cwebrender-android-hw-p2-debug%2Cwrench&tochange=d7adfff6f5d34e9bf27d072557a468c39df0aa1d

Backout link: https://hg.mozilla.org/integration/autoland/rev/d7adfff6f5d34e9bf27d072557a468c39df0aa1d

Failure log: https://treeherder.mozilla.org/logviewer?job_id=324865211&repo=autoland&lineNumber=1467

...
[task 2020-12-17T21:48:17.408Z] Granting important runtime permissions to org.mozilla.wrench
[task 2020-12-17T21:48:17.408Z] Unable to grant runtime permission android.permission.WRITE_EXTERNAL_STORAGE to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.WRITE_EXTERNAL_STORAGE', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.WRITE_EXTERNAL_STORAGE
[task 2020-12-17T21:48:17.408Z] Unable to grant runtime permission android.permission.ACCESS_COARSE_LOCATION to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.ACCESS_COARSE_LOCATION', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.ACCESS_COARSE_LOCATION
[task 2020-12-17T21:48:17.408Z] Unable to grant runtime permission android.permission.ACCESS_FINE_LOCATION to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.ACCESS_FINE_LOCATION', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.ACCESS_FINE_LOCATION
[task 2020-12-17T21:48:17.408Z] Unable to grant runtime permission android.permission.CAMERA to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.CAMERA', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.CAMERA
[task 2020-12-17T21:48:17.408Z] Unable to grant runtime permission android.permission.RECORD_AUDIO to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.RECORD_AUDIO', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.RECORD_AUDIO
[task 2020-12-17T21:48:17.408Z] Unable to grant runtime permission android.permission.ACCESS_WIFI_STATE to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.ACCESS_WIFI_STATE', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.ACCESS_WIFI_STATE
[task 2020-12-17T21:48:17.408Z] launch_application: am start -W -n org.mozilla.wrench/android.app.NativeActivity
[task 2020-12-17T21:48:17.408Z] 21:44:54     INFO - App launched
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - Tests done; parsing logcat...
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - Killing logcat pid 404.
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - === scraped logcat output ===
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/aa/aa-dist-bug.yaml == /sdcard/wrench/reftests/aa/aa-dist-bug-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/aa/fractional-radii.yaml == /sdcard/wrench/reftests/aa/fractional-radii-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-leaf.yaml == /sdcard/wrench/reftests/backface/backface-leaf-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-3d-leaf.yaml == /sdcard/wrench/reftests/backface/backface-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-hidden.yaml == /sdcard/wrench/reftests/backface/backface-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-sc.yaml == /sdcard/wrench/reftests/backface/backface-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-picture.yaml == /sdcard/wrench/reftests/backface/backface-picture-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-double-flip.yaml == /sdcard/wrench/reftests/backface/blank.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-both-sides.yaml == /sdcard/wrench/reftests/backface/backface-both-sides-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-vis-3d.yaml == /sdcard/wrench/reftests/backface/blank.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-flatten.yaml == /sdcard/wrench/reftests/backface/blank.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/multiply.yaml == /sdcard/wrench/reftests/blend/multiply-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/multiply-2.yaml == /sdcard/wrench/reftests/blend/multiply-2-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/multiply-3.yaml == /sdcard/wrench/reftests/blend/multiply-2-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/difference.yaml == /sdcard/wrench/reftests/blend/difference-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/difference-transparent.yaml == /sdcard/wrench/reftests/blend/difference-transparent-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/darken.yaml == /sdcard/wrench/reftests/blend/darken-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/lighten.yaml == /sdcard/wrench/reftests/blend/lighten-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/repeated-difference.yaml == /sdcard/wrench/reftests/blend/repeated-difference-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/isolated.yaml == /sdcard/wrench/reftests/blend/isolated-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/isolated-2.yaml == /sdcard/wrench/reftests/blend/isolated-2-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/isolated-with-filter.yaml == /sdcard/wrench/reftests/blend/isolated-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/isolated-premultiplied.yaml == /sdcard/wrench/reftests/blend/blank.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/isolated-premultiplied-2.yaml == /sdcard/wrench/reftests/blend/isolated-premultiplied-2-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/large.yaml == /sdcard/wrench/reftests/blend/large-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/transparent-composite-1.yaml == /sdcard/wrench/reftests/blend/transparent-composite-1-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/transparent-composite-2.yaml == /sdcard/wrench/reftests/blend/transparent-composite-2-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST /sdcard/wrench/reftests/blend/multi-mix-blend-mode.yaml == /sdcard/wrench/reftests/blend/multi-mix-blend-mode-ref.yaml
[task 2020-12-17T21:48:17.408Z] 21:48:16    ERROR - REFTEST TEST-UNEXPECTED-FAIL | /sdcard/wrench/reftests/blend/multi-mix-blend-mode.yaml == /sdcard/wrench/reftests/blend/multi-mix-blend-mode-ref.yaml | image comparison, max difference: 2, number of differing pixels: 411 | 411 differences > 0 and <= 2 (allowed 324);
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGg...
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,iVBORw0K...
[task 2020-12-17T21:48:17.408Z] 21:48:16     INFO - REFTEST TEST-END | /sdcard/wrench/reftests/blend/multi-mix-blend-mode.yaml == /sdcard/wrench/reftests/blend/multi-mix-blend-mode-ref.yaml
Flags: needinfo?(gwatson)
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ee0de0eac18d Pt 1 - Remove PrevPassAlpha and PrevPassColor r=nical https://hg.mozilla.org/integration/autoland/rev/0edb6b6f17b2 Pt 2 - Remove texture array usage from render task graph. r=nical

Updated the android test expectations, trying to land again. Thanks!

Flags: needinfo?(gwatson)
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/54c5a7cbdd7b Pt 3 - Remove array textures from picture cache tiles. r=nical,jnicol https://hg.mozilla.org/integration/autoland/rev/3187b453d85a Pt 4 - Add RenderTaskGraphBuilder / RenderTaskGraph split r=jnicol https://hg.mozilla.org/integration/autoland/rev/66205d10a66a Pt 5 - Refactor RenderTaskLocation r=jnicol

Backed out 3 changesets (bug 1682365) for wrench/reftests failures.

Push with failures: https://treeherder.mozilla.org/jobs?repo=autoland&group_state=expanded&selectedTaskRun=JwHyqPToQReKxWcEPTsCfA.0&fromchange=65b54a5a458d405c6f033e8da817d2fd69ea6feb&searchStr=android%2C8.0%2Cpixel2%2Cdebug%2Cwebrender%2Cstandalone%2Cwebrender-android-hw-p2-debug%2Cwrench&tochange=d7924331f6a43723e8ee47854768388101ca0f88

Backout link: https://hg.mozilla.org/integration/autoland/rev/d7924331f6a43723e8ee47854768388101ca0f88

Failure log: https://treeherder.mozilla.org/logviewer?job_id=324896268&repo=autoland&lineNumber=1440

[task 2020-12-18T02:43:11.006Z] Granting important runtime permissions to org.mozilla.wrench
[task 2020-12-18T02:43:11.006Z] Unable to grant runtime permission android.permission.WRITE_EXTERNAL_STORAGE to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.WRITE_EXTERNAL_STORAGE', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.WRITE_EXTERNAL_STORAGE
[task 2020-12-18T02:43:11.006Z] Unable to grant runtime permission android.permission.ACCESS_COARSE_LOCATION to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.ACCESS_COARSE_LOCATION', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.ACCESS_COARSE_LOCATION
[task 2020-12-18T02:43:11.006Z] Unable to grant runtime permission android.permission.ACCESS_FINE_LOCATION to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.ACCESS_FINE_LOCATION', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.ACCESS_FINE_LOCATION
[task 2020-12-18T02:43:11.006Z] Unable to grant runtime permission android.permission.CAMERA to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.CAMERA', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.CAMERA
[task 2020-12-18T02:43:11.006Z] Unable to grant runtime permission android.permission.RECORD_AUDIO to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.RECORD_AUDIO', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.RECORD_AUDIO
[task 2020-12-18T02:43:11.006Z] Unable to grant runtime permission android.permission.ACCESS_WIFI_STATE to org.mozilla.wrench due to args: adb wait-for-device shell su -c 'pm grant org.mozilla.wrench android.permission.ACCESS_WIFI_STATE', exitcode: 1, stdout: Operation not allowed: java.lang.SecurityException: Package org.mozilla.wrench has not requested permission android.permission.ACCESS_WIFI_STATE
[task 2020-12-18T02:43:11.006Z] launch_application: am start -W -n org.mozilla.wrench/android.app.NativeActivity
[task 2020-12-18T02:43:11.006Z] 02:31:22     INFO - App launched
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - Tests done; parsing logcat...
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - Killing logcat pid 346.
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - === scraped logcat output ===
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST /sdcard/wrench/reftests/aa/aa-dist-bug.yaml == /sdcard/wrench/reftests/aa/aa-dist-bug-ref.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10    ERROR - REFTEST TEST-UNEXPECTED-FAIL | /sdcard/wrench/reftests/aa/aa-dist-bug.yaml == /sdcard/wrench/reftests/aa/aa-dist-bug-ref.yaml | image comparison, max difference: 1, number of differing pixels: 108 | 108 num_differences > 0 and <= 255 (allowed 0);
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGg...
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,iVBORw0KGgoAAAAN...
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST TEST-END | /sdcard/wrench/reftests/aa/aa-dist-bug.yaml == /sdcard/wrench/reftests/aa/aa-dist-bug-ref.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST /sdcard/wrench/reftests/aa/fractional-radii.yaml == /sdcard/wrench/reftests/aa/fractional-radii-ref.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-leaf.yaml == /sdcard/wrench/reftests/backface/backface-leaf-ref.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-3d-leaf.yaml == /sdcard/wrench/reftests/backface/backface-ref.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-hidden.yaml == /sdcard/wrench/reftests/backface/backface-ref.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-sc.yaml == /sdcard/wrench/reftests/backface/backface-ref.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-picture.yaml == /sdcard/wrench/reftests/backface/backface-picture-ref.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-double-flip.yaml == /sdcard/wrench/reftests/backface/blank.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST /sdcard/wrench/reftests/backface/backface-both-sides.yaml == /sdcard/wrench/reftests/backface/backface-both-sides-ref.yaml
[task 2020-12-18T02:43:11.006Z] 02:43:10    ERROR - REFTEST TEST-UNEXPECTED-FAIL | /sdcard/wrench/reftests/backface/backface-both-sides.yaml == /sdcard/wrench/reftests/backface/backface-both-sides-ref.yaml | image comparison, max difference: 1, number of differing pixels: 32 | 32 num_differences > 0 and <= 255 (allowed 0);
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST   IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...
[task 2020-12-18T02:43:11.006Z] 02:43:10     INFO - REFTEST   IMAGE 2 (REFERENCE): data:image/png;base64,iVBORw0KGgoAA...
...
...
...
Flags: needinfo?(gwatson)
Regressions: 1683323
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1a59c94a034f Pt 3 - Remove array textures from picture cache tiles. r=nical,jnicol https://hg.mozilla.org/integration/autoland/rev/e30c7d6f0717 Pt 4 - Add RenderTaskGraphBuilder / RenderTaskGraph split r=jnicol https://hg.mozilla.org/integration/autoland/rev/bf177e662527 Pt 5 - Refactor RenderTaskLocation r=jnicol
Regressions: 1679681

The android wrench reftest failures were fixed and those parts have been relanded (the problem was a copy-paste error where picture cache tiles were using linear filtering instead of nearest).

Flags: needinfo?(gwatson)
Blocks: 1655851
Blocks: 1677332
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9e37e5cb4af6 Pt 6 - Add new frame graph implementation. r=nical
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7a72b129a177 Pt 6 - Add new frame graph implementation. r=nical
Blocks: 1671513
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED

== Change summary for alert #28202 (as of Tue, 22 Dec 2020 08:25:08 GMT) ==

Improvements:

Ratio Suite Test Platform Options Absolute values (old vs new)
9% Heap Unclassified linux1804-64-shippable-qr tp6 281,405,490.24 -> 255,320,478.19
5% Explicit Memory linux1804-64-shippable-qr tp6 699,490,659.96 -> 662,534,543.90
4% Resident Memory linux1804-64-shippable-qr tp6 1,044,652,184.52 -> 999,031,733.73
4% Resident Memory linux1804-64-shippable-qr tp6 1,037,727,956.92 -> 1,000,061,288.32

For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=28202

Blocks: 1684781

Glenn, since part 3 are we now using separate textures per picture cache tile? I guess this means we need more draw calls for the composite pass, do we plan to fix this? By using 1024x512 tiles in larger 2048x2048 textures or something?

Flags: needinfo?(gwatson)

Yep, that's right. I think it does make sense to use larger textures to reduce the draw call counts. I had assumed it would be a low priority since the number of tiles is typically fairly small - but maybe the draw call count is high enough on some devices that we should prioritize it?

Flags: needinfo?(gwatson)

I think you're right that it isn't highest priority, for the reasons you state. I'll file a bug about it anyway though so we remember to do it at some point. we might need every optimization we can get as we roll out to more lower end android devices.

See Also: → 1685261
Regressions: 1686113
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: