Layer 之间同步以及如何减少GPU 带宽

本文探讨了如何在Layer之间实现单独更新,特别是在video层与状态栏交互的场景下。提出了可能的优化方案,如仅更新video layer或绕过缓冲队列处理。同时,详细阐述了FW和GPU处理video layer的方法,并解析了一系列关键变量和函数的作用,包括mCurrentTexture、nextTextureImage、BufferQueue等。此外,文章还讨论了buffer管理和同步机制,如fence的相关逻辑,以深入理解GPU带宽使用和优化。
摘要由CSDN通过智能技术生成

问题:

1) Layer 之间能否进行单独更新,比如其中video 层上面弹出的状态栏场景如何优化;

初步构想每次仅更新video layer或则将video layer 绕过BQ 进行处理。 

2)FW 以及GPU对video layer 的常见处理;

3)几个变量的理解;

(1)mCurrentTexture ,nextTextureImage;

(2)BufferItem,BufferQueue,mslots;slot,mqueuedframe,mqueuedItem;

(3)syncForReleaseLocked,updateAndReleaseLocked,releaseBufferLocked,releaseBuffer

(4)

/ acquireBuffer attempts to acquire ownership of the next pending buffer in the BufferQueue.
54      // If no buffer is pending then it returns NO_BUFFER_AVAILABLE. If a buffer is successfully
55      // acquired, the information about the buffer is returned in BufferItem.
56      //
57      // If the buffer returned had previously been acquired then the BufferItem::mGraphicBuffer field
58      // of buffer is set to NULL and it is assumed that the consumer still holds a reference to the
59      // buffer.
60      //
61      // If presentWhen is non-zero, it indicates the time when the buffer will be displayed on
62      // screen. If the buffer's timestamp is farther in the future, the buffer won't be acquired, and
63      // PRESENT_LATER will be returned. The presentation time is in nanoseconds, and the time base
64      // is CLOCK_MONOTONIC.
65      //
66      // If maxFrameNumber is non-zero, it indicates that acquireBuffer should only return a buffer
67      // with a frame number less than or equal to maxFrameNumber. If no such frame is available
68 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值