Remove Properties::isSkiaPipeline (3/!?)
Test: hwuiunit & CtsUiRenderingTestCases pass
Change-Id: Ie7b336eacdd1b8660e09653c64eb6ea0a7b4a258
diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp
index 7319354..381d07a 100644
--- a/libs/hwui/Android.bp
+++ b/libs/hwui/Android.bp
@@ -217,7 +217,6 @@
"DeferredLayerUpdater.cpp",
"DeviceInfo.cpp",
"DisplayList.cpp",
- "Extensions.cpp",
"FboCache.cpp",
"FontRenderer.cpp",
"FrameBuilder.cpp",
diff --git a/libs/hwui/Extensions.cpp b/libs/hwui/Extensions.cpp
deleted file mode 100644
index 530e82e..0000000
--- a/libs/hwui/Extensions.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2013 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.
- */
-
-#include "Extensions.h"
-
-#include "Debug.h"
-#include "Properties.h"
-#include "utils/StringUtils.h"
-
-#include <cutils/compiler.h>
-
-#include <GLES2/gl2.h>
-#include <GLES2/gl2ext.h>
-
-#include <utils/Log.h>
-
-namespace android {
-namespace uirenderer {
-
-Extensions::Extensions() {
- if (Properties::isSkiaEnabled()) {
- return;
- }
- const char* version = (const char*)glGetString(GL_VERSION);
-
- // Section 6.1.5 of the OpenGL ES specification indicates the GL version
- // string strictly follows this format:
- //
- // OpenGL<space>ES<space><version number><space><vendor-specific information>
- //
- // In addition section 6.1.5 describes the version number thusly:
- //
- // "The version number is either of the form major number.minor number or
- // major number.minor number.release number, where the numbers all have one
- // or more digits. The release number and vendor specific information are
- // optional."
-
- if (sscanf(version, "OpenGL ES %d.%d", &mVersionMajor, &mVersionMinor) != 2) {
- // If we cannot parse the version number, assume OpenGL ES 2.0
- mVersionMajor = 2;
- mVersionMinor = 0;
- }
-
- auto extensions = StringUtils::split((const char*)glGetString(GL_EXTENSIONS));
- mHasNPot = extensions.has("GL_OES_texture_npot");
- mHasFramebufferFetch = extensions.has("GL_NV_shader_framebuffer_fetch");
- mHasDiscardFramebuffer = extensions.has("GL_EXT_discard_framebuffer");
- mHasDebugMarker = extensions.has("GL_EXT_debug_marker");
- mHas1BitStencil = extensions.has("GL_OES_stencil1");
- mHas4BitStencil = extensions.has("GL_OES_stencil4");
- mHasUnpackSubImage = extensions.has("GL_EXT_unpack_subimage");
- mHasRenderableFloatTexture = extensions.has("GL_OES_texture_half_float");
-
- mHasSRGB = mVersionMajor >= 3 || extensions.has("GL_EXT_sRGB");
- mHasSRGBWriteControl = extensions.has("GL_EXT_sRGB_write_control");
-
-#ifdef ANDROID_ENABLE_LINEAR_BLENDING
- // If linear blending is enabled, the device must have (ES3.0 or EXT_sRGB)
- // and EXT_sRGB_write_control
- LOG_ALWAYS_FATAL_IF(!mHasSRGB, "Linear blending requires ES 3.0 or EXT_sRGB");
- LOG_ALWAYS_FATAL_IF(!mHasSRGBWriteControl, "Linear blending requires EXT_sRGB_write_control");
-
- mHasLinearBlending = true;
-#else
- mHasLinearBlending = false;
-#endif
-}
-
-}; // namespace uirenderer
-}; // namespace android
diff --git a/libs/hwui/Extensions.h b/libs/hwui/Extensions.h
index 214ee0bbe..e90f40c1 100644
--- a/libs/hwui/Extensions.h
+++ b/libs/hwui/Extensions.h
@@ -26,43 +26,31 @@
class Extensions {
public:
- Extensions();
+ Extensions() {}
- inline bool hasNPot() const { return mHasNPot; }
- inline bool hasFramebufferFetch() const { return mHasFramebufferFetch; }
- inline bool hasDiscardFramebuffer() const { return mHasDiscardFramebuffer; }
- inline bool hasDebugMarker() const { return mHasDebugMarker; }
- inline bool has1BitStencil() const { return mHas1BitStencil; }
- inline bool has4BitStencil() const { return mHas4BitStencil; }
- inline bool hasUnpackRowLength() const { return mVersionMajor >= 3 || mHasUnpackSubImage; }
+ inline bool hasNPot() const { return false; }
+ inline bool hasFramebufferFetch() const { return false; }
+ inline bool hasDiscardFramebuffer() const { return false; }
+ inline bool hasDebugMarker() const { return false; }
+ inline bool has1BitStencil() const { return false; }
+ inline bool has4BitStencil() const { return false; }
+ inline bool hasUnpackRowLength() const { return mVersionMajor >= 3; }
inline bool hasPixelBufferObjects() const { return mVersionMajor >= 3; }
inline bool hasOcclusionQueries() const { return mVersionMajor >= 3; }
inline bool hasFloatTextures() const { return mVersionMajor >= 3; }
inline bool hasRenderableFloatTextures() const {
- return (mVersionMajor >= 3 && mVersionMinor >= 2) || mHasRenderableFloatTexture;
+ return (mVersionMajor >= 3 && mVersionMinor >= 2);
}
- inline bool hasSRGB() const { return mHasSRGB; }
- inline bool hasSRGBWriteControl() const { return hasSRGB() && mHasSRGBWriteControl; }
- inline bool hasLinearBlending() const { return hasSRGB() && mHasLinearBlending; }
+ inline bool hasSRGB() const { return false; }
+ inline bool hasSRGBWriteControl() const { return hasSRGB() && false; }
+ inline bool hasLinearBlending() const { return hasSRGB() && false; }
inline int getMajorGlVersion() const { return mVersionMajor; }
inline int getMinorGlVersion() const { return mVersionMinor; }
private:
- bool mHasNPot;
- bool mHasFramebufferFetch;
- bool mHasDiscardFramebuffer;
- bool mHasDebugMarker;
- bool mHas1BitStencil;
- bool mHas4BitStencil;
- bool mHasUnpackSubImage;
- bool mHasSRGB;
- bool mHasSRGBWriteControl;
- bool mHasLinearBlending;
- bool mHasRenderableFloatTexture;
-
- int mVersionMajor;
- int mVersionMinor;
+ int mVersionMajor = 2;
+ int mVersionMinor = 0;
}; // class Extensions
}; // namespace uirenderer
diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp
index 0d1257f..064763f 100644
--- a/libs/hwui/Properties.cpp
+++ b/libs/hwui/Properties.cpp
@@ -215,10 +215,5 @@
sRenderPipelineType = type;
}
-bool Properties::isSkiaEnabled() {
- auto renderType = getRenderPipelineType();
- return RenderPipelineType::SkiaGL == renderType || RenderPipelineType::SkiaVulkan == renderType;
-}
-
}; // namespace uirenderer
}; // namespace android
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index 03a3e36..5376bab 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -247,7 +247,6 @@
static ProfileType getProfileType();
ANDROID_API static RenderPipelineType getRenderPipelineType();
- static bool isSkiaEnabled();
ANDROID_API static bool enableHighContrastText;
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index 5ac330b..62b80c43 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -114,11 +114,7 @@
LOG_ALWAYS_FATAL_IF(!info.damageAccumulator, "DamageAccumulator missing");
MarkAndSweepRemoved observer(&info);
- // The OpenGL renderer reserves the stencil buffer for overdraw debugging. Functors
- // will need to be drawn in a layer.
- bool functorsNeedLayer = Properties::debugOverdraw && !Properties::isSkiaEnabled();
-
- prepareTreeImpl(observer, info, functorsNeedLayer);
+ prepareTreeImpl(observer, info, false);
}
void RenderNode::addAnimator(const sp<BaseRenderNodeAnimator>& animator) {
diff --git a/libs/hwui/SkiaCanvas.cpp b/libs/hwui/SkiaCanvas.cpp
index 40b811d..6bd12f4 100644
--- a/libs/hwui/SkiaCanvas.cpp
+++ b/libs/hwui/SkiaCanvas.cpp
@@ -62,13 +62,7 @@
mCanvasOwned =
std::unique_ptr<SkCanvas>(new SkCanvas(bitmap, SkCanvas::ColorBehavior::kLegacy));
if (cs.get() == nullptr || cs->isSRGB()) {
- if (!uirenderer::Properties::isSkiaEnabled()) {
- mCanvasWrapper =
- SkCreateColorSpaceXformCanvas(mCanvasOwned.get(), SkColorSpace::MakeSRGB());
- mCanvas = mCanvasWrapper.get();
- } else {
- mCanvas = mCanvasOwned.get();
- }
+ mCanvas = mCanvasOwned.get();
} else {
/** The wrapper is needed if we are drawing into a non-sRGB destination, since
* we need to transform all colors (not just bitmaps via filters) into the
@@ -101,8 +95,6 @@
std::unique_ptr<SkCanvas> newCanvasWrapper;
if (cs.get() != nullptr && !cs->isSRGB()) {
newCanvasWrapper = SkCreateColorSpaceXformCanvas(newCanvas.get(), std::move(cs));
- } else if (!uirenderer::Properties::isSkiaEnabled()) {
- newCanvasWrapper = SkCreateColorSpaceXformCanvas(newCanvas.get(), SkColorSpace::MakeSRGB());
}
// deletes the previously owned canvas (if any)
diff --git a/libs/hwui/hwui/Bitmap.cpp b/libs/hwui/hwui/Bitmap.cpp
index 795ec5b..beb4a9e1 100644
--- a/libs/hwui/hwui/Bitmap.cpp
+++ b/libs/hwui/hwui/Bitmap.cpp
@@ -205,10 +205,8 @@
mPixelStorage.hardware.buffer = buffer;
buffer->incStrong(buffer);
setImmutable(); // HW bitmaps are always immutable
- if (uirenderer::Properties::isSkiaEnabled()) {
- mImage = SkImage::MakeFromAHardwareBuffer(reinterpret_cast<AHardwareBuffer*>(buffer),
- mInfo.alphaType(), mInfo.refColorSpace());
- }
+ mImage = SkImage::MakeFromAHardwareBuffer(reinterpret_cast<AHardwareBuffer*>(buffer),
+ mInfo.alphaType(), mInfo.refColorSpace());
}
Bitmap::~Bitmap() {
@@ -288,13 +286,9 @@
void Bitmap::getSkBitmap(SkBitmap* outBitmap) {
outBitmap->setHasHardwareMipMap(mHasHardwareMipMap);
if (isHardware()) {
- if (uirenderer::Properties::isSkiaEnabled()) {
outBitmap->allocPixels(SkImageInfo::Make(info().width(), info().height(),
info().colorType(), info().alphaType(),
nullptr));
- } else {
- outBitmap->allocPixels(info());
- }
uirenderer::renderthread::RenderProxy::copyGraphicBufferInto(graphicBuffer(), outBitmap);
return;
}
@@ -317,7 +311,7 @@
sk_sp<SkImage> Bitmap::makeImage(sk_sp<SkColorFilter>* outputColorFilter) {
sk_sp<SkImage> image = mImage;
if (!image) {
- SkASSERT(!(isHardware() && uirenderer::Properties::isSkiaEnabled()));
+ SkASSERT(!isHardware());
SkBitmap skiaBitmap;
skiaBitmap.setInfo(info(), rowBytes());
skiaBitmap.setPixelRef(sk_ref_sp(this), 0, 0);
@@ -327,8 +321,7 @@
// TODO: refactor Bitmap to not derive from SkPixelRef, which would allow caching here.
image = SkMakeImageFromRasterBitmap(skiaBitmap, kNever_SkCopyPixelsMode);
}
- if (uirenderer::Properties::isSkiaEnabled() && image->colorSpace() != nullptr &&
- !image->colorSpace()->isSRGB()) {
+ if (image->colorSpace() != nullptr && !image->colorSpace()->isSRGB()) {
*outputColorFilter = SkToSRGBColorFilter::Make(image->refColorSpace());
}
return image;
diff --git a/libs/hwui/hwui/Canvas.cpp b/libs/hwui/hwui/Canvas.cpp
index 20543df..b453227 100644
--- a/libs/hwui/hwui/Canvas.cpp
+++ b/libs/hwui/hwui/Canvas.cpp
@@ -29,10 +29,7 @@
namespace android {
Canvas* Canvas::create_recording_canvas(int width, int height, uirenderer::RenderNode* renderNode) {
- if (uirenderer::Properties::isSkiaEnabled()) {
- return new uirenderer::skiapipeline::SkiaRecordingCanvas(renderNode, width, height);
- }
- return new uirenderer::RecordingCanvas(width, height);
+ return new uirenderer::skiapipeline::SkiaRecordingCanvas(renderNode, width, height);
}
static inline void drawStroke(SkScalar left, SkScalar right, SkScalar top, SkScalar thickness,
diff --git a/libs/hwui/renderthread/CacheManager.cpp b/libs/hwui/renderthread/CacheManager.cpp
index 3ca9295..0029841 100644
--- a/libs/hwui/renderthread/CacheManager.cpp
+++ b/libs/hwui/renderthread/CacheManager.cpp
@@ -50,9 +50,7 @@
mVectorDrawableAtlas = new skiapipeline::VectorDrawableAtlas(
mMaxSurfaceArea / 2,
skiapipeline::VectorDrawableAtlas::StorageMode::disallowSharedSurface);
- if (Properties::isSkiaEnabled()) {
- skiapipeline::ShaderCache::get().initShaderDiskCache();
- }
+ skiapipeline::ShaderCache::get().initShaderDiskCache();
}
void CacheManager::reset(sk_sp<GrContext> context) {
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index a1a2bad..653ea28 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -334,7 +334,7 @@
int RenderProxy::copyGraphicBufferInto(GraphicBuffer* buffer, SkBitmap* bitmap) {
RenderThread& thread = RenderThread::getInstance();
- if (Properties::isSkiaEnabled() && gettid() == thread.getTid()) {
+ if (gettid() == thread.getTid()) {
// TODO: fix everything that hits this. We should never be triggering a readback ourselves.
return (int)thread.readback().copyGraphicBufferInto(buffer, bitmap);
} else {