diff options
| author | 2019-12-20 07:38:19 +0800 | |
|---|---|---|
| committer | 2020-12-08 04:04:13 +0000 | |
| commit | c5222134a4d539c77a101fa1e0c59465b0374d89 (patch) | |
| tree | a3ae6609587236c63b5b28e25b79e773bcece84a /vulkan/libvulkan/api.cpp | |
| parent | 598420651aa61b619cc34f66ede84b8b7d671aca (diff) | |
VirtualDisplaySurface propagate reallocation to VDS producer
When dequeuing from the source through refreshOutputBuffer(),
the dequeue result, BUFFER_NEEDS_REALLOCATION, is not propagated back up.
RenderSurface will not reallocate from VirtualDisplaySurface
in this situation, causing GLES to render to the wrong buffer.
Wrong buffer example,
beginFrame() -> refreshOutputBuffer() -> dequeueBuffer()
-> dequeueBuffer() needs reallocation.
but the result in refreshOuputBuffer() is overwritten by
mHwc.setOutputBuffer().
(the result is also not received by VDS itself)
We need a flag to indicate producer slot need reallocation,
so that we can sent reallocation to Consumer.
Bug: 157204337
Test: simulate second display with debug.sf.enable_hwc_vds = 1
Change-Id: Ibcbc3bd1ef857382ea9882dd10e0bd55759406f4
Diffstat (limited to 'vulkan/libvulkan/api.cpp')
0 files changed, 0 insertions, 0 deletions