Commit Graph

41 Commits

Author SHA1 Message Date
John Reck
ec100976e0 Add support for render-ahead
For periods of time during which latency is less important
allow a client to request a deeper render-ahead pipeline.

The latency tradeoff results in less overall visual jank

Test: none, only used by macrobench

Change-Id: I516203b70bdc75b6415fa08bf9c4fb1b598b0102
2018-04-09 10:58:15 -07:00
Jorim Jaggi
767e25ed61 Add ability to change context priority of RT GL context
Test: Use method, observe GPU preemption behavior
Bug: 75985430
Change-Id: Idc08d37f8c95f52c5aab7edf09c0cbff72b8482d
2018-04-06 12:12:07 +00:00
John Reck
564284759f Don't use IPC in isolateProcess
Fixes: 74395652
Test: hwuiunit passes in 'shell stop' state (pseudo-isolated process),
      manually checked non-isolated processes still have working vsync
      via systrace of RT animations demo

Change-Id: I630ea011dc7eb2efa265b25673d3304b3b2510d3
2018-03-16 17:34:02 -07:00
John Reck
6afa009c0c Allow debuggable apps to do skp capture
Change-Id: Ibb56887b28eb8260bf2ca0b38dbe78233e9cfaf4
Fixes: 74086676
Test: verified can still capture an skp
2018-03-01 17:28:35 -08:00
Lingfeng Yang
3a9f223dd1 Don't use shader disk cache on emulator
bug: 71900691

Emulator user might switch renderers, migrate a snapshot to a different
machine with a different shader binary format, etc.

Plus, program binaries don't seem to work so well on some desktop GPUs.

Change-Id: I0c6239acbd556097494aa903d6603c963d3141cb
2018-01-24 12:21:46 -08:00
John Reck
9f51644abf Extreme battery saver: Allow lowering framerate for experiments.
Bug: 68769804
Test: manual
Change-Id: Ic0c95f32c7ba6d86a997997e480e6d8a5f228f25
2017-12-06 13:59:19 -08:00
John Reck
113ddd9ef5 Allow hwuimacro to choose a renderer
Test: this
Change-Id: I500b033257f317f8a3124e8072dc8d39d666b01b
2017-11-09 16:21:21 -08:00
John Reck
1bcacfdcab Format the world (or just HWUI)
Test: No code changes, just ran through clang-format
Change-Id: Id23aa4ec7eebc0446fe3a30260f33e7fd455bb8c
2017-11-03 10:57:44 -07:00
Stan Iliev
e9d0012bbf Convert skpCaptureEnabled compile time flag into a property
Convert SkiaPipeline::skpCaptureEnabled into a system property.
Add ability to capture drawing in layers. Add ability to capture
animations/sequence of frames. Fix crash when recording a
TextureView.

Test: Ran capture script.
Change-Id: I463eecf6ec90a601a6cc172ad1901bd4bcc86ac8
2017-10-20 17:49:12 -04:00
Derek Sollenberger
04f1f01139 Switch default renderer to back to Skia's OpenGL pipeline once more.
Bug: 63910712
Test: CtsGraphicsTestCases, CtsUiRenderingTestCases, CtsViewTestCases
Change-Id: Idb862a0dece6b13dc7a105f6a47e4e33911ecc4a
2017-09-05 13:12:19 +00:00
John Reck
938e884a1f Avoid setting high contrast in every view draw
Test: high contrast text still works
Change-Id: I6674d1aca8dddf7eb9725a5346aed12ef1dbc195
2017-08-24 16:15:58 -07:00
Derek Sollenberger
60d7841e39 Revert "Switch default renderer to Skia's OpenGL pipeline."
This reverts commit 4bc27b6e64.

Bug: 64487466
Bug: 63910712
Bug: 64683344
Change-Id: Icd4ab774788d72252c4dce0925f0bef20a60511f
2017-08-14 18:06:46 +00:00
Derek Sollenberger
4bc27b6e64 Switch default renderer to Skia's OpenGL pipeline.
This is the second attempt now that we have addressed many of the
correctness and performance concerns.

Bug: 63910712
Change-Id: I3df4ba52c2bc59930f577ffc8d889cb23a16a439
Test: CtsGraphicsTestCases, CtsUiRenderingTestCases, CtsViewTestCases
2017-08-11 19:21:20 +00:00
Derek Sollenberger
27e9329d04 Revert "Switch default renderer to Skia's OpenGL pipeline."
This reverts commit 312a3a0c28.
Fixes: 64478761

Change-Id: I8caf95ead1b339447768b5e360a6d0b9705477de
2017-08-08 16:56:26 +00:00
Derek Sollenberger
312a3a0c28 Switch default renderer to Skia's OpenGL pipeline.
Bug: 63910712
Test: CtsGraphicsTestCases, CtsUiRenderingTestCases
Change-Id: I901c236cfb5bfadcb59c449a76699479625944f9
2017-08-07 15:38:51 +00:00
John Reck
8dc02f99d0 Delete all ro.hwui.* props
Remove all ro.hwui.* tuning props and instead
calculate them from the screen resolution.

Or just hardcode them to what all devices
were hardcoding them to anyway.

Bug: 63741221
Test: Check cache size results on sailfish

Change-Id: I8b0d210572a246f4fefb076935cf5156a70c274c
2017-07-19 17:24:03 -07:00
John Reck
a896306c38 Add a workaround for simulate secondary display
To workaround a deadlock caused by bufferqueue locks
we force RenderThread over to use async mode which
we enable via eglSwapInterval(0)

Bug: 38372997
Test: steps in the bug
Change-Id: Ia305f73abbdd64ab0c25d1f7d32792cc6295a0ce
2017-06-14 10:50:14 -07:00
Chris Craik
6e66b39e4a Log rendering pipeline when initializing
Test: manual, boots

Change-Id: I6e544510053ecf2b397ac998bcc7be9c00295a7d
2017-02-23 15:51:59 -08:00
Derek Sollenberger
4badfe6d3b Add developer setting to set the default GPU renderer.
Test: manual on-device testing
Bug: 35345959
Change-Id: I1d846f922a048dd215caf053b10aaa909bdbc74d
2017-02-14 12:03:02 -05:00
Greg Daniel
57b8eb3da0 Merge "Update hwui_unit_tests to support running with Vulkan backend." 2017-01-18 16:13:04 +00:00
Greg Daniel
98c78dad19 Update hwui_unit_tests to support running with Vulkan backend.
Added Macros for RENDERTHREAD_TESTS which run these tests using specific backends.
RENDERTHREAD_TESTS - Runs OpenGL, SkiaGL, and SkiaVulkan
RENDERTHREAD_SKIA_TESTS - Runs SkiaGL and SkiaVulkan
RENDERTHREAD_OPENGL_TESTS - Runs OpenGL

Test: manual running of hwui_unit_tests

Change-Id: Ia7420ee7a38803a15e2d58394d14b38cae8208d3
2017-01-18 09:12:31 -05:00
Mark Salyzyn
173215d1b2 resolve merge conflicts of ec7e2a164c to master
Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I49c6e41b79061e2b3c0352e3ac8fa5ebb152b6f5
2017-01-12 08:28:30 -08:00
Mark Salyzyn
96bf5985d5 Replace cutils/log.h and log/logger.h with android/log.h or log/log.h
(part deux)

Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I7417936c4d3666608fccfe51a312c90ecefba2fb
2017-01-11 15:30:30 -08:00
Mark Salyzyn
db15537e6e resolve merge conflicts of 082a1721b5 to master
Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I17f178f425975c1c0dbd48091d25b101956d505e
2017-01-11 08:30:17 -08:00
Mark Salyzyn
52eb4e01a4 Replace cutils/log.h and log/logger.h with log/log.h
Test: compile
Bug: 26552300
Bug: 31289077
Change-Id: I578b15b48f0fc2807a92abbc69a377c3d2191496
2017-01-09 14:31:34 -08:00
Derek Sollenberger
0df6209a02 Initial refactoring to enable the addition of the SkiaOpenGLPipeline.
Test: existing and new HWUI unit tests all pass.
Change-Id: I4f5c1dc839a2ed15d8b0f6245fe030684501b083
2016-10-05 15:28:27 -04:00
Stan Iliev
8a33e40199 Move isSkiaEnabled to the Properties class
Move CanvasContext::isSkiaEnabled to Properties:isSkiaEnabled.

Change-Id: I0a62f43825cf59ba338a24a056e8c2a56d1c5315
2016-07-11 12:01:51 -04:00
Stan Iliev
03de074d05 Implement runtime switch to select default renderer mode
Add a system property debug.hwui.default_renderer, which allows
to set rendering mode to OpenGL (default), Skia OpenGL or Vulkan.

Change-Id: I8bca5bacc5108f77437e340ac61f2d8db8cc4c39
2016-07-07 14:27:20 -04:00
John Reck
f1480761c1 Benchmark-mode for macrobench
Adds googlebench output format support
Adds offscreen rendering for >60fps benchmarking
Adds 'all' alias to run all registered TestScenes

Change-Id: I2579e40f2f4c941bfbd90c75efbee384c08a116b
2016-07-06 10:50:21 -07:00
John Reck
c7cd9cf25d Add an option to try and filter out test overhead
Bug: 26912651

By setting debug.hwui.filter_test_overhead to true, hwui's
janktracker will attempt to filter out overhead caused
by the event injection that automated testing uses

Change-Id: I75c8dc5e7798e06e3009baf396108507c7240eec
2016-03-30 10:08:13 -07:00
Chris Craik
48a8f431fa Move several property queries to Properties class
bug:17478770

This removes a lot of redundant property query code, and puts the
queries all in one place, so defining them automatically will be simpler
in the future.

Change-Id: I0428550e6081f07bc6554ffdf73b22284325abb8
2016-02-05 17:38:22 -08:00
John Reck
682573c84b Add some options to macrobench
Change-Id: If8d5f5d3ace050577986a554182b2b66fd2257e1
2015-12-16 16:40:02 -08:00
Chris Craik
9fded232a9 Recycle OffscreenBuffers
Change-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd
2015-11-12 13:05:35 -08:00
John Reck
6b50780363 Remove almost-all android::Singleton users
Bug: 25426213
Change-Id: I88e6206e8915cce95c3a8a8a82a4bb8fbf668141
2015-11-03 10:09:59 -08:00
John Reck
a672f6ba4c Remove obsolete debug option
Bug: 25149700
Change-Id: I9280e2414255fb01e672094cd8d173efadac1681
2015-10-22 09:53:26 -07:00
Chris Craik
c08820f587 Remove lookup3 gamma code
Also clean up gamma / glyph cache properties

Change-Id: I75b1ac0cb55638bf787ffd3cf457483ae314f03b
2015-09-22 14:40:35 -07:00
John Reck
149173d28c Support new EGL extensions
Bug: 21753739

Includes a revert of 13d1b4ab10
as that only supported EGL_EXT_buffer_age

Change-Id: Ia86a47d19e3355c067934d7764c330b640c6958d
2015-08-12 14:26:05 -07:00
Chris Craik
e6a15ee3d0 Remove all usage of fmin and fmax
bug:22208220

Removes needless call, and upconversion to doubles in multiple places.

Change-Id: I1b949fa5f206446ac34de800154c0147d6bd8034
2015-07-07 18:42:42 -07:00
John Reck
4cd44f8110 Enable swapBuffersWithDamage by default
Bug: 20761426

Change-Id: I520e60ca4f182dea590bc86eebd522e1db7a018a
2015-05-27 10:28:28 -07:00
John Reck
d04794a9a3 Add eglSwapBuffersWithDamageKHR support
BUG: 20761426
Disabled temporarily

Change-Id: I0b6b6f0eebab886145e13fa35aefe76826965cf5
2015-05-08 10:48:57 -07:00
Chris Craik
2507c34d91 Cleanup properties
bug:19967854

Separate properties from Caches, into static, RenderThread-only class.

Also rewrites the means for java to set properties to correctly handle
threading, and adds an override for profile bars so that SysUi doesn't clutter
the screen with them.

Change-Id: I6e21a96065f52b9ecc49d1a126244804ba106fa9
2015-05-05 10:36:09 -07:00