[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin.spec
^
|
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.12.tar.bz2/hwcomposer/hwcomposer_backend_v11.cpp
^
|
@@ -99,6 +99,7 @@
hwc_display_contents_1_t **mlist;
int num_displays;
bool m_syncBeforeSet;
+ bool m_waitOnRetireFence;
protected:
void present(HWComposerNativeWindowBuffer *buffer);
@@ -122,6 +123,7 @@
int bufferCount = qBound(2, qgetenv("QPA_HWC_BUFFER_COUNT").toInt(), 8);
setBufferCount(bufferCount);
m_syncBeforeSet = qEnvironmentVariableIsSet("QPA_HWC_SYNC_BEFORE_SET");
+ m_waitOnRetireFence = qEnvironmentVariableIsSet("QPA_HWC_WAIT_ON_RETIRE_FENCE");
}
void HWComposer::present(HWComposerNativeWindowBuffer *buffer)
@@ -133,6 +135,13 @@
fblayer->handle = buffer->handle;
fblayer->releaseFenceFd = -1;
+ int retireFenceFd = -1;
+
+ if (m_waitOnRetireFence) {
+ retireFenceFd = mlist[0]->retireFenceFd;
+ mlist[0]->retireFenceFd = -1;
+ }
+
if (m_syncBeforeSet) {
int acqFd = getFenceBufferFd(buffer);
if (acqFd >= 0) {
@@ -160,7 +169,10 @@
setFenceBufferFd(buffer, fblayer->releaseFenceFd);
- if (mlist[0]->retireFenceFd != -1) {
+ if (m_waitOnRetireFence && retireFenceFd != -1) {
+ sync_wait(retireFenceFd, -1);
+ close(retireFenceFd);
+ } else if (!m_waitOnRetireFence && mlist[0]->retireFenceFd != -1) {
close(mlist[0]->retireFenceFd);
mlist[0]->retireFenceFd = -1;
}
@@ -476,7 +488,7 @@
bool HwComposerBackend_v11::event(QEvent *e)
{
if (e->type() == QEvent::User) {
- static int idleTime = qBound(0, qgetenv("QPA_HWC_IDLE_TIME").toInt(), 100);
+ static int idleTime = qBound(5, qgetenv("QPA_HWC_IDLE_TIME").toInt(), 100);
if (!m_deliverUpdateTimeout.isActive())
m_deliverUpdateTimeout.start(idleTime, this);
return true;
|
[-]
[+]
|
Changed |
_service:tar_git:qt5-qpa-hwcomposer-plugin-5.6.2.12.tar.bz2/hwcomposer/hwcomposer_backend_v20.cpp
^
|
@@ -246,6 +246,8 @@
{
hwc2_compat_display_set_vsync_enabled(hwc2_primary_display, HWC2_VSYNC_DISABLE);
+ hwc2_compat_display_set_power_mode(hwc2_primary_display, HWC2_POWER_MODE_DOZE);
+
// Close the hwcomposer handle
if (!qgetenv("QPA_HWC_WORKAROUNDS").split(',').contains("no-close-hwc"))
free(hwc2_device);
@@ -389,7 +391,7 @@
bool HwComposerBackend_v20::event(QEvent *e)
{
if (e->type() == QEvent::User) {
- static int idleTime = qBound(0, qgetenv("QPA_HWC_IDLE_TIME").toInt(), 100);
+ static int idleTime = qBound(5, qgetenv("QPA_HWC_IDLE_TIME").toInt(), 100);
if (!m_deliverUpdateTimeout.isActive())
m_deliverUpdateTimeout.start(idleTime, this);
return true;
|