summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-11-29 00:19:39 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-11-29 00:19:39 +0000
commit224900dd6ea4ab09d23840d3af7081d70d205f23 (patch)
treee6a0a3cbd3c04727dd6f5bd6e4a7c8ff9c2be029
parentafe5a2694b9998951e91b4836c4702709c1e9a35 (diff)
parent64b51ff82f4d0a92e5405e017ed3529100d6cdfc (diff)
downloadcommon-224900dd6ea4ab09d23840d3af7081d70d205f23.tar.gz
Snap for 11151698 from 64b51ff82f4d0a92e5405e017ed3529100d6cdfc to 24Q1-release
Change-Id: I4ff2cc37bc45be2ce53e47460b99c77835ac296c
-rw-r--r--libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp10
-rw-r--r--libhwc2.1/libvrr/VariableRefreshRateController.cpp11
2 files changed, 12 insertions, 9 deletions
diff --git a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
index eebe104..b982e05 100644
--- a/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
+++ b/libhwc2.1/libdisplayinterface/ExynosDisplayDrmInterface.cpp
@@ -1027,20 +1027,20 @@ int32_t ExynosDisplayDrmInterface::getDisplayConfigs(
if (!outConfigs) {
bool isVrrApiSupported = mExynosDisplay->mDevice->isVrrApiSupported();
bool useVrrConfigs = mIsVrrModeSupported && isVrrApiSupported;
- ALOGI("Select Vrr Config: composer interface compatibility = %s, composer hardware "
- "Compatibility = %s, use Vrr config = %s",
- isVrrApiSupported ? "true" : "false", mIsVrrModeSupported ? "true" : "false",
- useVrrConfigs ? "true" : "false");
int ret = mDrmConnector->UpdateModes(useVrrConfigs);
if (ret < 0) {
ALOGE("Failed to update display modes %d", ret);
return HWC2_ERROR_BAD_DISPLAY;
}
-
if (ret == 0) {
// no need to update mExynosDisplay->mDisplayConfigs
goto no_mode_changes;
}
+ ALOGI("Select Vrr Config for display %s: composer interface compatibility = %s, display "
+ "hardware "
+ "Compatibility = %s, use Vrr config = %s",
+ mExynosDisplay->mDisplayName.c_str(), isVrrApiSupported ? "true" : "false",
+ mIsVrrModeSupported ? "true" : "false", useVrrConfigs ? "true" : "false");
if (mDrmConnector->state() == DRM_MODE_CONNECTED) {
/*
diff --git a/libhwc2.1/libvrr/VariableRefreshRateController.cpp b/libhwc2.1/libvrr/VariableRefreshRateController.cpp
index f7ef5a9..8f0af10 100644
--- a/libhwc2.1/libvrr/VariableRefreshRateController.cpp
+++ b/libhwc2.1/libvrr/VariableRefreshRateController.cpp
@@ -77,7 +77,7 @@ VariableRefreshRateController::~VariableRefreshRateController() {
const std::lock_guard<std::mutex> lock(mMutex);
if (mLastPresentFence.has_value()) {
if (close(mLastPresentFence.value())) {
- LOG(ERROR) << "VrrController:: close fence file failed, errno = " << errno;
+ LOG(ERROR) << "VrrController: close fence file failed, errno = " << errno;
}
mLastPresentFence = std::nullopt;
}
@@ -105,7 +105,7 @@ void VariableRefreshRateController::reset() {
dropEventLocked();
if (mLastPresentFence.has_value()) {
if (close(mLastPresentFence.value())) {
- LOG(ERROR) << "VrrController:: close fence file failed, errno = " << errno;
+ LOG(ERROR) << "VrrController: close fence file failed, errno = " << errno;
}
mLastPresentFence = std::nullopt;
}
@@ -166,6 +166,9 @@ void VariableRefreshRateController::stopThread() {
}
void VariableRefreshRateController::onPresent(int fence) {
+ if (fence < 0) {
+ return;
+ }
ATRACE_CALL();
{
const std::lock_guard<std::mutex> lock(mMutex);
@@ -242,7 +245,7 @@ void VariableRefreshRateController::updateVsyncHistory() {
// Execute the following logic unlocked to enhance performance.
int64_t lastSignalTime = getLastFenceSignalTimeUnlocked(fence);
if (close(fence)) {
- LOG(ERROR) << "VrrController:: close fence file failed, errno = " << errno;
+ LOG(ERROR) << "VrrController: close fence file failed, errno = " << errno;
return;
} else if (lastSignalTime == SIGNAL_TIME_PENDING || lastSignalTime == SIGNAL_TIME_INVALID) {
return;
@@ -329,7 +332,7 @@ int64_t VariableRefreshRateController::getLastFenceSignalTimeUnlocked(int fd) {
if (finfo->status != 1) {
const auto status = finfo->status;
if (status < 0) {
- LOG(ERROR) << "VrrController:: sync_file_info contains an error: " << status;
+ LOG(ERROR) << "VrrController: sync_file_info contains an error: " << status;
}
sync_file_info_free(finfo);
return status < 0 ? SIGNAL_TIME_INVALID : SIGNAL_TIME_PENDING;