30 Commits

Author SHA1 Message Date
Mike Reed
9a648a1c74 Merge "switch over clip calls to use SkClipOp instead of SkRegion::Op" 2016-12-07 20:54:59 +00:00
Mike Reed
6e49c9f007 switch over clip calls to use SkClipOp instead of SkRegion::Op
Change-Id: I67d23c487b5249bc31d96e3b2393f693c0b2bcff
2016-12-07 10:34:39 -05:00
Hal Canary
10219fb261 SkImageEncoder->SkEncodeImage
Test: none
Change-Id: I15630d2852d12840329181f135852e28d287bbcf
(cherry picked from commit 8c6bac4c77caeefb667bec90d16b5384fd2b2b31)
2016-12-07 13:29:42 +00:00
Stan Iliev
347691f8d8 Fix a crash in skia pipeline, when empty reorder block is first
Fix a crash in skia pipeline, which happens if an empty reorder
barrier is inserted at index 0 in a SkiaDisplayList.
Add a unit test that repro the bug (unit test is crashing wihtout
the fix and passing with the fix).

Test: built and ran skia pipeline with angler-eng and run HWUI unit
tests.

Change-Id: I4aded15021c70cc0ae8daa83bbe8ed0e10a41eef
2016-12-01 12:25:07 -05:00
Matt Sarett
711b6aec9a Merge "Add overdraw debugging feature to Skia pipelines" 2016-11-30 16:51:24 +00:00
Matt Sarett
f58cc92066 Add overdraw debugging feature to Skia pipelines
Test: Compared to OpenGL pipeline and sanity checked
with understanding of the drawing pipeline.  Also
wrote a unit test.

BUG:32370375

Change-Id: Iab397d21f0def725fa89551d48c764c67fd2bda8
2016-11-29 18:03:40 -05:00
Stan Iliev
88e0891f66 Fix draw order for non-RenderNode draw commands
Fix a drawing order issue in Skia pipeline. Add unit test in both
HWUI and Skia to test the fix.

Test: built and ran on angler-eng and HWUI unit tests passed.
Bug: 32506749
Change-Id: I7f13457726a8664f18a46aca2279b876acec2944
2016-11-28 15:14:42 -05:00
Stan Iliev
db45a4bfaf Fix Skia render node projection to match HWUI
Fix Skia render node projection to match HWUI. Port
FrameBuilderTests_projectionReorder test for Skia pipeline.
Add new tests in both HWUI and Skia to cover more projection
use cases.

Test: built and run on angler-eng
Change-Id: Ibf27af211452ae95d595aca7723ea63f48b0b282
2016-11-22 16:38:20 -05:00
Derek Sollenberger
e92d4045eb Merge "Update pinImages to report when GPU resource limits are exceeded." 2016-11-17 19:08:50 +00:00
TreeHugger Robot
6acb4efca3 Merge "Support Surface and Layer Readback in the SkiaPipelines." 2016-11-17 16:17:59 +00:00
Derek Sollenberger
189e87498f Update pinImages to report when GPU resource limits are exceeded.
Bug: 32691999
Test: proposed CTS test (ag/1500396) and existing UiRendering tests
Change-Id: I190f888ae5499ac048569af8256fdd31d19d1285
2016-11-17 09:56:53 -05:00
TreeHugger Robot
c4428c1e1a Merge "Add layer updates debugging feature to Skia pipelines" 2016-11-16 22:13:45 +00:00
Matt Sarett
79756be175 Add layer updates debugging feature to Skia pipelines
When this property is turned on, we flash green
every time a hardware layer is updated.

Test: Matches the behavior in OpenGLPipeline

BUG:32370375

Change-Id: I916f94eee644c185d8a3f9fa4cd69e087ed1e92d
2016-11-16 15:17:04 -05:00
Derek Sollenberger
c4fbada76a Support Surface and Layer Readback in the SkiaPipelines.
Test: CTS TextureViewTests and UIRendering
Change-Id: I2969c8f5a975bfd9aebcbb585c64d1fcbb2487c2
2016-11-16 13:30:00 -05:00
Derek Sollenberger
af9dc4dc30 Merge "Handle vulkan windowing directly in SkiaVulkanPipeline" 2016-11-14 13:26:05 +00:00
Derek Sollenberger
e547dd0b80 Cleanup asserts and remove usage of deprecated data structure.
Test: compile only
Change-Id: I9e9f1a3fb37db043d76a98a9568679e7e531e283
2016-11-09 18:04:44 +00:00
Derek Sollenberger
0e3cba3146 Handle vulkan windowing directly in SkiaVulkanPipeline
Test: manual testing in skiavk mode
Change-Id: I2fab80bae2787bfdacbc70d0402e98450e59406d
2016-11-09 11:58:36 -05:00
TreeHugger Robot
e3d281ea18 Merge "Add debug memory tracking to SkiaGLPipeline" 2016-11-08 01:15:33 +00:00
Matt Sarett
4bda6bfaa6 Add debug memory tracking to SkiaGLPipeline
Test: Sample output is below

D/OpenGLRenderer: Resource Cache Usage:
D/OpenGLRenderer:       32 items out of 8192 maximum items
D/OpenGLRenderer:  4635572 bytes (4.42 MB) out of 96.00 MB maximum

This is less verbose than OpenGL memory debug output for
two reasons:
(1) SkiaGL has less caches.
(2) SkiaGL does not support printing on cache additions/evictions.
    This seems like more of an internal debugging tool rather than
    a user-facing debug feature.  I think it's best to leave this
    unimplemented until we find that it might be useful.

BUG:32370375

Change-Id: Ib063f1c2a7f88e9840341b1001d227f556d88f26
2016-11-07 16:35:06 -05:00
TreeHugger Robot
9310f59cac Merge "Fix bug with displaying visual profile bars" 2016-11-07 21:32:28 +00:00
Matt Sarett
4c9bbf4eef Fix bug with displaying visual profile bars
Test: Used debugging feature.

BUG:32370375

Change-Id: I56e4e2155566a219ce43882e48b327123edccfe2
2016-11-07 14:23:33 -05:00
Derek Sollenberger
b7d34b64dd Refactor pin/unpinImages to work across pipelines.
Test: existing CTS tests still pass
Change-Id: Ib2607e9853396bad42f298829b5c5da0d210af32
2016-11-07 10:05:56 -05:00
TreeHugger Robot
3d36fac235 Merge "Add SkiaProfileRenderer to draw visual debugging info" 2016-11-04 12:53:40 +00:00
Matt Sarett
cf2c05c652 Add SkiaProfileRenderer to draw visual debugging info
This adds support for debug.hwui.profile and
debug.hwui.show_dirty_regions to the Skia pipelines.

There still may be some follow up work for profiling
with visual bars.  The speed at which the renderer
is able to draw the rects in the graph is having a
noticeable effect on the actual data in the graphs.

Test: Verified that the features work as expected.

BUG:32370375

Change-Id: I24430da2bab3eb54f6a771f9c984f8ae0008a5a7
2016-11-03 21:42:58 -04:00
TreeHugger Robot
eea591b08e Merge "Fix RenderNodeDrawable to draw nonzero Z nodes when needed" 2016-11-03 22:30:11 +00:00
TreeHugger Robot
40800725d2 Merge "Implement Skia pipelines for OpenGL and Vulkan." 2016-11-03 19:59:46 +00:00
Stan Iliev
2f06e8ad1a Fix RenderNodeDrawable to draw nonzero Z nodes when needed
Fix RenderNodeDrawable to draw nonzero Z nodes if not in a reordering
section.
Write an unit test modeled after FrameBuilder zReorder, which
verifies the bug fix.

Test: built and run unit tests on angler-eng.
bug: 32541103
Change-Id: Ifbf2d51f4432f5de3af4abe5987c2a72fed14185
2016-11-03 13:44:41 -04:00
Stan Iliev
500a0c30d4 Implement Skia pipelines for OpenGL and Vulkan.
Implement Skia pipelines for OpenGL and Vulkan:
base SkiaPipeline, SkiaOpenGLPipeline and SkiaVulkanPipeline.
Write unit tests for SkiaPipeline.

Test: Built and run manually on angler-eng.
Change-Id: Ie02583426cb3547541ad9bf91700602a6163ff58
2016-11-03 13:28:49 -04:00
Derek Sollenberger
f87da67df9 Adding changes required by the master-skia merge.
Test: compile only
Change-Id: I39637a20da439edbf2831952df9bfa12da78e9b9
2016-11-02 11:37:13 -04:00
Stan Iliev
021693b967 Implement SkiaRecordingCanvas, RenderNodeDrawable and other drawables.
Implement SkiaRecordingCanvas, RenderNodeDrawable, GLFunctorDrawable,
LayerDrawable, StartReorderBarrierDrawable, EndReorderBarrierDrawable.
Move AnimatedRoundRect and AnimatedCircle in a separate file.
All Skia pipeline files are moved in hwui/pipeline/skia folder.
Add unit tests for RenderNodeDrawable, StartReorderBarrierDrawable,
EndReorderBarrierDrawable and SkiaRecordingCanvas.

Test: I tested manually on 6P devices and did run the unit tests.
Change-Id: If2a347bd1fc4689953822294ce5bf98c7f3f57c7
2016-10-31 14:27:02 -04:00