工具/软件:
您好、
我们 集成了 DSS eDP 显示元件。
我们为显示分配了3个输出缓冲器。 (考虑1个缓冲区显示将保持、另外2个缓冲区将旋转)
我们注意到 显示屏保存前2个缓冲区、第3个缓冲区正在旋转以处理下一帧数据。 这是理想的吗?
为什么它总是保持2个缓冲区而不是1个缓冲区?
它背后的限制是什么? 我们需要了解这一点吗?
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
您好、
我们 集成了 DSS eDP 显示元件。
我们为显示分配了3个输出缓冲器。 (考虑1个缓冲区显示将保持、另外2个缓冲区将旋转)
我们注意到 显示屏保存前2个缓冲区、第3个缓冲区正在旋转以处理下一帧数据。 这是理想的吗?
为什么它总是保持2个缓冲区而不是1个缓冲区?
它背后的限制是什么? 我们需要了解这一点吗?
谢谢
您好、Brijesh、
是的,我们做同样的例子:
m_display->sendBuffer(0U, buffer); // Enqueue ()
/*
*等待显示回调
*/
m_display->waitForVsync(); // 等待回调
/*
*将缓冲区排入队列
*/
Val = m_display->receiveBuffer (0U、outputBuffer); // 取消队列()
支出[3]
计数= 0
enqueue (outbuff[0])
等待 vsync
if (count >= 2)
Dequeue()
Count++
enqueue (outbuff[1])
等待 vsync
if (count >= 2)
Dequeue()
Count++
enqueue (outbuff[2])
等待 vsync
if (count >= 2)
去队列(outbuff[2])
Count++
enqueue (outbuff[2])
等待 vsync
if (count >= 2)
去队列(outbuff[2])
Count++
enqueue (outbuff[2])
等待 vsync
if (count >= 2)
去队列(outbuff[2])
Count++
以此类推……
现在、outbuff[0]和 outbuff[1]不会被排入队列、 只有 outbuff[2]会排入队列 。
所以为什么2缓冲器它的保持(- Enqueue 最小两个缓冲器 ) ?
谢谢
那么为什么要保留2个缓冲区(- Enqueue 最少两个缓冲区 ) ??
但是、如果您仅排队一个缓冲区、它不会给出回调、因为没有任何东西需要出队、因为此帧将重复。
此致、
Brijesh