From 8b1de0972bca011649c5fcd5c2d1b6860877a3aa Mon Sep 17 00:00:00 2001 From: ShaoboFeng Date: Tue, 11 Jul 2023 09:18:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E8=83=BDGPU=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E5=90=88=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/gn/BUILDCONFIG.gn | 1 + build/prebuild.sh | 16 ---------------- .../display_device/drm_frame_buffer.h | 1 - .../hal/drm_backend/display_device/hdi_layer.h | 1 - .../hal/drm_backend/display_gralloc/BUILD.gn | 2 +- .../display_gralloc/gbm_allocator.cpp | 1 - .../gralloc/client/allocator_adapter.h | 3 +-- .../gralloc/client/display_gralloc_client.h | 1 - .../hdi_service/gralloc/client/mapper_adapter.h | 1 - .../gralloc/include/idisplay_gralloc.h | 1 - display_server/drivers/interfaces/display_type.h | 2 +- .../frameworks/surface/ft_build/BUILD.gn | 1 + .../frameworks/surface/src/native_window.cpp | 2 +- .../src/render_context/render_context.cpp | 3 ++- .../core/pipeline/rs_base_render_engine.cpp | 2 +- .../utils/buffer_handle/ft_build/BUILD.gn | 1 + samples/BUILD.gn | 4 ++-- 17 files changed, 12 insertions(+), 31 deletions(-) diff --git a/build/gn/BUILDCONFIG.gn b/build/gn/BUILDCONFIG.gn index 1eaa398..1f2244a 100644 --- a/build/gn/BUILDCONFIG.gn +++ b/build/gn/BUILDCONFIG.gn @@ -76,6 +76,7 @@ declare_args() { is_ft_build = current_os == "linux" sys_inc = "/usr/local/include" + usr_inc = "/usr/include" } if (use_musl_oh == true) { diff --git a/build/prebuild.sh b/build/prebuild.sh index c6fd489..4fc6dc7 100755 --- a/build/prebuild.sh +++ b/build/prebuild.sh @@ -94,22 +94,6 @@ fi cd ${FT_PREBUILD_DIR}/inc sudo cp -fr * /usr/local/include -# install ft_surface_wrapper -if [ ! -d ${FT_PREBUILD_DIR}/rpm/ft_surface_wrapper ]; then - git clone https://gitee.com/ShaoboFeng/ft_surface_wrapper.git ${FT_PREBUILD_DIR}/rpm/ft_surface_wrapper -fi -cd ${FT_PREBUILD_DIR}/rpm/ft_surface_wrapper/ -if [ ! -d ${FT_PREBUILD_DIR}/rpm/ft_surface_wrapper/build ]; then - mkdir build -fi - -cd build -cmake .. -make -j6 -sudo make install -rm -fr ${FT_PREBUILD_DIR}/rpm/ft_surface_wrapper -cd ${PROJECT_DIR} - # install mesa_fangtian if [ ! -d ${FT_PREBUILD_DIR}/rpm/binary ]; then git clone https://gitee.com/ShaoboFeng/rpm-fangtian.git ${FT_PREBUILD_DIR}/rpm/binary diff --git a/display_server/drivers/hal/drm_backend/display_device/drm_frame_buffer.h b/display_server/drivers/hal/drm_backend/display_device/drm_frame_buffer.h index 6cee6d9..0c2c166 100644 --- a/display_server/drivers/hal/drm_backend/display_device/drm_frame_buffer.h +++ b/display_server/drivers/hal/drm_backend/display_device/drm_frame_buffer.h @@ -18,7 +18,6 @@ #include #include -#include "buffer_handle.h" #include "display_type.h" #include "drm_common.h" diff --git a/display_server/drivers/hal/drm_backend/display_device/hdi_layer.h b/display_server/drivers/hal/drm_backend/display_device/hdi_layer.h index 291c922..30ac699 100644 --- a/display_server/drivers/hal/drm_backend/display_device/hdi_layer.h +++ b/display_server/drivers/hal/drm_backend/display_device/hdi_layer.h @@ -19,7 +19,6 @@ #include #include "unique_fd.h" -#include "buffer_handle.h" #include "display_type.h" #include "noncopyable_hal.h" diff --git a/display_server/drivers/hal/drm_backend/display_gralloc/BUILD.gn b/display_server/drivers/hal/drm_backend/display_gralloc/BUILD.gn index c962b32..3dd8760 100644 --- a/display_server/drivers/hal/drm_backend/display_gralloc/BUILD.gn +++ b/display_server/drivers/hal/drm_backend/display_gralloc/BUILD.gn @@ -16,9 +16,9 @@ config("display_gralloc_public_config") { include_dirs = [ "//display_server/drivers/hal/drm_backend/display_gralloc", "//display_server/drivers/hal/drm_backend/include", - "//display_server/drivers/interfaces", "//display_server/drivers/base", + "${usr_inc}/ftsurface", ] } diff --git a/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp b/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp index 6b81bbf..f5310b7 100644 --- a/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp +++ b/display_server/drivers/hal/drm_backend/display_gralloc/gbm_allocator.cpp @@ -19,7 +19,6 @@ #include "display_gralloc_private.h" #include "hi_gbm_format.h" #include "display_type.h" -#include "buffer_handle.h" #include "log.h" #include "types.h" diff --git a/display_server/drivers/hdi_service/gralloc/client/allocator_adapter.h b/display_server/drivers/hdi_service/gralloc/client/allocator_adapter.h index 5801c21..6063331 100644 --- a/display_server/drivers/hdi_service/gralloc/client/allocator_adapter.h +++ b/display_server/drivers/hdi_service/gralloc/client/allocator_adapter.h @@ -16,7 +16,6 @@ #ifndef HDI_ALLOCATOR_ADAPTER_V1_0_H #define HDI_ALLOCATOR_ADAPTER_V1_0_H -#include "buffer_handle.h" #include "display_gralloc.h" #include "display_type.h" #include "idisplay_allocator.h" @@ -40,4 +39,4 @@ private: } // namespace HDI } // namespace OHOS -#endif // HDI_MAPPER_ADAPTER_V1_0_H \ No newline at end of file +#endif // HDI_MAPPER_ADAPTER_V1_0_H diff --git a/display_server/drivers/hdi_service/gralloc/client/display_gralloc_client.h b/display_server/drivers/hdi_service/gralloc/client/display_gralloc_client.h index 2f06df1..5533e07 100644 --- a/display_server/drivers/hdi_service/gralloc/client/display_gralloc_client.h +++ b/display_server/drivers/hdi_service/gralloc/client/display_gralloc_client.h @@ -16,7 +16,6 @@ #ifndef HDI_DISPLAY_GRALLOC_CLIENT_V1_0_H #define HDI_DISPLAY_GRALLOC_CLIENT_V1_0_H -#include "buffer_handle.h" #include "display_type.h" #include "idisplay_gralloc.h" #include "allocator_adapter.h" diff --git a/display_server/drivers/hdi_service/gralloc/client/mapper_adapter.h b/display_server/drivers/hdi_service/gralloc/client/mapper_adapter.h index 4910ad6..e7ac61c 100644 --- a/display_server/drivers/hdi_service/gralloc/client/mapper_adapter.h +++ b/display_server/drivers/hdi_service/gralloc/client/mapper_adapter.h @@ -16,7 +16,6 @@ #ifndef HDI_MAPPER_ADAPTER_V1_0_H #define HDI_MAPPER_ADAPTER_V1_0_H -#include "buffer_handle.h" #include "display_gralloc.h" #include "display_type.h" diff --git a/display_server/drivers/hdi_service/gralloc/include/idisplay_gralloc.h b/display_server/drivers/hdi_service/gralloc/include/idisplay_gralloc.h index 7eb3965..88ca110 100644 --- a/display_server/drivers/hdi_service/gralloc/include/idisplay_gralloc.h +++ b/display_server/drivers/hdi_service/gralloc/include/idisplay_gralloc.h @@ -18,7 +18,6 @@ #include #include "display_type.h" -#include "buffer_handle.h" namespace OHOS { namespace HDI { diff --git a/display_server/drivers/interfaces/display_type.h b/display_server/drivers/interfaces/display_type.h index d36bcdd..4cbffdd 100644 --- a/display_server/drivers/interfaces/display_type.h +++ b/display_server/drivers/interfaces/display_type.h @@ -46,7 +46,7 @@ #include #include #include -#include "buffer_handle.h" +#include "ftsurface/buffer_handle.h" #ifdef __cplusplus extern "C" { diff --git a/display_server/frameworks/surface/ft_build/BUILD.gn b/display_server/frameworks/surface/ft_build/BUILD.gn index e639b0b..3db9c95 100644 --- a/display_server/frameworks/surface/ft_build/BUILD.gn +++ b/display_server/frameworks/surface/ft_build/BUILD.gn @@ -33,6 +33,7 @@ config("surface_public_config") { "$display_server_root/interfaces/inner_api/common", "$display_server_root/utils/sandbox", "$display_server_root/utils/buffer_handle/export", + "${usr_inc}/ftsurface", ] defines = gpu_defines diff --git a/display_server/frameworks/surface/src/native_window.cpp b/display_server/frameworks/surface/src/native_window.cpp index ae41a96..f50228f 100644 --- a/display_server/frameworks/surface/src/native_window.cpp +++ b/display_server/frameworks/surface/src/native_window.cpp @@ -41,7 +41,7 @@ OHNativeWindow* CreateNativeWindowFromSurface(void* pSurface) nativeWindow->config.width = nativeWindow->surface->GetDefaultWidth(); nativeWindow->config.height = nativeWindow->surface->GetDefaultHeight(); nativeWindow->config.usage = BUFFER_USAGE_CPU_READ | BUFFER_USAGE_MEM_DMA; - nativeWindow->config.format = GRAPHIC_PIXEL_FMT_RGBA_8888; + nativeWindow->config.format = GRAPHIC_PIXEL_FMT_BGRA_8888; // TODO get from hal nativeWindow->config.strideAlignment = 8; // default stride is 8 nativeWindow->config.timeout = 3000; // default timeout is 3000 ms nativeWindow->config.colorGamut = GraphicColorGamut::GRAPHIC_COLOR_GAMUT_SRGB; diff --git a/display_server/rosen/modules/2d_graphics/src/render_context/render_context.cpp b/display_server/rosen/modules/2d_graphics/src/render_context/render_context.cpp index ae5badb..0b7b2dc 100644 --- a/display_server/rosen/modules/2d_graphics/src/render_context/render_context.cpp +++ b/display_server/rosen/modules/2d_graphics/src/render_context/render_context.cpp @@ -291,9 +291,10 @@ sk_sp RenderContext::AcquireSurface(int width, int height) GrGLFramebufferInfo framebufferInfo; framebufferInfo.fFBOID = 0; + framebufferInfo.fFormat = GL_RGBA8; - SkColorType colorType = kRGBA_8888_SkColorType; // TODO: check whether colorType is right + SkColorType colorType = kRGBA_8888_SkColorType; GrBackendRenderTarget backendRenderTarget(width, height, 0, 8, framebufferInfo); SkSurfaceProps surfaceProps = SkSurfaceProps::kLegacyFontHost_InitType; diff --git a/display_server/rosen/modules/render_service/core/pipeline/rs_base_render_engine.cpp b/display_server/rosen/modules/render_service/core/pipeline/rs_base_render_engine.cpp index f230009..94b9f88 100644 --- a/display_server/rosen/modules/render_service/core/pipeline/rs_base_render_engine.cpp +++ b/display_server/rosen/modules/render_service/core/pipeline/rs_base_render_engine.cpp @@ -103,7 +103,7 @@ sk_sp RSBaseRenderEngine::CreateEglImageFromBuffer( } SkColorType colorType = (buffer->GetFormat() == PIXEL_FMT_BGRA_8888) ? kBGRA_8888_SkColorType : kRGBA_8888_SkColorType; - GrGLTextureInfo grExternalTextureInfo = { GL_TEXTURE_EXTERNAL_OES, eglTextureId, GL_RGBA8 }; + GrGLTextureInfo grExternalTextureInfo = { GL_TEXTURE_EXTERNAL_OES, eglTextureId, GL_BGRA8_EXT}; // TODO get from hal GrBackendTexture backendTexture(buffer->GetSurfaceBufferWidth(), buffer->GetSurfaceBufferHeight(), GrMipMapped::kNo, grExternalTextureInfo); return SkImage::MakeFromTexture(renderContext_->GetGrContext(), backendTexture, diff --git a/display_server/utils/buffer_handle/ft_build/BUILD.gn b/display_server/utils/buffer_handle/ft_build/BUILD.gn index ea69a94..5c837a6 100644 --- a/display_server/utils/buffer_handle/ft_build/BUILD.gn +++ b/display_server/utils/buffer_handle/ft_build/BUILD.gn @@ -25,6 +25,7 @@ ft_static_library("buffer_handle") { "${sys_inc}/ipc_core", "${sys_inc}/hilog", "//drivers/peripheral/base", + "${usr_inc}/ftsurface", ] public_configs = [ ":buffer_handle_public" ] diff --git a/samples/BUILD.gn b/samples/BUILD.gn index 8d5ef7d..a8ff755 100644 --- a/samples/BUILD.gn +++ b/samples/BUILD.gn @@ -24,7 +24,8 @@ ft_executable("clock") { cflags = [ "-Wno-c++11-narrowing" ] if (enable_gpu) { - defines = [ "ENABLE_GPU" ] + defines = [ "ENABLE_GPU" ] + libs = [ "EGL", "GLESv2" ] } include_dirs = [ @@ -46,5 +47,4 @@ ft_executable("clock") { "//build/gn/configs/system_libs:c_utils", "//build/gn/configs/system_libs:ipc_core", ] - libs = [ "EGL", "GLESv2" ] } -- Gitee