DescriptionIPC-based sync compositor software draw optimization
Instead of allocating and mapping a new chunk of shared memory segment
in each draw synchronously, re-use the same segment if the sizes match
exactly.
Break software draws into 3 IPCs:
SetSharedMemory: synchronous, pass the shared memory handle to be used
for subsequent software draws to renderer
DemandDrawSw: synchronous, the draw itself
ZeroSharedMemory: asynchronous, zeros shared memory on renderer side,
sent after each DemandDrawSw after browser is done
reading from the shared memory.
ZeroSharedMemory is asynchronous so zero-ing the memory can be done in
parallel. Note messages on renderer are ordered, so ZeroSharedMemory
is guaranteed to be handled before the next DemandDrawSw.
BUG=545611
Committed: https://crrev.com/cafb1bf5df2fff9340fbeefb5ed3b7aaa22a4599
Cr-Commit-Position: refs/heads/master@{#367036}
Patch Set 1 #Patch Set 2 : debug logging #Patch Set 3 : fix maybe #Patch Set 4 : clean ups #Patch Set 5 : bring back zero-ing #
Total comments: 10
Patch Set 6 : review #Patch Set 7 : remove CHECK #
Messages
Total messages: 17 (9 generated)
|