OSDN Git Service

Merge remote-tracking branch 'origin/master' into oreo-x86 nougat-x86 oreo-x86 android-x86-7.1-r4 android-x86-7.1-r5 android-x86-8.1-r1 android-x86-8.1-r2 android-x86-8.1-r3 android-x86-8.1-r4 android-x86-8.1-r5 android-x86-8.1-r6
authorChih-Wei Huang <cwhuang@linux.org.tw>
Fri, 2 Nov 2018 07:58:42 +0000 (15:58 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Fri, 2 Nov 2018 07:58:42 +0000 (15:58 +0800)
Conflicts:
Android.mk
drmconnector.cpp
drmeventlistener.cpp

1  2 
Android.mk
drmconnector.cpp
drmdisplaycomposition.cpp
drmdisplaycompositor.cpp
drmdisplaycompositor.h
drmeventlistener.cpp
drmhwctwo.cpp
drmresources.cpp
hwcomposer.cpp

diff --cc Android.mk
@@@ -78,11 -74,22 +78,25 @@@ LOCAL_SRC_FILES += drmhwctwo.cp
  LOCAL_CPPFLAGS += \
        -DHWC2_USE_CPP11 \
        -DHWC2_INCLUDE_STRINGIFICATION
 +else
 +LOCAL_SRC_FILES += hwcomposer.cpp
 +endif
  
+ ifeq ($(TARGET_PRODUCT),hikey960)
+ LOCAL_CPPFLAGS += -DUSE_HISI_IMPORTER
+ LOCAL_SRC_FILES += platformhisi.cpp
+ LOCAL_C_INCLUDES += device/linaro/hikey/gralloc960/
+ else ifeq ($(TARGET_PRODUCT),hikey)
+ LOCAL_CPPFLAGS += -DUSE_HISI_IMPORTER
+ LOCAL_SRC_FILES += platformhisi.cpp
+ LOCAL_C_INCLUDES += device/linaro/hikey/gralloc/
+ else ifeq ($(strip $(BOARD_DRM_HWCOMPOSER_BUFFER_IMPORTER)),minigbm)
+ LOCAL_SRC_FILES += platformminigbm.cpp
+ LOCAL_C_INCLUDES += external/minigbm/cros_gralloc/
+ else
  LOCAL_CPPFLAGS += -DUSE_DRM_GENERIC_IMPORTER
+ endif
  
  LOCAL_MODULE := hwcomposer.drm
  LOCAL_MODULE_TAGS := optional
@@@ -22,8 -22,7 +22,8 @@@
  #include <errno.h>
  #include <stdint.h>
  
- #include <cutils/log.h>
+ #include <log/log.h>
 +#include <cutils/properties.h>
  #include <xf86drmMode.h>
  
  namespace android {
Simple merge
@@@ -279,19 -221,14 +279,26 @@@ int DrmDisplayCompositor::Init(DrmResou
      ALOGE("Failed to initialize drm compositor lock %d\n", ret);
      return ret;
    }
 +  ret = worker_.Init();
 +  if (ret) {
 +    pthread_mutex_destroy(&lock_);
 +    ALOGE("Failed to initialize compositor worker %d\n", ret);
 +    return ret;
 +  }
 +  ret = frame_worker_.Init();
 +  if (ret) {
 +    pthread_mutex_destroy(&lock_);
 +    ALOGE("Failed to initialize frame worker %d\n", ret);
 +    return ret;
 +  }
  
+   pre_compositor_.reset(new GLWorkerCompositor());
+   ret = pre_compositor_->Init();
+   if (ret) {
+     ALOGE("Failed to initialize OpenGL compositor %d", ret);
+     pre_compositor_.reset();
+   }
    initialized_ = true;
    return 0;
  }
@@@ -102,29 -98,10 +102,32 @@@ class DrmDisplayCompositor 
      return &squash_state_;
    }
  
+   bool uses_GL() {
+     return !!pre_compositor_;
+   }
   private:
 +  struct FrameState {
 +    std::unique_ptr<DrmDisplayComposition> composition;
 +    int status = 0;
 +  };
 +
 +  class FrameWorker : public Worker {
 +   public:
 +    FrameWorker(DrmDisplayCompositor *compositor);
 +    ~FrameWorker() override;
 +
 +    int Init();
 +    void QueueFrame(std::unique_ptr<DrmDisplayComposition> composition,
 +                    int status);
 +
 +   protected:
 +    void Routine() override;
 +
 +   private:
 +    DrmDisplayCompositor *compositor_;
 +    std::queue<FrameState> frame_queue_;
 +  };
 +
    struct ModeState {
      bool needs_modeset = false;
      DrmMode mode;
  #include <linux/netlink.h>
  #include <sys/socket.h>
  
- #include <cutils/log.h>
+ #include <log/log.h>
 -#include <hardware/hardware.h>
 -#include <hardware/hwcomposer.h>
  #include <xf86drm.h>
 +#include <assert.h>
  
  namespace android {
  
diff --cc drmhwctwo.cpp
Simple merge
Simple merge
diff --cc hwcomposer.cpp
Simple merge