Drop the buffer from the cache if the buffer is dropped from the transaction
This can happen with the scenario below 1. App sets buffer1 into a Transaction but doesn't apply it. 2. The Transaction is sent to another process (system server in this case) 3. The buffer is then cached locally in the process in writeToParcel 4. App sets buffer2 into a new Transaction but doesn't apply it. 5. Transaction2 is sent to the other process (system server) 6. Transaction1 and Transaction2 are merged causing the buffer in Transaction2 to overwrite the buffer in Transaction1. This causes the buffer to never get sent to SF and then never placed in the SF cache, but the client still thinks this buffer is cached and will continue to just send cacheId but no buffer when this buffer is reused. This can result in dropped frames since SF will not be able to find the buffer when trying to draw it Bug: 385976595 Test: atest ReleaseBufferCallbackTest#CacheBufferOverwriteTransaction Flag: EXEMPT bug fix Change-Id: Iffc316f9ffd00579cba3068e7bb0ffa52b805763
Loading
Please register or sign in to comment