[SurfaceFlinger] Replace android_dataspace with Dataspace.
This patch replaces all android_dataspace in SurfaceFlinger with Dataspace
V1.1. 3 commands in sequence are used to do the conversion:
find ./ -type f -exec sed -i -e 's/android_dataspace_t/Dataspace/g' {} \;
find ./ -type f -exec sed -i -e 's/android_dataspace/Dataspace/g' {} \;
find ./ -type f -exec sed -i -e 's/HAL_DATASPACE_/Dataspace::/g' {} \;
With some minor tweak because most of the APIs in frameworks/native are still
accepting android_dataspace/android_dataspace_t.
Next step is to convert the rest of android_dataspace usage to Dataspace in
frameworks/native as well as frameworks/base.
BUG: 77156734
Test: Build and flash
Change-Id: I2304c7014cb49a1c9f67c4563603fb55e8dbd679
diff --git a/services/surfaceflinger/DisplayHardware/ComposerHal.cpp b/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
index 117a99d..bbffd0a 100644
--- a/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
+++ b/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
@@ -32,6 +32,7 @@
using hardware::Return;
using hardware::hidl_vec;
using hardware::hidl_handle;
+using namespace hardware::graphics::common;
using namespace hardware::graphics::composer;
using PerFrameMetadata = hardware::graphics::composer::V2_2::IComposerClient::PerFrameMetadata;
using PerFrameMetadataKey =
@@ -256,17 +257,32 @@
{
const uint32_t bufferSlotCount = 1;
Error error = kDefaultError;
- mClient->createVirtualDisplay(width, height, *format, bufferSlotCount,
- [&](const auto& tmpError, const auto& tmpDisplay,
- const auto& tmpFormat) {
- error = tmpError;
- if (error != Error::NONE) {
- return;
- }
+ if (mClient_2_2) {
+ mClient_2_2->createVirtualDisplay_2_2(width, height, *format, bufferSlotCount,
+ [&](const auto& tmpError, const auto& tmpDisplay,
+ const auto& tmpFormat) {
+ error = tmpError;
+ if (error != Error::NONE) {
+ return;
+ }
- *outDisplay = tmpDisplay;
- *format = tmpFormat;
+ *outDisplay = tmpDisplay;
+ *format = tmpFormat;
+ });
+ } else {
+ mClient->createVirtualDisplay(width, height,
+ static_cast<V1_0::PixelFormat>(*format), bufferSlotCount,
+ [&](const auto& tmpError, const auto& tmpDisplay,
+ const auto& tmpFormat) {
+ error = tmpError;
+ if (error != Error::NONE) {
+ return;
+ }
+
+ *outDisplay = tmpDisplay;
+ *format = static_cast<PixelFormat>(tmpFormat);
});
+ }
return error;
}
@@ -522,7 +538,7 @@
.height = target->getHeight(),
.stride = target->getStride(),
.layerCount = target->getLayerCount(),
- .format = static_cast<PixelFormat>(target->getPixelFormat()),
+ .format = static_cast<V1_0::PixelFormat>(target->getPixelFormat()),
.usage = target->getUsage(),
};
mWriter.setClientTargetMetadata(metadata);
@@ -645,7 +661,7 @@
.height = buffer->getHeight(),
.stride = buffer->getStride(),
.layerCount = buffer->getLayerCount(),
- .format = static_cast<PixelFormat>(buffer->getPixelFormat()),
+ .format = static_cast<V1_0::PixelFormat>(buffer->getPixelFormat()),
.usage = buffer->getUsage(),
};
mWriter.setLayerBufferMetadata(metadata);
diff --git a/services/surfaceflinger/DisplayHardware/ComposerHal.h b/services/surfaceflinger/DisplayHardware/ComposerHal.h
index c0373aa..98f2f9d 100644
--- a/services/surfaceflinger/DisplayHardware/ComposerHal.h
+++ b/services/surfaceflinger/DisplayHardware/ComposerHal.h
@@ -24,6 +24,7 @@
#include <vector>
#include <android/frameworks/vr/composer/1.0/IVrComposerClient.h>
+#include <android/hardware/graphics/common/1.1/types.h>
#include <android/hardware/graphics/composer/2.2/IComposer.h>
#include <android/hardware/graphics/composer/2.2/IComposerClient.h>
#include <composer-command-buffer/2.2/ComposerCommandBuffer.h>
@@ -39,10 +40,10 @@
using android::hardware::graphics::common::V1_0::ColorMode;
using android::hardware::graphics::common::V1_0::ColorTransform;
-using android::hardware::graphics::common::V1_0::Dataspace;
using android::hardware::graphics::common::V1_0::Hdr;
-using android::hardware::graphics::common::V1_0::PixelFormat;
using android::hardware::graphics::common::V1_0::Transform;
+using android::hardware::graphics::common::V1_1::Dataspace;
+using android::hardware::graphics::common::V1_1::PixelFormat;
using android::hardware::graphics::composer::V2_1::Config;
using android::hardware::graphics::composer::V2_1::Display;
diff --git a/services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp b/services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp
index 9398bde..e6d7834 100644
--- a/services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp
+++ b/services/surfaceflinger/DisplayHardware/FramebufferSurface.cpp
@@ -44,6 +44,8 @@
namespace android {
// ----------------------------------------------------------------------------
+using ui::Dataspace;
+
/*
* This implements the (main) framebuffer management. This class is used
* mostly by SurfaceFlinger, but also by command line GL application.
@@ -92,7 +94,7 @@
uint32_t slot = 0;
sp<GraphicBuffer> buf;
sp<Fence> acquireFence(Fence::NO_FENCE);
- android_dataspace_t dataspace = HAL_DATASPACE_UNKNOWN;
+ Dataspace dataspace = Dataspace::UNKNOWN;
status_t result = nextBuffer(slot, buf, acquireFence, dataspace);
mDataSpace = dataspace;
if (result != NO_ERROR) {
@@ -104,7 +106,7 @@
status_t FramebufferSurface::nextBuffer(uint32_t& outSlot,
sp<GraphicBuffer>& outBuffer, sp<Fence>& outFence,
- android_dataspace_t& outDataspace) {
+ Dataspace& outDataspace) {
Mutex::Autolock lock(mMutex);
BufferItem item;
@@ -139,7 +141,7 @@
outFence = item.mFence;
mHwcBufferCache.getHwcBuffer(mCurrentBufferSlot, mCurrentBuffer,
&outSlot, &outBuffer);
- outDataspace = item.mDataSpace;
+ outDataspace = static_cast<Dataspace>(item.mDataSpace);
status_t result =
mHwc.setClientTarget(mDisplayType, outSlot, outFence, outBuffer, outDataspace);
if (result != NO_ERROR) {
@@ -178,7 +180,8 @@
void FramebufferSurface::dumpAsString(String8& result) const {
Mutex::Autolock lock(mMutex);
result.appendFormat(" FramebufferSurface: dataspace: %s(%d)\n",
- dataspaceDetails(mDataSpace).c_str(), mDataSpace);
+ dataspaceDetails(static_cast<android_dataspace>(mDataSpace)).c_str(),
+ mDataSpace);
ConsumerBase::dumpLocked(result, " ");
}
diff --git a/services/surfaceflinger/DisplayHardware/FramebufferSurface.h b/services/surfaceflinger/DisplayHardware/FramebufferSurface.h
index ed756c4..0fd8e9e 100644
--- a/services/surfaceflinger/DisplayHardware/FramebufferSurface.h
+++ b/services/surfaceflinger/DisplayHardware/FramebufferSurface.h
@@ -61,7 +61,7 @@
// BufferQueue and releases the previously latched buffer to the
// BufferQueue. The new buffer is returned in the 'buffer' argument.
status_t nextBuffer(uint32_t& outSlot, sp<GraphicBuffer>& outBuffer,
- sp<Fence>& outFence, android_dataspace_t& outDataspace);
+ sp<Fence>& outFence, ui::Dataspace& outDataspace);
// mDisplayType must match one of the HWC display types
int mDisplayType;
@@ -76,7 +76,7 @@
// compositing. Otherwise it will display the dataspace of the buffer
// use for compositing which can change as wide-color content is
// on/off.
- android_dataspace mDataSpace;
+ ui::Dataspace mDataSpace;
// mCurrentBuffer is the current buffer or nullptr to indicate that there is
// no current buffer.
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.cpp b/services/surfaceflinger/DisplayHardware/HWC2.cpp
index c2425ce..2686788 100644
--- a/services/surfaceflinger/DisplayHardware/HWC2.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWC2.cpp
@@ -47,6 +47,9 @@
namespace HWC2 {
namespace Hwc2 = android::Hwc2;
+using android::ui::ColorMode;
+using android::ui::Dataspace;
+using android::ui::PixelFormat;
namespace {
@@ -114,14 +117,13 @@
}
Error Device::createVirtualDisplay(uint32_t width, uint32_t height,
- android_pixel_format_t* format, Display** outDisplay)
+ PixelFormat* format, Display** outDisplay)
{
ALOGI("Creating virtual display");
hwc2_display_t displayId = 0;
- auto intFormat = static_cast<Hwc2::PixelFormat>(*format);
auto intError = mComposer->createVirtualDisplay(width, height,
- &intFormat, &displayId);
+ format, &displayId);
auto error = static_cast<Error>(intError);
if (error != Error::None) {
return error;
@@ -131,7 +133,6 @@
*mComposer.get(), mCapabilities, displayId, DisplayType::Virtual);
display->setConnected(true);
*outDisplay = display.get();
- *format = static_cast<android_pixel_format_t>(intFormat);
mDisplays.emplace(displayId, std::move(display));
ALOGI("Created virtual display");
return Error::None;
@@ -362,7 +363,7 @@
return Error::None;
}
-Error Display::getColorModes(std::vector<android::ui::ColorMode>* outModes) const
+Error Display::getColorModes(std::vector<ColorMode>* outModes) const
{
auto intError = mComposer.getColorModes(mId, outModes);
return static_cast<Error>(intError);
@@ -516,17 +517,16 @@
}
Error Display::setClientTarget(uint32_t slot, const sp<GraphicBuffer>& target,
- const sp<Fence>& acquireFence, android_dataspace_t dataspace)
+ const sp<Fence>& acquireFence, Dataspace dataspace)
{
// TODO: Properly encode client target surface damage
int32_t fenceFd = acquireFence->dup();
auto intError = mComposer.setClientTarget(mId, slot, target,
- fenceFd, static_cast<Hwc2::Dataspace>(dataspace),
- std::vector<Hwc2::IComposerClient::Rect>());
+ fenceFd, dataspace, std::vector<Hwc2::IComposerClient::Rect>());
return static_cast<Error>(intError);
}
-Error Display::setColorMode(android::ui::ColorMode mode)
+Error Display::setColorMode(ColorMode mode)
{
auto intError = mComposer.setColorMode(mId, mode);
return static_cast<Error>(intError);
@@ -765,14 +765,13 @@
return static_cast<Error>(intError);
}
-Error Layer::setDataspace(android_dataspace_t dataspace)
+Error Layer::setDataspace(Dataspace dataspace)
{
if (dataspace == mDataSpace) {
return Error::None;
}
mDataSpace = dataspace;
- auto intDataspace = static_cast<Hwc2::Dataspace>(dataspace);
- auto intError = mComposer.setLayerDataspace(mDisplayId, mId, intDataspace);
+ auto intError = mComposer.setLayerDataspace(mDisplayId, mId, mDataSpace);
return static_cast<Error>(intError);
}
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.h b/services/surfaceflinger/DisplayHardware/HWC2.h
index 71c094a..9b870e3 100644
--- a/services/surfaceflinger/DisplayHardware/HWC2.h
+++ b/services/surfaceflinger/DisplayHardware/HWC2.h
@@ -96,7 +96,7 @@
uint32_t getMaxVirtualDisplayCount() const;
Error createVirtualDisplay(uint32_t width, uint32_t height,
- android_pixel_format_t* format, Display** outDisplay);
+ android::ui::PixelFormat* format, Display** outDisplay);
void destroyDisplay(hwc2_display_t displayId);
void onHotplug(hwc2_display_t displayId, Connection connection);
@@ -234,7 +234,7 @@
[[clang::warn_unused_result]] Error setClientTarget(
uint32_t slot, const android::sp<android::GraphicBuffer>& target,
const android::sp<android::Fence>& acquireFence,
- android_dataspace_t dataspace);
+ android::ui::Dataspace dataspace);
[[clang::warn_unused_result]] Error setColorMode(
android::ui::ColorMode mode);
[[clang::warn_unused_result]] Error setColorTransform(
@@ -311,7 +311,7 @@
[[clang::warn_unused_result]] Error setColor(hwc_color_t color);
[[clang::warn_unused_result]] Error setCompositionType(Composition type);
[[clang::warn_unused_result]] Error setDataspace(
- android_dataspace_t dataspace);
+ android::ui::Dataspace dataspace);
[[clang::warn_unused_result]] Error setHdrMetadata(const android::HdrMetadata& metadata);
[[clang::warn_unused_result]] Error setDisplayFrame(
const android::Rect& frame);
@@ -335,7 +335,7 @@
hwc2_display_t mDisplayId;
hwc2_layer_t mId;
- android_dataspace mDataSpace = HAL_DATASPACE_UNKNOWN;
+ android::ui::Dataspace mDataSpace = android::ui::Dataspace::UNKNOWN;
android::HdrMetadata mHdrMetadata;
std::function<void(Layer*)> mLayerDestroyedListener;
};
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index 6bf2ee9..29e2727 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -179,7 +179,7 @@
}
status_t HWComposer::allocateVirtualDisplay(uint32_t width, uint32_t height,
- android_pixel_format_t* format, int32_t *outId) {
+ ui::PixelFormat* format, int32_t *outId) {
if (mRemainingHwcVirtualDisplays == 0) {
ALOGE("allocateVirtualDisplay: No remaining virtual displays");
return NO_MEMORY;
@@ -387,7 +387,7 @@
status_t HWComposer::setClientTarget(int32_t displayId, uint32_t slot,
const sp<Fence>& acquireFence, const sp<GraphicBuffer>& target,
- android_dataspace_t dataspace) {
+ ui::Dataspace dataspace) {
if (!isValidDisplay(displayId)) {
return BAD_INDEX;
}
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h
index 0366a0d..6e2e156 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.h
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.h
@@ -80,7 +80,7 @@
// Attempts to allocate a virtual display. If the virtual display is created
// on the HWC device, outId will contain its HWC ID.
status_t allocateVirtualDisplay(uint32_t width, uint32_t height,
- android_pixel_format_t* format, int32_t* outId);
+ ui::PixelFormat* format, int32_t* outId);
// Attempts to create a new layer on this display
HWC2::Layer* createLayer(int32_t displayId);
@@ -92,7 +92,7 @@
status_t setClientTarget(int32_t displayId, uint32_t slot,
const sp<Fence>& acquireFence,
- const sp<GraphicBuffer>& target, android_dataspace_t dataspace);
+ const sp<GraphicBuffer>& target, ui::Dataspace dataspace);
// Present layers to the display and read releaseFences.
status_t presentAndGetReleaseFences(int32_t displayId);
diff --git a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
index 3480b24..9a2817d 100644
--- a/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
+++ b/services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
@@ -222,7 +222,7 @@
// TODO: Correctly propagate the dataspace from GL composition
result = mHwc.setClientTarget(mDisplayId, hwcSlot, mFbFence,
- hwcBuffer, HAL_DATASPACE_UNKNOWN);
+ hwcBuffer, ui::Dataspace::UNKNOWN);
}
return result;