Merge "Increase DumpstateBoard timeout to 30s" into pi-dev
diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp
index 6a1aebd..339bd0f 100644
--- a/libs/gui/Surface.cpp
+++ b/libs/gui/Surface.cpp
@@ -45,6 +45,7 @@
namespace android {
using ui::ColorMode;
+using ui::Dataspace;
Surface::Surface(const sp<IGraphicBufferProducer>& bufferProducer, bool controlledByApp)
: mGraphicBufferProducer(bufferProducer),
@@ -80,7 +81,7 @@
mReqFormat = 0;
mReqUsage = 0;
mTimestamp = NATIVE_WINDOW_TIMESTAMP_AUTO;
- mDataSpace = HAL_DATASPACE_UNKNOWN;
+ mDataSpace = Dataspace::UNKNOWN;
mScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE;
mTransform = 0;
mStickyTransform = 0;
@@ -666,8 +667,9 @@
sp<Fence> fence(fenceFd >= 0 ? new Fence(fenceFd) : Fence::NO_FENCE);
IGraphicBufferProducer::QueueBufferOutput output;
IGraphicBufferProducer::QueueBufferInput input(timestamp, isAutoTimestamp,
- mDataSpace, crop, mScalingMode, mTransform ^ mStickyTransform,
- fence, mStickyTransform, mEnableFrameTimestamps);
+ static_cast<android_dataspace>(mDataSpace), crop, mScalingMode,
+ mTransform ^ mStickyTransform, fence, mStickyTransform,
+ mEnableFrameTimestamps);
// we should send HDR metadata as needed if this becomes a bottleneck
input.setHdrMetadata(mHdrMetadata);
@@ -1098,8 +1100,7 @@
}
int Surface::dispatchSetBuffersDataSpace(va_list args) {
- android_dataspace dataspace =
- static_cast<android_dataspace>(va_arg(args, int));
+ Dataspace dataspace = static_cast<Dataspace>(va_arg(args, int));
return setBuffersDataSpace(dataspace);
}
@@ -1531,7 +1532,7 @@
return NO_ERROR;
}
-int Surface::setBuffersDataSpace(android_dataspace dataSpace)
+int Surface::setBuffersDataSpace(Dataspace dataSpace)
{
ALOGV("Surface::setBuffersDataSpace");
Mutex::Autolock lock(mMutex);
@@ -1563,7 +1564,7 @@
return NO_ERROR;
}
-android_dataspace_t Surface::getBuffersDataSpace() {
+Dataspace Surface::getBuffersDataSpace() {
ALOGV("Surface::getBuffersDataSpace");
Mutex::Autolock lock(mMutex);
return mDataSpace;
diff --git a/libs/gui/include/gui/Surface.h b/libs/gui/include/gui/Surface.h
index 641d62c..9aeafae 100644
--- a/libs/gui/include/gui/Surface.h
+++ b/libs/gui/include/gui/Surface.h
@@ -22,6 +22,7 @@
#include <gui/IGraphicBufferProducer.h>
#include <ui/ANativeObjectBase.h>
+#include <ui/GraphicTypes.h>
#include <ui/Region.h>
#include <utils/Condition.h>
@@ -245,7 +246,7 @@
virtual int setBuffersTransform(uint32_t transform);
virtual int setBuffersStickyTransform(uint32_t transform);
virtual int setBuffersTimestamp(int64_t timestamp);
- virtual int setBuffersDataSpace(android_dataspace dataSpace);
+ virtual int setBuffersDataSpace(ui::Dataspace dataSpace);
virtual int setBuffersSmpte2086Metadata(const android_smpte2086_metadata* metadata);
virtual int setBuffersCta8613Metadata(const android_cta861_3_metadata* metadata);
virtual int setCrop(Rect const* rect);
@@ -286,7 +287,7 @@
// detachNextBuffer, or attachBuffer call.
status_t getAndFlushRemovedBuffers(std::vector<sp<GraphicBuffer>>* out);
- android_dataspace_t getBuffersDataSpace();
+ ui::Dataspace getBuffersDataSpace();
static status_t attachAndQueueBuffer(Surface* surface, sp<GraphicBuffer> buffer);
@@ -340,9 +341,9 @@
int64_t mTimestamp;
// mDataSpace is the buffer dataSpace that will be used for the next buffer
- // queue operation. It defaults to HAL_DATASPACE_UNKNOWN, which
+ // queue operation. It defaults to Dataspace::UNKNOWN, which
// means that the buffer contains some type of color data.
- android_dataspace mDataSpace;
+ ui::Dataspace mDataSpace;
// mHdrMetadata is the HDR metadata that will be used for the next buffer
// queue operation. There is no HDR metadata by default.
diff --git a/libs/ui/Android.bp b/libs/ui/Android.bp
index f71f814..e477a83 100644
--- a/libs/ui/Android.bp
+++ b/libs/ui/Android.bp
@@ -83,6 +83,7 @@
"libhidlbase",
"libhidltransport",
"libhwbinder",
+ "libpdx_default_transport",
"libsync",
"libutils",
"libutilscallstack",
@@ -99,10 +100,9 @@
"libbase_headers",
"libnativebase_headers",
"libhardware_headers",
+ "libui_headers",
],
- export_include_dirs: ["include"],
-
export_static_lib_headers: [
"libarect",
"libmath",
@@ -112,6 +112,7 @@
"libbase_headers",
"libnativebase_headers",
"libhardware_headers",
+ "libui_headers",
],
}
@@ -119,6 +120,11 @@
name: "libui_headers",
export_include_dirs: ["include"],
vendor_available: true,
+ target: {
+ vendor: {
+ override_export_include_dirs: ["include_vndk"],
+ },
+ },
}
subdirs = [
diff --git a/libs/ui/GraphicBuffer.cpp b/libs/ui/GraphicBuffer.cpp
index 4ed2aa4..254038b 100644
--- a/libs/ui/GraphicBuffer.cpp
+++ b/libs/ui/GraphicBuffer.cpp
@@ -22,6 +22,7 @@
#include <grallocusage/GrallocUsageConversion.h>
+#include <ui/DetachedBufferHandle.h>
#include <ui/Gralloc2.h>
#include <ui/GraphicBufferAllocator.h>
#include <ui/GraphicBufferMapper.h>
@@ -486,6 +487,24 @@
return NO_ERROR;
}
+bool GraphicBuffer::isDetachedBuffer() const {
+ return mDetachedBufferHandle && mDetachedBufferHandle->isValid();
+}
+
+status_t GraphicBuffer::setDetachedBufferHandle(std::unique_ptr<DetachedBufferHandle> channel) {
+ if (isDetachedBuffer()) {
+ ALOGW("setDetachedBuffer: there is already a BufferHub channel associated with this "
+ "GraphicBuffer. Replacing the old one.");
+ }
+
+ mDetachedBufferHandle = std::move(channel);
+ return NO_ERROR;
+}
+
+std::unique_ptr<DetachedBufferHandle> GraphicBuffer::takeDetachedBufferHandle() {
+ return std::move(mDetachedBufferHandle);
+}
+
// ---------------------------------------------------------------------------
}; // namespace android
diff --git a/libs/ui/include/ui/DetachedBufferHandle.h b/libs/ui/include/ui/DetachedBufferHandle.h
new file mode 100644
index 0000000..f3c328d
--- /dev/null
+++ b/libs/ui/include/ui/DetachedBufferHandle.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ANDROID_DETACHED_BUFFER_HUB_HANDLE_H
+#define ANDROID_DETACHED_BUFFER_HUB_HANDLE_H
+
+#include <pdx/channel_handle.h>
+
+#include <memory>
+
+namespace android {
+
+// A wrapper that holds a pdx::LocalChannelHandle object. From the handle, a BufferHub buffer can be
+// created. Current implementation assumes that the underlying transport is using libpdx (thus
+// holding a pdx::LocalChannelHandle object), but future implementation can change it to a Binder
+// backend if ever needed.
+class DetachedBufferHandle {
+public:
+ static std::unique_ptr<DetachedBufferHandle> Create(pdx::LocalChannelHandle handle) {
+ return std::unique_ptr<DetachedBufferHandle>(new DetachedBufferHandle(std::move(handle)));
+ }
+
+ // Accessors to get or take the internal pdx::LocalChannelHandle.
+ pdx::LocalChannelHandle& handle() { return mHandle; }
+ const pdx::LocalChannelHandle& handle() const { return mHandle; }
+
+ // Returns whether the DetachedBufferHandle holds a BufferHub channel.
+ bool isValid() const { return mHandle.valid(); }
+
+private:
+ // Constructs a DetachedBufferHandle from a pdx::LocalChannelHandle.
+ explicit DetachedBufferHandle(pdx::LocalChannelHandle handle) : mHandle(std::move(handle)) {}
+
+ pdx::LocalChannelHandle mHandle;
+};
+
+} // namespace android
+
+#endif // ANDROID_DETACHED_BUFFER_HUB_HANDLE_H
diff --git a/libs/ui/include/ui/GraphicBuffer.h b/libs/ui/include/ui/GraphicBuffer.h
index e794462..cc38982 100644
--- a/libs/ui/include/ui/GraphicBuffer.h
+++ b/libs/ui/include/ui/GraphicBuffer.h
@@ -34,6 +34,7 @@
namespace android {
+class DetachedBufferHandle;
class GraphicBufferMapper;
// ===========================================================================
@@ -190,6 +191,11 @@
status_t flatten(void*& buffer, size_t& size, int*& fds, size_t& count) const;
status_t unflatten(void const*& buffer, size_t& size, int const*& fds, size_t& count);
+ // Sets and takes DetachedBuffer. Should only be called from BufferHub.
+ bool isDetachedBuffer() const;
+ status_t setDetachedBufferHandle(std::unique_ptr<DetachedBufferHandle> detachedBuffer);
+ std::unique_ptr<DetachedBufferHandle> takeDetachedBufferHandle();
+
private:
~GraphicBuffer();
@@ -240,6 +246,17 @@
// match the BufferQueue's internal generation number (set through
// IGBP::setGenerationNumber), attempts to attach the buffer will fail.
uint32_t mGenerationNumber;
+
+ // Stores a BufferHub handle that can be used to re-attach this GraphicBuffer back into a
+ // BufferHub producer/consumer set. In terms of GraphicBuffer's relationship with BufferHub,
+ // there are three different modes:
+ // 1. Legacy mode: GraphicBuffer is not backed by BufferHub and mDetachedBufferHandle must be
+ // invalid.
+ // 2. Detached mode: GraphicBuffer is backed by BufferHub, but not part of a producer/consumer
+ // set. In this mode, mDetachedBufferHandle must be valid.
+ // 3. Attached mode: GraphicBuffer is backed by BufferHub and it's part of a producer/consumer
+ // set. In this mode, mDetachedBufferHandle must be invalid.
+ std::unique_ptr<DetachedBufferHandle> mDetachedBufferHandle;
};
}; // namespace android
diff --git a/libs/ui/include/ui/GraphicTypes.h b/libs/ui/include/ui/GraphicTypes.h
index 39893b2..92a5519 100644
--- a/libs/ui/include/ui/GraphicTypes.h
+++ b/libs/ui/include/ui/GraphicTypes.h
@@ -25,6 +25,8 @@
namespace ui {
using android::hardware::graphics::common::V1_0::ColorMode;
+using android::hardware::graphics::common::V1_1::Dataspace;
+using android::hardware::graphics::common::V1_1::PixelFormat;
} // namespace ui
} // namespace android
diff --git a/libs/ui/include_vndk/ui/ANativeObjectBase.h b/libs/ui/include_vndk/ui/ANativeObjectBase.h
new file mode 120000
index 0000000..4dab8d8
--- /dev/null
+++ b/libs/ui/include_vndk/ui/ANativeObjectBase.h
@@ -0,0 +1 @@
+../../include/ui/ANativeObjectBase.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/BufferQueueDefs.h b/libs/ui/include_vndk/ui/BufferQueueDefs.h
new file mode 120000
index 0000000..c886ed8
--- /dev/null
+++ b/libs/ui/include_vndk/ui/BufferQueueDefs.h
@@ -0,0 +1 @@
+../../include/ui/BufferQueueDefs.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/ColorSpace.h b/libs/ui/include_vndk/ui/ColorSpace.h
new file mode 120000
index 0000000..ddf70d5
--- /dev/null
+++ b/libs/ui/include_vndk/ui/ColorSpace.h
@@ -0,0 +1 @@
+../../include/ui/ColorSpace.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/DebugUtils.h b/libs/ui/include_vndk/ui/DebugUtils.h
new file mode 120000
index 0000000..8461bb3
--- /dev/null
+++ b/libs/ui/include_vndk/ui/DebugUtils.h
@@ -0,0 +1 @@
+../../include/ui/DebugUtils.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/DisplayInfo.h b/libs/ui/include_vndk/ui/DisplayInfo.h
new file mode 120000
index 0000000..75f14cf
--- /dev/null
+++ b/libs/ui/include_vndk/ui/DisplayInfo.h
@@ -0,0 +1 @@
+../../include/ui/DisplayInfo.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/DisplayStatInfo.h b/libs/ui/include_vndk/ui/DisplayStatInfo.h
new file mode 120000
index 0000000..6689ad3
--- /dev/null
+++ b/libs/ui/include_vndk/ui/DisplayStatInfo.h
@@ -0,0 +1 @@
+../../include/ui/DisplayStatInfo.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/Fence.h b/libs/ui/include_vndk/ui/Fence.h
new file mode 120000
index 0000000..b110201
--- /dev/null
+++ b/libs/ui/include_vndk/ui/Fence.h
@@ -0,0 +1 @@
+../../include/ui/Fence.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/FenceTime.h b/libs/ui/include_vndk/ui/FenceTime.h
new file mode 120000
index 0000000..01a6ff2
--- /dev/null
+++ b/libs/ui/include_vndk/ui/FenceTime.h
@@ -0,0 +1 @@
+../../include/ui/FenceTime.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/FloatRect.h b/libs/ui/include_vndk/ui/FloatRect.h
new file mode 120000
index 0000000..a526211
--- /dev/null
+++ b/libs/ui/include_vndk/ui/FloatRect.h
@@ -0,0 +1 @@
+../../include/ui/FloatRect.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/FrameStats.h b/libs/ui/include_vndk/ui/FrameStats.h
new file mode 120000
index 0000000..e68e5c8
--- /dev/null
+++ b/libs/ui/include_vndk/ui/FrameStats.h
@@ -0,0 +1 @@
+../../include/ui/FrameStats.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/Gralloc2.h b/libs/ui/include_vndk/ui/Gralloc2.h
new file mode 120000
index 0000000..66098c4
--- /dev/null
+++ b/libs/ui/include_vndk/ui/Gralloc2.h
@@ -0,0 +1 @@
+../../include/ui/Gralloc2.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/GraphicBuffer.h b/libs/ui/include_vndk/ui/GraphicBuffer.h
new file mode 120000
index 0000000..445eae5
--- /dev/null
+++ b/libs/ui/include_vndk/ui/GraphicBuffer.h
@@ -0,0 +1 @@
+../../include/ui/GraphicBuffer.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/GraphicBufferAllocator.h b/libs/ui/include_vndk/ui/GraphicBufferAllocator.h
new file mode 120000
index 0000000..9634533
--- /dev/null
+++ b/libs/ui/include_vndk/ui/GraphicBufferAllocator.h
@@ -0,0 +1 @@
+../../include/ui/GraphicBufferAllocator.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/GraphicBufferMapper.h b/libs/ui/include_vndk/ui/GraphicBufferMapper.h
new file mode 120000
index 0000000..c3b3a7c
--- /dev/null
+++ b/libs/ui/include_vndk/ui/GraphicBufferMapper.h
@@ -0,0 +1 @@
+../../include/ui/GraphicBufferMapper.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/GraphicTypes.h b/libs/ui/include_vndk/ui/GraphicTypes.h
new file mode 120000
index 0000000..b1859e0
--- /dev/null
+++ b/libs/ui/include_vndk/ui/GraphicTypes.h
@@ -0,0 +1 @@
+../../include/ui/GraphicTypes.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/HdrCapabilities.h b/libs/ui/include_vndk/ui/HdrCapabilities.h
new file mode 120000
index 0000000..a240828
--- /dev/null
+++ b/libs/ui/include_vndk/ui/HdrCapabilities.h
@@ -0,0 +1 @@
+../../include/ui/HdrCapabilities.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/PixelFormat.h b/libs/ui/include_vndk/ui/PixelFormat.h
new file mode 120000
index 0000000..0aba056
--- /dev/null
+++ b/libs/ui/include_vndk/ui/PixelFormat.h
@@ -0,0 +1 @@
+../../include/ui/PixelFormat.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/Point.h b/libs/ui/include_vndk/ui/Point.h
new file mode 120000
index 0000000..0aeda3e
--- /dev/null
+++ b/libs/ui/include_vndk/ui/Point.h
@@ -0,0 +1 @@
+../../include/ui/Point.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/Rect.h b/libs/ui/include_vndk/ui/Rect.h
new file mode 120000
index 0000000..01ed689
--- /dev/null
+++ b/libs/ui/include_vndk/ui/Rect.h
@@ -0,0 +1 @@
+../../include/ui/Rect.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/Region.h b/libs/ui/include_vndk/ui/Region.h
new file mode 120000
index 0000000..3f829bf
--- /dev/null
+++ b/libs/ui/include_vndk/ui/Region.h
@@ -0,0 +1 @@
+../../include/ui/Region.h
\ No newline at end of file
diff --git a/libs/ui/include_vndk/ui/UiConfig.h b/libs/ui/include_vndk/ui/UiConfig.h
new file mode 120000
index 0000000..f580ce1
--- /dev/null
+++ b/libs/ui/include_vndk/ui/UiConfig.h
@@ -0,0 +1 @@
+../../include/ui/UiConfig.h
\ No newline at end of file
diff --git a/libs/ui/tests/Android.bp b/libs/ui/tests/Android.bp
index 08067fc..aef6428 100644
--- a/libs/ui/tests/Android.bp
+++ b/libs/ui/tests/Android.bp
@@ -27,3 +27,10 @@
srcs: ["colorspace_test.cpp"],
cflags: ["-Wall", "-Werror"],
}
+
+cc_test {
+ name: "GraphicBuffer_test",
+ shared_libs: ["libpdx_default_transport", "libui", "libutils"],
+ srcs: ["GraphicBuffer_test.cpp"],
+ cflags: ["-Wall", "-Werror"],
+}
diff --git a/libs/ui/tests/GraphicBuffer_test.cpp b/libs/ui/tests/GraphicBuffer_test.cpp
new file mode 100644
index 0000000..eb679ac
--- /dev/null
+++ b/libs/ui/tests/GraphicBuffer_test.cpp
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "GraphicBufferTest"
+
+#include <ui/DetachedBufferHandle.h>
+#include <ui/GraphicBuffer.h>
+
+#include <gtest/gtest.h>
+
+namespace android {
+
+namespace {
+
+constexpr uint32_t kTestWidth = 1024;
+constexpr uint32_t kTestHeight = 1;
+constexpr uint32_t kTestFormat = HAL_PIXEL_FORMAT_BLOB;
+constexpr uint32_t kTestLayerCount = 1;
+constexpr uint64_t kTestUsage = GraphicBuffer::USAGE_SW_WRITE_OFTEN;
+
+} // namespace
+
+class GraphicBufferTest : public testing::Test {};
+
+TEST_F(GraphicBufferTest, DetachedBuffer) {
+ sp<GraphicBuffer> buffer(
+ new GraphicBuffer(kTestWidth, kTestHeight, kTestFormat, kTestLayerCount, kTestUsage));
+
+ // Currently a newly allocated GraphicBuffer is in legacy mode, i.e. not associated with
+ // BufferHub. But this may change in the future.
+ EXPECT_FALSE(buffer->isDetachedBuffer());
+
+ pdx::LocalChannelHandle channel{nullptr, 1234};
+ EXPECT_TRUE(channel.valid());
+
+ std::unique_ptr<DetachedBufferHandle> handle = DetachedBufferHandle::Create(std::move(channel));
+ EXPECT_FALSE(channel.valid());
+ EXPECT_TRUE(handle->isValid());
+ EXPECT_TRUE(handle->handle().valid());
+
+ buffer->setDetachedBufferHandle(std::move(handle));
+ EXPECT_TRUE(handle == nullptr);
+ EXPECT_TRUE(buffer->isDetachedBuffer());
+
+ handle = buffer->takeDetachedBufferHandle();
+ EXPECT_TRUE(handle != nullptr);
+ EXPECT_TRUE(handle->isValid());
+ EXPECT_FALSE(buffer->isDetachedBuffer());
+}
+
+} // namespace android
diff --git a/services/surfaceflinger/BufferLayer.cpp b/services/surfaceflinger/BufferLayer.cpp
index 9200207..82300e6 100644
--- a/services/surfaceflinger/BufferLayer.cpp
+++ b/services/surfaceflinger/BufferLayer.cpp
@@ -829,7 +829,7 @@
getColor());
engine.setSourceDataSpace(mCurrentState.dataSpace);
- if (mCurrentState.dataSpace == HAL_DATASPACE_BT2020_ITU_PQ &&
+ if (mCurrentState.dataSpace == ui::Dataspace::BT2020_ITU_PQ &&
mConsumer->getCurrentApi() == NATIVE_WINDOW_API_MEDIA &&
getBE().compositionInfo.mBuffer->getPixelFormat() == HAL_PIXEL_FORMAT_RGBA_1010102) {
engine.setSourceY410BT2020(true);
diff --git a/services/surfaceflinger/BufferLayerConsumer.cpp b/services/surfaceflinger/BufferLayerConsumer.cpp
index 46ec0e3..6b4f5db 100644
--- a/services/surfaceflinger/BufferLayerConsumer.cpp
+++ b/services/surfaceflinger/BufferLayerConsumer.cpp
@@ -65,7 +65,7 @@
mCurrentScalingMode(NATIVE_WINDOW_SCALING_MODE_FREEZE),
mCurrentFence(Fence::NO_FENCE),
mCurrentTimestamp(0),
- mCurrentDataSpace(HAL_DATASPACE_UNKNOWN),
+ mCurrentDataSpace(ui::Dataspace::UNKNOWN),
mCurrentFrameNumber(0),
mCurrentTransformToDisplayInverse(false),
mCurrentSurfaceDamage(),
@@ -341,7 +341,7 @@
mCurrentTransform = item.mTransform;
mCurrentScalingMode = item.mScalingMode;
mCurrentTimestamp = item.mTimestamp;
- mCurrentDataSpace = item.mDataSpace;
+ mCurrentDataSpace = static_cast<ui::Dataspace>(item.mDataSpace);
mCurrentHdrMetadata = item.mHdrMetadata;
mCurrentFence = item.mFence;
mCurrentFenceTime = item.mFenceTime;
@@ -445,7 +445,7 @@
return mCurrentTimestamp;
}
-android_dataspace BufferLayerConsumer::getCurrentDataSpace() {
+ui::Dataspace BufferLayerConsumer::getCurrentDataSpace() {
BLC_LOGV("getCurrentDataSpace");
Mutex::Autolock lock(mMutex);
return mCurrentDataSpace;
diff --git a/services/surfaceflinger/BufferLayerConsumer.h b/services/surfaceflinger/BufferLayerConsumer.h
index 11048d8..f81cdb1 100644
--- a/services/surfaceflinger/BufferLayerConsumer.h
+++ b/services/surfaceflinger/BufferLayerConsumer.h
@@ -23,6 +23,7 @@
#include <ui/FenceTime.h>
#include <ui/GraphicBuffer.h>
+#include <ui/GraphicTypes.h>
#include <ui/Region.h>
#include <utils/String8.h>
@@ -122,7 +123,7 @@
// getDataSpace retrieves the DataSpace associated with the texture image
// set by the most recent call to updateTexImage.
- android_dataspace getCurrentDataSpace();
+ ui::Dataspace getCurrentDataSpace();
// getCurrentHdrMetadata retrieves the HDR metadata associated with the
// texture image set by the most recent call to updateTexImage.
@@ -324,7 +325,7 @@
// mCurrentDataSpace is the dataspace for the current texture. It
// gets set each time updateTexImage is called.
- android_dataspace mCurrentDataSpace;
+ ui::Dataspace mCurrentDataSpace;
// mCurrentHdrMetadata is the HDR metadata for the current texture. It
// gets set each time updateTexImage is called.
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index 8281ce0..58a774b 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -278,9 +278,9 @@
return mColorTransform;
}
-void DisplayDevice::setCompositionDataSpace(android_dataspace dataspace) {
+void DisplayDevice::setCompositionDataSpace(ui::Dataspace dataspace) {
ANativeWindow* const window = mNativeWindow.get();
- native_window_set_buffers_data_space(window, dataspace);
+ native_window_set_buffers_data_space(window, static_cast<android_dataspace>(dataspace));
}
// ----------------------------------------------------------------------------
@@ -463,12 +463,11 @@
mScissor.top, mScissor.right, mScissor.bottom, tr[0][0], tr[1][0], tr[2][0],
tr[0][1], tr[1][1], tr[2][1], tr[0][2], tr[1][2], tr[2][2]);
auto const surface = static_cast<Surface*>(window);
- android_dataspace dataspace = surface->getBuffersDataSpace();
+ ui::Dataspace dataspace = surface->getBuffersDataSpace();
result.appendFormat(" wideColor=%d, hdr=%d, colorMode=%s, dataspace: %s (%d)\n",
mDisplayHasWideColor, mDisplayHasHdr,
decodeColorMode(mActiveColorMode).c_str(),
- dataspaceDetails(dataspace).c_str(), dataspace);
-
+ dataspaceDetails(static_cast<android_dataspace>(dataspace)).c_str(), dataspace);
String8 surfaceDump;
mDisplaySurface->dumpAsString(surfaceDump);
diff --git a/services/surfaceflinger/DisplayDevice.h b/services/surfaceflinger/DisplayDevice.h
index 31bb4d0..e844d11 100644
--- a/services/surfaceflinger/DisplayDevice.h
+++ b/services/surfaceflinger/DisplayDevice.h
@@ -167,7 +167,7 @@
void setActiveColorMode(ui::ColorMode mode);
android_color_transform_t getColorTransform() const;
void setColorTransform(const mat4& transform);
- void setCompositionDataSpace(android_dataspace dataspace);
+ void setCompositionDataSpace(ui::Dataspace dataspace);
/* ------------------------------------------------------------------------
* Display active config management.
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;
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 5c945ed..9d356d8 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -122,7 +122,7 @@
mCurrentState.layerStack = 0;
mCurrentState.sequence = 0;
mCurrentState.requested = mCurrentState.active;
- mCurrentState.dataSpace = HAL_DATASPACE_UNKNOWN;
+ mCurrentState.dataSpace = ui::Dataspace::UNKNOWN;
mCurrentState.appId = 0;
mCurrentState.type = 0;
@@ -1327,7 +1327,7 @@
return true;
}
-bool Layer::setDataSpace(android_dataspace dataSpace) {
+bool Layer::setDataSpace(ui::Dataspace dataSpace) {
if (mCurrentState.dataSpace == dataSpace) return false;
mCurrentState.sequence++;
mCurrentState.dataSpace = dataSpace;
@@ -1336,7 +1336,7 @@
return true;
}
-android_dataspace Layer::getDataSpace() const {
+ui::Dataspace Layer::getDataSpace() const {
return mCurrentState.dataSpace;
}
@@ -1432,7 +1432,7 @@
info.mColor = ds.color;
info.mFlags = ds.flags;
info.mPixelFormat = getPixelFormat();
- info.mDataSpace = getDataSpace();
+ info.mDataSpace = static_cast<android_dataspace>(getDataSpace());
info.mMatrix[0][0] = ds.active.transform[0][0];
info.mMatrix[0][1] = ds.active.transform[0][1];
info.mMatrix[1][0] = ds.active.transform[1][0];
@@ -1895,7 +1895,7 @@
layerInfo->set_is_opaque(isOpaque(state));
layerInfo->set_invalidate(contentDirty);
- layerInfo->set_dataspace(dataspaceDetails(getDataSpace()));
+ layerInfo->set_dataspace(dataspaceDetails(static_cast<android_dataspace>(getDataSpace())));
layerInfo->set_pixel_format(decodePixelFormat(getPixelFormat()));
LayerProtoHelper::writeToProto(getColor(), layerInfo->mutable_color());
LayerProtoHelper::writeToProto(state.color, layerInfo->mutable_requested_color());
diff --git a/services/surfaceflinger/Layer.h b/services/surfaceflinger/Layer.h
index 69ffb20..8d2a048 100644
--- a/services/surfaceflinger/Layer.h
+++ b/services/surfaceflinger/Layer.h
@@ -207,7 +207,7 @@
// dependent.
Region activeTransparentRegion;
Region requestedTransparentRegion;
- android_dataspace dataSpace;
+ ui::Dataspace dataSpace;
int32_t appId;
int32_t type;
@@ -285,8 +285,8 @@
bool setTransparentRegionHint(const Region& transparent);
bool setFlags(uint8_t flags, uint8_t mask);
bool setLayerStack(uint32_t layerStack);
- bool setDataSpace(android_dataspace dataSpace);
- android_dataspace getDataSpace() const;
+ bool setDataSpace(ui::Dataspace dataSpace);
+ ui::Dataspace getDataSpace() const;
uint32_t getLayerStack() const;
void deferTransactionUntil(const sp<IBinder>& barrierHandle, uint64_t frameNumber);
void deferTransactionUntil(const sp<Layer>& barrierLayer, uint64_t frameNumber);
diff --git a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp
index ea7dc2f..1eda900 100644
--- a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp
+++ b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.cpp
@@ -109,6 +109,8 @@
namespace impl {
// ---------------------------------------------------------------------------
+using ui::Dataspace;
+
GLES20RenderEngine::GLES20RenderEngine(uint32_t featureFlags)
: mVpWidth(0), mVpHeight(0), mPlatformHasWideColor((featureFlags & WIDE_COLOR_SUPPORT) != 0) {
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &mMaxTextureSize);
@@ -214,11 +216,11 @@
mState.setY410BT2020(enable);
}
-void GLES20RenderEngine::setSourceDataSpace(android_dataspace source) {
+void GLES20RenderEngine::setSourceDataSpace(Dataspace source) {
mDataSpace = source;
}
-void GLES20RenderEngine::setOutputDataSpace(android_dataspace dataspace) {
+void GLES20RenderEngine::setOutputDataSpace(Dataspace dataspace) {
mOutputDataSpace = dataspace;
}
@@ -301,14 +303,14 @@
mesh.getByteStride(), mesh.getPositions());
// DISPLAY_P3 is the only supported wide color output
- if (mPlatformHasWideColor && mOutputDataSpace == HAL_DATASPACE_DISPLAY_P3) {
+ if (mPlatformHasWideColor && mOutputDataSpace == Dataspace::DISPLAY_P3) {
Description wideColorState = mState;
- switch (int(mDataSpace)) {
- case HAL_DATASPACE_DISPLAY_P3:
+ switch (mDataSpace) {
+ case Dataspace::DISPLAY_P3:
// input matches output
break;
- case HAL_DATASPACE_BT2020_PQ:
- case HAL_DATASPACE_BT2020_ITU_PQ:
+ case Dataspace::BT2020_PQ:
+ case Dataspace::BT2020_ITU_PQ:
wideColorState.setColorMatrix(mState.getColorMatrix() * mBt2020ToDisplayP3);
wideColorState.setInputTransferFunction(Description::TransferFunction::ST2084);
wideColorState.setOutputTransferFunction(Description::TransferFunction::SRGB);
@@ -317,7 +319,7 @@
default:
// treat all other dataspaces as sRGB
wideColorState.setColorMatrix(mState.getColorMatrix() * mSrgbToDisplayP3);
- if ((mDataSpace & HAL_DATASPACE_TRANSFER_MASK) == HAL_DATASPACE_TRANSFER_LINEAR) {
+ if ((mDataSpace & Dataspace::TRANSFER_MASK) & Dataspace::TRANSFER_LINEAR) {
wideColorState.setInputTransferFunction(Description::TransferFunction::LINEAR);
} else {
wideColorState.setInputTransferFunction(Description::TransferFunction::SRGB);
@@ -350,8 +352,8 @@
void GLES20RenderEngine::dump(String8& result) {
RenderEngine::dump(result);
result.appendFormat("RenderEngine last dataspace conversion: (%s) to (%s)\n",
- dataspaceDetails(mDataSpace).c_str(),
- dataspaceDetails(mOutputDataSpace).c_str());
+ dataspaceDetails(static_cast<android_dataspace>(mDataSpace)).c_str(),
+ dataspaceDetails(static_cast<android_dataspace>(mOutputDataSpace)).c_str());
}
// ---------------------------------------------------------------------------
diff --git a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h
index db3f792..99da19d 100644
--- a/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h
+++ b/services/surfaceflinger/RenderEngine/GLES20RenderEngine.h
@@ -73,14 +73,14 @@
// Color management related functions and state
void setSourceY410BT2020(bool enable) override;
- void setSourceDataSpace(android_dataspace source) override;
- void setOutputDataSpace(android_dataspace dataspace) override;
+ void setSourceDataSpace(ui::Dataspace source) override;
+ void setOutputDataSpace(ui::Dataspace dataspace) override;
// Current dataspace of layer being rendered
- android_dataspace mDataSpace = HAL_DATASPACE_UNKNOWN;
+ ui::Dataspace mDataSpace = ui::Dataspace::UNKNOWN;
// Current output dataspace of the render engine
- android_dataspace mOutputDataSpace = HAL_DATASPACE_UNKNOWN;
+ ui::Dataspace mOutputDataSpace = ui::Dataspace::UNKNOWN;
// Currently only supporting sRGB, BT2020 and DisplayP3 color spaces
const bool mPlatformHasWideColor = false;
diff --git a/services/surfaceflinger/RenderEngine/RenderEngine.h b/services/surfaceflinger/RenderEngine/RenderEngine.h
index d140574..f78b230 100644
--- a/services/surfaceflinger/RenderEngine/RenderEngine.h
+++ b/services/surfaceflinger/RenderEngine/RenderEngine.h
@@ -119,8 +119,8 @@
// wide color support
virtual void setSourceY410BT2020(bool enable) = 0;
- virtual void setSourceDataSpace(android_dataspace source) = 0;
- virtual void setOutputDataSpace(android_dataspace dataspace) = 0;
+ virtual void setSourceDataSpace(ui::Dataspace source) = 0;
+ virtual void setOutputDataSpace(ui::Dataspace dataspace) = 0;
// drawing
virtual void drawMesh(const Mesh& mesh) = 0;
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index f7f5b58..ea75958 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -105,6 +105,7 @@
using namespace android::hardware::configstore;
using namespace android::hardware::configstore::V1_0;
using ui::ColorMode;
+using ui::Dataspace;
namespace {
class ConditionalLock {
@@ -1837,7 +1838,7 @@
// pickColorMode translates a given dataspace into the best available color mode.
// Currently only support sRGB and Display-P3.
-ColorMode SurfaceFlinger::pickColorMode(android_dataspace dataSpace) const {
+ColorMode SurfaceFlinger::pickColorMode(Dataspace dataSpace) const {
if (mForceNativeColorMode) {
return ColorMode::NATIVE;
}
@@ -1845,47 +1846,48 @@
switch (dataSpace) {
// treat Unknown as regular SRGB buffer, since that's what the rest of the
// system expects.
- case HAL_DATASPACE_UNKNOWN:
- case HAL_DATASPACE_SRGB:
- case HAL_DATASPACE_V0_SRGB:
+ case Dataspace::UNKNOWN:
+ case Dataspace::SRGB:
+ case Dataspace::V0_SRGB:
return ColorMode::SRGB;
break;
- case HAL_DATASPACE_DISPLAY_P3:
+ case Dataspace::DISPLAY_P3:
return ColorMode::DISPLAY_P3;
break;
default:
// TODO (courtneygo): Do we want to assert an error here?
- ALOGE("No color mode mapping for %s (%#x)", dataspaceDetails(dataSpace).c_str(),
+ ALOGE("No color mode mapping for %s (%#x)",
+ dataspaceDetails(static_cast<android_dataspace>(dataSpace)).c_str(),
dataSpace);
return ColorMode::SRGB;
break;
}
}
-android_dataspace SurfaceFlinger::bestTargetDataSpace(
- android_dataspace a, android_dataspace b, bool hasHdr) const {
+Dataspace SurfaceFlinger::bestTargetDataSpace(
+ Dataspace a, Dataspace b, bool hasHdr) const {
// Only support sRGB and Display-P3 right now.
- if (a == HAL_DATASPACE_DISPLAY_P3 || b == HAL_DATASPACE_DISPLAY_P3) {
- return HAL_DATASPACE_DISPLAY_P3;
+ if (a == Dataspace::DISPLAY_P3 || b == Dataspace::DISPLAY_P3) {
+ return Dataspace::DISPLAY_P3;
}
- if (a == HAL_DATASPACE_V0_SCRGB_LINEAR || b == HAL_DATASPACE_V0_SCRGB_LINEAR) {
- return HAL_DATASPACE_DISPLAY_P3;
+ if (a == Dataspace::V0_SCRGB_LINEAR || b == Dataspace::V0_SCRGB_LINEAR) {
+ return Dataspace::DISPLAY_P3;
}
- if (a == HAL_DATASPACE_V0_SCRGB || b == HAL_DATASPACE_V0_SCRGB) {
- return HAL_DATASPACE_DISPLAY_P3;
+ if (a == Dataspace::V0_SCRGB || b == Dataspace::V0_SCRGB) {
+ return Dataspace::DISPLAY_P3;
}
if (!hasHdr) {
- if (a == HAL_DATASPACE_BT2020_PQ || b == HAL_DATASPACE_BT2020_PQ) {
- return HAL_DATASPACE_DISPLAY_P3;
+ if (a == Dataspace::BT2020_PQ || b == Dataspace::BT2020_PQ) {
+ return Dataspace::DISPLAY_P3;
}
- if (a == HAL_DATASPACE_BT2020_ITU_PQ || b == HAL_DATASPACE_BT2020_ITU_PQ) {
- return HAL_DATASPACE_DISPLAY_P3;
+ if (a == Dataspace::BT2020_ITU_PQ || b == Dataspace::BT2020_ITU_PQ) {
+ return Dataspace::DISPLAY_P3;
}
}
- return HAL_DATASPACE_V0_SRGB;
+ return Dataspace::V0_SRGB;
}
void SurfaceFlinger::setUpHWComposer() {
@@ -1966,8 +1968,8 @@
"display %zd: %d", displayId, result);
}
for (auto& layer : displayDevice->getVisibleLayersSortedByZ()) {
- if ((layer->getDataSpace() == HAL_DATASPACE_BT2020_PQ ||
- layer->getDataSpace() == HAL_DATASPACE_BT2020_ITU_PQ) &&
+ if ((layer->getDataSpace() == Dataspace::BT2020_PQ ||
+ layer->getDataSpace() == Dataspace::BT2020_ITU_PQ) &&
!displayDevice->getHdrSupport()) {
layer->forceClientComposition(hwcId);
}
@@ -1983,14 +1985,14 @@
if (hasWideColorDisplay) {
ColorMode newColorMode;
- android_dataspace newDataSpace = HAL_DATASPACE_V0_SRGB;
+ Dataspace newDataSpace = Dataspace::V0_SRGB;
for (auto& layer : displayDevice->getVisibleLayersSortedByZ()) {
newDataSpace = bestTargetDataSpace(layer->getDataSpace(), newDataSpace,
displayDevice->getHdrSupport());
ALOGV("layer: %s, dataspace: %s (%#x), newDataSpace: %s (%#x)",
- layer->getName().string(), dataspaceDetails(layer->getDataSpace()).c_str(),
- layer->getDataSpace(), dataspaceDetails(newDataSpace).c_str(), newDataSpace);
+ layer->getName().string(), dataspaceDetails(static_cast<android_dataspace>(layer->getDataSpace())).c_str(),
+ layer->getDataSpace(), dataspaceDetails(static_cast<android_dataspace>(newDataSpace)).c_str(), newDataSpace);
}
newColorMode = pickColorMode(newDataSpace);
@@ -2268,7 +2270,7 @@
defaultColorMode = ColorMode::SRGB;
}
setActiveColorModeInternal(hw, defaultColorMode);
- hw->setCompositionDataSpace(HAL_DATASPACE_UNKNOWN);
+ hw->setCompositionDataSpace(Dataspace::UNKNOWN);
hw->setLayerStack(state.layerStack);
hw->setProjection(state.orientation, state.viewport, state.frame);
hw->setDisplayName(state.displayName);
@@ -2371,7 +2373,7 @@
int intFormat = 0;
status = state.surface->query(NATIVE_WINDOW_FORMAT, &intFormat);
ALOGE_IF(status != NO_ERROR, "Unable to query format (%d)", status);
- auto format = static_cast<android_pixel_format_t>(intFormat);
+ auto format = static_cast<ui::PixelFormat>(intFormat);
getBE().mHwc->allocateVirtualDisplay(width, height, &format, &hwcId);
}
@@ -2832,10 +2834,10 @@
if (hasClientComposition) {
ALOGV("hasClientComposition");
- android_dataspace outputDataspace = HAL_DATASPACE_UNKNOWN;
+ Dataspace outputDataspace = Dataspace::UNKNOWN;
if (displayDevice->getWideColorSupport() &&
displayDevice->getActiveColorMode() == ColorMode::DISPLAY_P3) {
- outputDataspace = HAL_DATASPACE_DISPLAY_P3;
+ outputDataspace = Dataspace::DISPLAY_P3;
}
getBE().mRenderEngine->setOutputDataSpace(outputDataspace);
@@ -4802,10 +4804,10 @@
ALOGE("Invalid crop rect: b = %d (> %d)", sourceCrop.bottom, raHeight);
}
- android_dataspace outputDataspace = HAL_DATASPACE_UNKNOWN;
+ Dataspace outputDataspace = Dataspace::UNKNOWN;
if (renderArea.getWideColorSupport() &&
renderArea.getActiveColorMode() == ColorMode::DISPLAY_P3) {
- outputDataspace = HAL_DATASPACE_DISPLAY_P3;
+ outputDataspace = Dataspace::DISPLAY_P3;
}
getBE().mRenderEngine->setOutputDataSpace(outputDataspace);
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index c7c3088..23c9684 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -636,8 +636,8 @@
// Given a dataSpace, returns the appropriate color_mode to use
// to display that dataSpace.
- ui::ColorMode pickColorMode(android_dataspace dataSpace) const;
- android_dataspace bestTargetDataSpace(android_dataspace a, android_dataspace b,
+ ui::ColorMode pickColorMode(ui::Dataspace dataSpace) const;
+ ui::Dataspace bestTargetDataSpace(ui::Dataspace a, ui::Dataspace b,
bool hasHdr) const;
mat4 computeSaturationMatrix() const;
diff --git a/services/surfaceflinger/tests/hwc2/Android.bp b/services/surfaceflinger/tests/hwc2/Android.bp
index e980522..6c0e4ab 100644
--- a/services/surfaceflinger/tests/hwc2/Android.bp
+++ b/services/surfaceflinger/tests/hwc2/Android.bp
@@ -42,6 +42,7 @@
],
shared_libs: [
"android.hardware.graphics.common@1.0",
+ "android.hardware.graphics.common@1.1",
"libcutils",
"libEGL",
"libGLESv2",
diff --git a/services/surfaceflinger/tests/hwc2/Hwc2Test.cpp b/services/surfaceflinger/tests/hwc2/Hwc2Test.cpp
index b3f1b69..13774b4 100644
--- a/services/surfaceflinger/tests/hwc2/Hwc2Test.cpp
+++ b/services/surfaceflinger/tests/hwc2/Hwc2Test.cpp
@@ -36,6 +36,7 @@
#include "Hwc2TestVirtualDisplay.h"
using android::ui::ColorMode;
+using android::ui::Dataspace;
void hwc2TestHotplugCallback(hwc2_callback_data_t callbackData,
hwc2_display_t display, int32_t connected);
@@ -442,14 +443,14 @@
}
void setLayerDataspace(hwc2_display_t display, hwc2_layer_t layer,
- android_dataspace_t dataspace, hwc2_error_t* outErr = nullptr)
+ Dataspace dataspace, hwc2_error_t* outErr = nullptr)
{
auto pfn = reinterpret_cast<HWC2_PFN_SET_LAYER_DATASPACE>(
getFunction(HWC2_FUNCTION_SET_LAYER_DATASPACE));
ASSERT_TRUE(pfn) << "failed to get function";
auto err = static_cast<hwc2_error_t>(pfn(mHwc2Device, display,
- layer, dataspace));
+ layer, static_cast<int>(dataspace)));
if (outErr) {
*outErr = err;
} else {
@@ -790,14 +791,14 @@
void getClientTargetSupport(hwc2_display_t display, int32_t width,
int32_t height, android_pixel_format_t format,
- android_dataspace_t dataspace, hwc2_error_t* outErr = nullptr)
+ Dataspace dataspace, hwc2_error_t* outErr = nullptr)
{
auto pfn = reinterpret_cast<HWC2_PFN_GET_CLIENT_TARGET_SUPPORT>(
getFunction(HWC2_FUNCTION_GET_CLIENT_TARGET_SUPPORT));
ASSERT_TRUE(pfn) << "failed to get function";
auto err = static_cast<hwc2_error_t>(pfn(mHwc2Device, display, width,
- height, format, dataspace));
+ height, format, static_cast<int>(dataspace)));
if (outErr) {
*outErr = err;
} else {
@@ -807,7 +808,7 @@
}
void setClientTarget(hwc2_display_t display, buffer_handle_t handle,
- int32_t acquireFence, android_dataspace_t dataspace,
+ int32_t acquireFence, Dataspace dataspace,
hwc_region_t damage, hwc2_error_t* outErr = nullptr)
{
auto pfn = reinterpret_cast<HWC2_PFN_SET_CLIENT_TARGET>(
@@ -815,7 +816,7 @@
ASSERT_TRUE(pfn) << "failed to get function";
auto err = static_cast<hwc2_error_t>(pfn(mHwc2Device, display, handle,
- acquireFence, dataspace, damage));
+ acquireFence, static_cast<int>(dataspace), damage));
if (outErr) {
*outErr = err;
} else {
@@ -1691,7 +1692,7 @@
const std::set<hwc2_layer_t>& clearLayers, bool flipClientTarget,
const Area& displayArea)
{
- android_dataspace_t dataspace = HAL_DATASPACE_UNKNOWN;
+ Dataspace dataspace = Dataspace::UNKNOWN;
hwc_region_t damage = { };
buffer_handle_t handle;
int32_t acquireFence;
@@ -3716,7 +3717,7 @@
* layer. */
TEST_F(Hwc2Test, SET_CLIENT_TARGET_basic)
{
- const android_dataspace_t dataspace = HAL_DATASPACE_UNKNOWN;
+ const Dataspace dataspace = Dataspace::UNKNOWN;
const hwc_region_t damage = { };
const size_t layerCnt = 1;
@@ -3795,7 +3796,7 @@
std::set<hwc2_layer_t> clientLayers;
std::set<hwc2_layer_t> flipClientTargetLayers;
bool flipClientTarget = true;
- const android_dataspace_t dataspace = HAL_DATASPACE_UNKNOWN;
+ const Dataspace dataspace = Dataspace::UNKNOWN;
const hwc_region_t damage = { };
buffer_handle_t handle;
int32_t acquireFence;
diff --git a/services/surfaceflinger/tests/hwc2/Hwc2TestClientTarget.cpp b/services/surfaceflinger/tests/hwc2/Hwc2TestClientTarget.cpp
index 6925492..14c60a7 100644
--- a/services/surfaceflinger/tests/hwc2/Hwc2TestClientTarget.cpp
+++ b/services/surfaceflinger/tests/hwc2/Hwc2TestClientTarget.cpp
@@ -91,7 +91,7 @@
return mBufferArea.get();
}
-android_dataspace_t Hwc2TestClientTargetSupport::getDataspace() const
+android::ui::Dataspace Hwc2TestClientTargetSupport::getDataspace() const
{
return mDataspace.get();
}
diff --git a/services/surfaceflinger/tests/hwc2/Hwc2TestClientTarget.h b/services/surfaceflinger/tests/hwc2/Hwc2TestClientTarget.h
index 3b47978..6f4090f 100644
--- a/services/surfaceflinger/tests/hwc2/Hwc2TestClientTarget.h
+++ b/services/surfaceflinger/tests/hwc2/Hwc2TestClientTarget.h
@@ -53,7 +53,7 @@
bool advance();
Area getBufferArea() const;
- android_dataspace_t getDataspace() const;
+ android::ui::Dataspace getDataspace() const;
const hwc_region_t getSurfaceDamage() const;
private:
diff --git a/services/surfaceflinger/tests/hwc2/Hwc2TestLayer.cpp b/services/surfaceflinger/tests/hwc2/Hwc2TestLayer.cpp
index 937fce2..c1c9cc8 100644
--- a/services/surfaceflinger/tests/hwc2/Hwc2TestLayer.cpp
+++ b/services/surfaceflinger/tests/hwc2/Hwc2TestLayer.cpp
@@ -146,7 +146,7 @@
return mDisplayFrame.get();
}
-android_dataspace_t Hwc2TestLayer::getDataspace() const
+android::ui::Dataspace Hwc2TestLayer::getDataspace() const
{
return mDataspace.get();
}
diff --git a/services/surfaceflinger/tests/hwc2/Hwc2TestLayer.h b/services/surfaceflinger/tests/hwc2/Hwc2TestLayer.h
index 0e7dd22..29ae521 100644
--- a/services/surfaceflinger/tests/hwc2/Hwc2TestLayer.h
+++ b/services/surfaceflinger/tests/hwc2/Hwc2TestLayer.h
@@ -54,7 +54,7 @@
hwc_color_t getColor() const;
hwc2_composition_t getComposition() const;
hwc_rect_t getCursorPosition() const;
- android_dataspace_t getDataspace() const;
+ android::ui::Dataspace getDataspace() const;
hwc_rect_t getDisplayFrame() const;
float getPlaneAlpha() const;
hwc_frect_t getSourceCrop() const;
diff --git a/services/surfaceflinger/tests/hwc2/Hwc2TestLayers.cpp b/services/surfaceflinger/tests/hwc2/Hwc2TestLayers.cpp
index 495ef79..90127a1 100644
--- a/services/surfaceflinger/tests/hwc2/Hwc2TestLayers.cpp
+++ b/services/surfaceflinger/tests/hwc2/Hwc2TestLayers.cpp
@@ -169,7 +169,7 @@
return mTestLayers.at(layer).getCursorPosition();
}
-android_dataspace_t Hwc2TestLayers::getDataspace(hwc2_layer_t layer) const
+android::ui::Dataspace Hwc2TestLayers::getDataspace(hwc2_layer_t layer) const
{
if (mTestLayers.count(layer) == 0) {
[]() { GTEST_FAIL(); }();
diff --git a/services/surfaceflinger/tests/hwc2/Hwc2TestLayers.h b/services/surfaceflinger/tests/hwc2/Hwc2TestLayers.h
index d95a91f..909dd48 100644
--- a/services/surfaceflinger/tests/hwc2/Hwc2TestLayers.h
+++ b/services/surfaceflinger/tests/hwc2/Hwc2TestLayers.h
@@ -63,7 +63,7 @@
hwc_color_t getColor(hwc2_layer_t layer) const;
hwc2_composition_t getComposition(hwc2_layer_t layer) const;
hwc_rect_t getCursorPosition(hwc2_layer_t layer) const;
- android_dataspace_t getDataspace(hwc2_layer_t layer) const;
+ android::ui::Dataspace getDataspace(hwc2_layer_t layer) const;
hwc_rect_t getDisplayFrame(hwc2_layer_t layer) const;
android_pixel_format_t getFormat(hwc2_layer_t layer) const;
float getPlaneAlpha(hwc2_layer_t layer) const;
diff --git a/services/surfaceflinger/tests/hwc2/Hwc2TestProperties.cpp b/services/surfaceflinger/tests/hwc2/Hwc2TestProperties.cpp
index 5b3bbeb..c5b92d0 100644
--- a/services/surfaceflinger/tests/hwc2/Hwc2TestProperties.cpp
+++ b/services/surfaceflinger/tests/hwc2/Hwc2TestProperties.cpp
@@ -262,62 +262,62 @@
std::string Hwc2TestDataspace::dump() const
{
std::stringstream dmp;
- dmp << "\tdataspace: " << get() << "\n";
+ dmp << "\tdataspace: " << static_cast<int32_t>(get()) << "\n";
return dmp.str();
}
-const std::vector<android_dataspace_t> Hwc2TestDataspace::defaultDataspaces = {
- HAL_DATASPACE_UNKNOWN,
+const std::vector<android::ui::Dataspace> Hwc2TestDataspace::defaultDataspaces = {
+ android::ui::Dataspace::UNKNOWN,
};
-const std::vector<android_dataspace_t> Hwc2TestDataspace::basicDataspaces = {
- HAL_DATASPACE_UNKNOWN,
- HAL_DATASPACE_V0_SRGB,
+const std::vector<android::ui::Dataspace> Hwc2TestDataspace::basicDataspaces = {
+ android::ui::Dataspace::UNKNOWN,
+ android::ui::Dataspace::V0_SRGB,
};
-const std::vector<android_dataspace_t> Hwc2TestDataspace::completeDataspaces = {
- HAL_DATASPACE_UNKNOWN,
- HAL_DATASPACE_ARBITRARY,
- HAL_DATASPACE_STANDARD_SHIFT,
- HAL_DATASPACE_STANDARD_MASK,
- HAL_DATASPACE_STANDARD_UNSPECIFIED,
- HAL_DATASPACE_STANDARD_BT709,
- HAL_DATASPACE_STANDARD_BT601_625,
- HAL_DATASPACE_STANDARD_BT601_625_UNADJUSTED,
- HAL_DATASPACE_STANDARD_BT601_525,
- HAL_DATASPACE_STANDARD_BT601_525_UNADJUSTED,
- HAL_DATASPACE_STANDARD_BT2020,
- HAL_DATASPACE_STANDARD_BT2020_CONSTANT_LUMINANCE,
- HAL_DATASPACE_STANDARD_BT470M,
- HAL_DATASPACE_STANDARD_FILM,
- HAL_DATASPACE_TRANSFER_SHIFT,
- HAL_DATASPACE_TRANSFER_MASK,
- HAL_DATASPACE_TRANSFER_UNSPECIFIED,
- HAL_DATASPACE_TRANSFER_LINEAR,
- HAL_DATASPACE_TRANSFER_SRGB,
- HAL_DATASPACE_TRANSFER_SMPTE_170M,
- HAL_DATASPACE_TRANSFER_GAMMA2_2,
- HAL_DATASPACE_TRANSFER_GAMMA2_8,
- HAL_DATASPACE_TRANSFER_ST2084,
- HAL_DATASPACE_TRANSFER_HLG,
- HAL_DATASPACE_RANGE_SHIFT,
- HAL_DATASPACE_RANGE_MASK,
- HAL_DATASPACE_RANGE_UNSPECIFIED,
- HAL_DATASPACE_RANGE_FULL,
- HAL_DATASPACE_RANGE_LIMITED,
- HAL_DATASPACE_SRGB_LINEAR,
- HAL_DATASPACE_V0_SRGB_LINEAR,
- HAL_DATASPACE_SRGB,
- HAL_DATASPACE_V0_SRGB,
- HAL_DATASPACE_JFIF,
- HAL_DATASPACE_V0_JFIF,
- HAL_DATASPACE_BT601_625,
- HAL_DATASPACE_V0_BT601_625,
- HAL_DATASPACE_BT601_525,
- HAL_DATASPACE_V0_BT601_525,
- HAL_DATASPACE_BT709,
- HAL_DATASPACE_V0_BT709,
- HAL_DATASPACE_DEPTH,
+const std::vector<android::ui::Dataspace> Hwc2TestDataspace::completeDataspaces = {
+ android::ui::Dataspace::UNKNOWN,
+ android::ui::Dataspace::ARBITRARY,
+ android::ui::Dataspace::STANDARD_SHIFT,
+ android::ui::Dataspace::STANDARD_MASK,
+ android::ui::Dataspace::STANDARD_UNSPECIFIED,
+ android::ui::Dataspace::STANDARD_BT709,
+ android::ui::Dataspace::STANDARD_BT601_625,
+ android::ui::Dataspace::STANDARD_BT601_625_UNADJUSTED,
+ android::ui::Dataspace::STANDARD_BT601_525,
+ android::ui::Dataspace::STANDARD_BT601_525_UNADJUSTED,
+ android::ui::Dataspace::STANDARD_BT2020,
+ android::ui::Dataspace::STANDARD_BT2020_CONSTANT_LUMINANCE,
+ android::ui::Dataspace::STANDARD_BT470M,
+ android::ui::Dataspace::STANDARD_FILM,
+ android::ui::Dataspace::TRANSFER_SHIFT,
+ android::ui::Dataspace::TRANSFER_MASK,
+ android::ui::Dataspace::TRANSFER_UNSPECIFIED,
+ android::ui::Dataspace::TRANSFER_LINEAR,
+ android::ui::Dataspace::TRANSFER_SRGB,
+ android::ui::Dataspace::TRANSFER_SMPTE_170M,
+ android::ui::Dataspace::TRANSFER_GAMMA2_2,
+ android::ui::Dataspace::TRANSFER_GAMMA2_8,
+ android::ui::Dataspace::TRANSFER_ST2084,
+ android::ui::Dataspace::TRANSFER_HLG,
+ android::ui::Dataspace::RANGE_SHIFT,
+ android::ui::Dataspace::RANGE_MASK,
+ android::ui::Dataspace::RANGE_UNSPECIFIED,
+ android::ui::Dataspace::RANGE_FULL,
+ android::ui::Dataspace::RANGE_LIMITED,
+ android::ui::Dataspace::SRGB_LINEAR,
+ android::ui::Dataspace::V0_SRGB_LINEAR,
+ android::ui::Dataspace::SRGB,
+ android::ui::Dataspace::V0_SRGB,
+ android::ui::Dataspace::JFIF,
+ android::ui::Dataspace::V0_JFIF,
+ android::ui::Dataspace::BT601_625,
+ android::ui::Dataspace::V0_BT601_625,
+ android::ui::Dataspace::BT601_525,
+ android::ui::Dataspace::V0_BT601_525,
+ android::ui::Dataspace::BT709,
+ android::ui::Dataspace::V0_BT709,
+ android::ui::Dataspace::DEPTH,
};
diff --git a/services/surfaceflinger/tests/hwc2/Hwc2TestProperties.h b/services/surfaceflinger/tests/hwc2/Hwc2TestProperties.h
index cb811e0..d7082f3 100644
--- a/services/surfaceflinger/tests/hwc2/Hwc2TestProperties.h
+++ b/services/surfaceflinger/tests/hwc2/Hwc2TestProperties.h
@@ -20,6 +20,7 @@
#include <array>
#include <vector>
+#include <ui/GraphicTypes.h>
#include <ui/Region.h>
#define HWC2_INCLUDE_STRINGIFICATION
@@ -229,16 +230,16 @@
};
-class Hwc2TestDataspace : public Hwc2TestProperty<android_dataspace_t> {
+class Hwc2TestDataspace : public Hwc2TestProperty<android::ui::Dataspace> {
public:
Hwc2TestDataspace(Hwc2TestCoverage coverage);
std::string dump() const override;
protected:
- static const std::vector<android_dataspace_t> defaultDataspaces;
- static const std::vector<android_dataspace_t> basicDataspaces;
- static const std::vector<android_dataspace_t> completeDataspaces;
+ static const std::vector<android::ui::Dataspace> defaultDataspaces;
+ static const std::vector<android::ui::Dataspace> basicDataspaces;
+ static const std::vector<android::ui::Dataspace> completeDataspaces;
static const std::array<bool, 6> mCompositionSupport;
};
diff --git a/services/surfaceflinger/tests/unittests/MockComposer.h b/services/surfaceflinger/tests/unittests/MockComposer.h
index acd9b30..00e565b 100644
--- a/services/surfaceflinger/tests/unittests/MockComposer.h
+++ b/services/surfaceflinger/tests/unittests/MockComposer.h
@@ -29,10 +29,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/tests/unittests/MockRenderEngine.h b/services/surfaceflinger/tests/unittests/MockRenderEngine.h
index 6d3e17f..9bb2a3c 100644
--- a/services/surfaceflinger/tests/unittests/MockRenderEngine.h
+++ b/services/surfaceflinger/tests/unittests/MockRenderEngine.h
@@ -64,8 +64,8 @@
MOCK_METHOD0(disableTexturing, void());
MOCK_METHOD0(disableBlending, void());
MOCK_METHOD1(setSourceY410BT2020, void(bool));
- MOCK_METHOD1(setSourceDataSpace, void(android_dataspace));
- MOCK_METHOD1(setOutputDataSpace, void(android_dataspace));
+ MOCK_METHOD1(setSourceDataSpace, void(ui::Dataspace));
+ MOCK_METHOD1(setOutputDataSpace, void(ui::Dataspace));
MOCK_METHOD2(bindNativeBufferAsFrameBuffer,
void(ANativeWindowBuffer*, RE::BindNativeBufferAsFramebuffer*));
MOCK_METHOD1(unbindNativeBufferAsFrameBuffer, void(RE::BindNativeBufferAsFramebuffer*));