[TTVD] Switch to PPI for TizenGpuBuffer 30/318530/2
authorJakub Gajownik <j.gajownik2@samsung.com>
Fri, 27 Sep 2024 13:00:44 +0000 (15:00 +0200)
committerBot Blink <blinkbot@samsung.com>
Tue, 1 Oct 2024 22:11:15 +0000 (22:11 +0000)
Bug: https://jira-eu.sec.samsung.net/browse/VDGAME-586
Change-Id: Idfdbaa65467f52c7e6f700e43304523f99b1ac04
Signed-off-by: Jakub Gajownik <j.gajownik2@samsung.com>
tizen_src/chromium_impl/ui/gfx/tizen_gpu_buffer.cc

index 8d26f98242d6fb2de1e14c2a41dfd45a9fac4da0..74e41add16067b87ba927141466b09f759b7ea66 100644 (file)
@@ -4,15 +4,21 @@
 
 #include "tizen_src/chromium_impl/ui/gfx/tizen_gpu_buffer.h"
 
-#include <capi-graphics-control.h>
 #include <tbm_type_common.h>
 
 #include <cstring>
 
 #include "base/files/scoped_file.h"
+#include "build/tizen_version.h"
 #include "tizen_src/chromium_impl/ui/gfx/tbm_utils.h"
 #include "ui/gfx/tizen_gpu_buffer.h"
 
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+#include <ppi-graphics-control.h>
+#else
+#include <capi-graphics-control.h>
+#endif  // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+
 namespace gfx {
 
 std::unique_ptr<TizenGpuBuffer> TizenGpuBuffer::Allocate(size_t size,
@@ -106,7 +112,11 @@ bool TizenGpuBuffer::CopyFrom(uint32_t phys_addr,
                               int height,
                               size_t bytes_per_element) {
   tbm_bo_handle dst_handle = tbm_bo_get_handle(bo_.get(), TBM_DEVICE_2D);
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+  ppi_graphics_control_ga_blt_rop_info_s ga_info{};
+#else
   GraphicsGABltRopInfo ga_info{};
+#endif  // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
 
   // src info
   ga_info.src_handle = phys_addr;
@@ -123,6 +133,24 @@ bool TizenGpuBuffer::CopyFrom(uint32_t phys_addr,
   ga_info.dst_rect.y = dst_offset / dst_stride;
 
   // GA info
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+  switch (bytes_per_element) {
+    case 1:
+      ga_info.color_format = PPI_GRAPHICS_GA_FORMAT_8BPP;
+      break;
+    case 2:
+      ga_info.color_format = PPI_GRAPHICS_GA_FORMAT_16BPP;
+      break;
+    default:
+      return false;
+  }
+  ga_info.rop_mode = PPI_GRAPHICS_GA_ROP_COPY;
+  ga_info.pre_alphamode = 0;
+  ga_info.ga_mode = PPI_GRAPHICS_GA_BITBLT_MODE_NORMAL;
+  ga_info.ga_op_type = PPI_GRAPHICS_GA_COPY;
+  int ret = ppi_graphics_control_ga_bltrop(bufmgr_.get(), &ga_info);
+  return ret == 0;
+#else
   switch (bytes_per_element) {
     case 1:
       ga_info.color_format = GRAPHICS_GA_FORMAT_8BPP;
@@ -139,6 +167,7 @@ bool TizenGpuBuffer::CopyFrom(uint32_t phys_addr,
   ga_info.ga_op_type = GRAPHICS_GA_COPY;
   int ret = Gfx_GA_BltRop(bufmgr_.get(), &ga_info);
   return ret == 1;
+#endif  // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
 }
 
 bool TizenGpuBuffer::CopyFrom(const TizenGpuBuffer& source,
@@ -165,8 +194,11 @@ bool TizenGpuBuffer::Scale(uint32_t src_phys_addr,
                            int dst_height,
                            size_t bytes_per_element) {
   tbm_bo_handle dst_handle = tbm_bo_get_handle(bo_.get(), TBM_DEVICE_2D);
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+  ppi_graphics_control_ga_scale_info_s ga_info{};
+#else
   GraphicsGAScaleInfo ga_info;
-  memset(&ga_info, 0, sizeof(GraphicsGAScaleInfo));
+#endif  // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
 
   // src info
   ga_info.src_handle = src_phys_addr;
@@ -185,6 +217,23 @@ bool TizenGpuBuffer::Scale(uint32_t src_phys_addr,
   ga_info.dst_rect.h = dst_height;
 
   // GA info
+#if TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
+  switch (bytes_per_element) {
+    case 1:
+      ga_info.color_format = PPI_GRAPHICS_GA_FORMAT_8BPP;
+      break;
+    case 2:
+      ga_info.color_format = PPI_GRAPHICS_GA_FORMAT_16BPP;
+      break;
+    default:
+      return false;
+  }
+  ga_info.rop_mode = PPI_GRAPHICS_GA_ROP_COPY;
+  ga_info.pre_alphamode = 0;
+  ga_info.ga_mode = PPI_GRAPHICS_GA_SCALE_MODE;
+  ga_info.ga_op_type = PPI_GRAPHICS_GA_SCALE;
+  return ppi_graphics_control_ga_scale(bufmgr_.get(), &ga_info) == 0;
+#else
   switch (bytes_per_element) {
     case 1:
       ga_info.color_format = GRAPHICS_GA_FORMAT_8BPP;
@@ -200,6 +249,7 @@ bool TizenGpuBuffer::Scale(uint32_t src_phys_addr,
   ga_info.ga_mode = GRAPHICS_GA_SCALE_MODE;
   ga_info.ga_op_type = GRAPHICS_GA_SCALE;
   return Gfx_GA_Scale(bufmgr_.get(), &ga_info) == 1;
+#endif  // TIZEN_VERSION_AT_LEAST(9, 0, 0) && !BUILDFLAG(IS_RISCV64_TV)
 }
 
 bool TizenGpuBuffer::Scale(const TizenGpuBuffer& source,