summaryrefslogtreecommitdiff
path: root/rs/java/android/renderscript/ProgramFragmentFixedFunction.java
diff options
context:
space:
mode:
authorEvan Rosky <erosky@google.com>2020-10-13 20:40:23 -0700
committerEvan Rosky <erosky@google.com>2020-10-16 13:25:17 -0700
commit123ca798581b5987f0f8048b234f8aec444847b6 (patch)
tree52e8868aefb9adf3cd4c97ea6d0eac0093c55384 /rs/java/android/renderscript/ProgramFragmentFixedFunction.java
parent97d89af95ffc5668fcd340ced7d5b7fb0a9178b1 (diff)
Convert BLASTSyncEngine to a polling mechanism
SyncEngine's requirements are getting more demanding as it is used in transitions as-well as more-complicated interractions in Shell. In order to meet the requirements, this converts BLASTSyncEngine to work mostly by polling during surface-placement. The previous set-up was already gated on surface-placement, so there shouldn't be any additional latency. There is now only one SyncEngine (instead of many) and it manages SyncGroups which must not overlap. Whenever a container is added to a sync group, the SyncEngine will monitor the subtree rooted at that container. When a child receives finishDrawing: instead of immediately reporting to the engine, it simply remembers that it is now READY for sync. On each surface-placement pass, SyncEngine will check the subtrees to see if everything is finished syncing. This enabled the following: - Now handles visibility changes and new children (since it is always checking the full subtree). This is needed to deal with opening transitions. - Doesn't wait for occluded siblings. This is needed to deal with starting windows. - Handles parenting changes: immediately applies sync transactions on subtrees exiting the sync-group, requests updates/waits on subtrees entering, and re-requests updates for subtrees moving within the group. - Includes removals in sync transaction Bug: 161710818 Test: SyncEngineTests Change-Id: Ic3fdc091d5656b3eaea45bce449e098ee9d2aabb
Diffstat (limited to 'rs/java/android/renderscript/ProgramFragmentFixedFunction.java')
0 files changed, 0 insertions, 0 deletions