DRM framebuffer objects must be kept registered in DRM/KMS while used for scanning-out (After atomic commit applied for processing by display controller and until next atomic commit is applied for processing). Existing logic for tracking current state is overcomplicated and needs to be redesigned. Also further developing of drm_hwc will require migration to asynchronous atomic commit, so additional asynchronous FB cleanup logic must be created. Buffer caching logic will also benefit from this. With the RAII all further changes will be less painful and more robust. By this commit I also renamed DrmGenericImporter to DrmFbImporter: 'Fb' word is present in most of existing composers (android and linux) so it will be easier to compare different implementations. Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
153 lines
3.6 KiB
Text
153 lines
3.6 KiB
Text
// Copyright (C) 2015 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.
|
|
|
|
// =====================
|
|
// libdrmhwc_utils.a
|
|
// =====================
|
|
cc_library_static {
|
|
name: "libdrmhwc_utils",
|
|
|
|
srcs: ["utils/Worker.cpp"],
|
|
|
|
include_dirs: [
|
|
"external/drm_hwcomposer",
|
|
"external/drm_hwcomposer/include",
|
|
],
|
|
|
|
cflags: [
|
|
"-Wall",
|
|
"-Werror",
|
|
],
|
|
|
|
vendor: true,
|
|
|
|
}
|
|
|
|
// =====================
|
|
// hwcomposer.drm.so
|
|
// =====================
|
|
cc_defaults {
|
|
name: "hwcomposer.drm_defaults",
|
|
|
|
shared_libs: [
|
|
"libcutils",
|
|
"libdrm",
|
|
"libhardware",
|
|
"libhidlbase",
|
|
"liblog",
|
|
"libsync",
|
|
"libui",
|
|
"libutils",
|
|
],
|
|
|
|
include_dirs: [
|
|
"external/drm_hwcomposer",
|
|
"external/drm_hwcomposer/include",
|
|
],
|
|
|
|
static_libs: ["libdrmhwc_utils"],
|
|
|
|
cflags: [
|
|
"-Wall",
|
|
"-Werror",
|
|
],
|
|
|
|
cppflags: [
|
|
"-DHWC2_INCLUDE_STRINGIFICATION",
|
|
"-DHWC2_USE_CPP11",
|
|
],
|
|
|
|
product_variables: {
|
|
platform_sdk_version: {
|
|
cflags: ["-DPLATFORM_SDK_VERSION=%d"],
|
|
},
|
|
},
|
|
|
|
relative_install_path: "hw",
|
|
vendor: true,
|
|
}
|
|
|
|
cc_library_static {
|
|
name: "drm_hwcomposer",
|
|
defaults: ["hwcomposer.drm_defaults"],
|
|
srcs: [
|
|
"DrmHwcTwo.cpp",
|
|
|
|
"bufferinfo/BufferInfoGetter.cpp",
|
|
"bufferinfo/BufferInfoMapperMetadata.cpp",
|
|
|
|
"compositor/DrmDisplayComposition.cpp",
|
|
"compositor/DrmDisplayCompositor.cpp",
|
|
"compositor/Planner.cpp",
|
|
|
|
"drm/DrmConnector.cpp",
|
|
"drm/DrmCrtc.cpp",
|
|
"drm/DrmDevice.cpp",
|
|
"drm/DrmEncoder.cpp",
|
|
"drm/DrmEventListener.cpp",
|
|
"drm/DrmFbImporter.cpp",
|
|
"drm/DrmMode.cpp",
|
|
"drm/DrmPlane.cpp",
|
|
"drm/DrmProperty.cpp",
|
|
"drm/ResourceManager.cpp",
|
|
"drm/VSyncWorker.cpp",
|
|
|
|
"utils/autolock.cpp",
|
|
"utils/hwcutils.cpp",
|
|
|
|
"backend/Backend.cpp",
|
|
"backend/BackendClient.cpp",
|
|
"backend/BackendManager.cpp",
|
|
"backend/BackendRCarDu.cpp",
|
|
],
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "hwcomposer.drm",
|
|
defaults: ["hwcomposer.drm_defaults"],
|
|
whole_static_libs: ["drm_hwcomposer"],
|
|
srcs: ["bufferinfo/legacy/BufferInfoLibdrm.cpp"],
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "hwcomposer.drm_minigbm",
|
|
defaults: ["hwcomposer.drm_defaults"],
|
|
whole_static_libs: ["drm_hwcomposer"],
|
|
srcs: ["bufferinfo/legacy/BufferInfoMinigbm.cpp"],
|
|
include_dirs: ["external/minigbm/cros_gralloc"],
|
|
}
|
|
|
|
// Used by hwcomposer.drm_imagination
|
|
filegroup {
|
|
name: "drm_hwcomposer_platformimagination",
|
|
srcs: ["bufferinfo/legacy/BufferInfoImagination.cpp"],
|
|
}
|
|
|
|
// Used by hwcomposer.drm_hikey and hwcomposer.drm_hikey960
|
|
filegroup {
|
|
name: "drm_hwcomposer_platformhisi",
|
|
srcs: ["bufferinfo/legacy/BufferInfoMaliHisi.cpp"],
|
|
}
|
|
|
|
// Used by hwcomposer.drm_meson
|
|
filegroup {
|
|
name: "drm_hwcomposer_platformmeson",
|
|
srcs: ["bufferinfo/legacy/BufferInfoMaliMeson.cpp"],
|
|
}
|
|
|
|
// Used by hwcomposer.drm_mediatek
|
|
filegroup {
|
|
name: "drm_hwcomposer_platformmediatek",
|
|
srcs: ["bufferinfo/legacy/BufferInfoMaliMediatek.cpp"],
|
|
}
|