diff --git a/BUILD.gn b/BUILD.gn index ab2e197c53a9202be062cffb0e765c44d2e74db2..a8649fb510533671b244b87249c1148af6714418 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -77,8 +77,8 @@ config("skia_public") { include_dirs = [ "." ] defines = [ "NEW_SKIA" ] + include_dirs += [ "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter" ] if (defined(skia_ohos_debug) && skia_ohos_debug) { - include_dirs += [ "//base/hiviewdfx/hitrace/interfaces/native/innerkits/include/hitrace_meter" ] defines += [ "SKIA_OHOS_DEBUG" ] } cflags_objcc = [] @@ -1850,10 +1850,10 @@ if (use_oh_skia) { } if (is_ohos) { sources += [ "//third_party/skia/src/ports/SkDebug_ohos.cpp" ] - external_deps = [ "hilog:libhilog" ] - if (defined(skia_ohos_debug) && skia_ohos_debug) { - external_deps += [ "hitrace:hitrace_meter" ] - } + external_deps = [ + "hilog:libhilog", + "hitrace:hitrace_meter", + ] } if (is_android) { diff --git a/src/core/SkTraceEventCommon.h b/src/core/SkTraceEventCommon.h index 064bb53bc2e9b23b4ae7dfb5075b8aaad799aef1..2a7417e6cf56ca2c8fe50932dfde3a3bebd4ed90 100644 --- a/src/core/SkTraceEventCommon.h +++ b/src/core/SkTraceEventCommon.h @@ -6,7 +6,7 @@ #include "include/core/SkTypes.h" #include "include/utils/SkTraceEventPhase.h" -#ifdef SKIA_OHOS_DEBUG +#ifdef SKIA_BUILD_FOR_OHOS #include "hitrace_meter.h" #endif // Trace events are for tracking application performance and resource usage. @@ -199,6 +199,11 @@ public: // Records a pair of begin and end events called "name" for the current scope, with 0, 1 or 2 // associated arguments. If the category is not enabled, then this does nothing. + +// print ohos trace without SKIA_OHOS_DEBUG macro +#define SKIA_OHOS_TRACE_PRIV(category_group, name) \ + HitraceScoped _trace(HITRACE_TAG_GRAPHIC_AGP, name); \ + INTERNAL_TRACE_EVENT_ADD_SCOPED(category_group, name) #ifdef SKIA_OHOS_DEBUG #define TRACE_EVENT0(category_group, name) \ HitraceScoped _trace(HITRACE_TAG_GRAPHIC_AGP, name); \ diff --git a/src/gpu/GrAttachment.h b/src/gpu/GrAttachment.h index 42d07022d139ddac8bf3f234b7f0ce5b1e481ce1..020f89b6548b514a38d1ec186fadf06419e07718 100644 --- a/src/gpu/GrAttachment.h +++ b/src/gpu/GrAttachment.h @@ -79,9 +79,8 @@ protected: , fMipmapped(mipmapped) , fMemoryless(memoryless) {} + virtual size_t onGpuMemorySize() const override; private: - size_t onGpuMemorySize() const final; - void computeScratchKey(GrScratchKey*) const final; const char* getResourceType() const override { diff --git a/src/gpu/vk/GrVkImage.cpp b/src/gpu/vk/GrVkImage.cpp index c9c7a7fb22d53f4a2397951f3e65757e9232fcb0..483d101c571371c1b5ef354b10b16dcadb98304e 100644 --- a/src/gpu/vk/GrVkImage.cpp +++ b/src/gpu/vk/GrVkImage.cpp @@ -673,6 +673,15 @@ GrVkGpu* GrVkImage::getVkGpu() const { return static_cast(this->getGpu()); } +size_t GrVkImage::onGpuMemorySize() const +{ + if (supportedUsages() & UsageFlags::kTexture) { + return GrSurface::ComputeSize(this->backendFormat(), this->dimensions(), 1, this->mipmapped()); + } else { + return GrAttachment::onGpuMemorySize(); + } +} + #if GR_TEST_UTILS void GrVkImage::setCurrentQueueFamilyToGraphicsQueue(GrVkGpu* gpu) { fMutableState->setQueueFamilyIndex(gpu->queueIndex()); diff --git a/src/gpu/vk/GrVkImage.h b/src/gpu/vk/GrVkImage.h index a8af9daae3cc852019039ab3df09e76c21592ef4..e566a7ff59bc50e3d8b5cb11342fc77390f8603a 100644 --- a/src/gpu/vk/GrVkImage.h +++ b/src/gpu/vk/GrVkImage.h @@ -205,6 +205,7 @@ public: static VkPipelineStageFlags LayoutToPipelineSrcStageFlags(const VkImageLayout layout); static VkAccessFlags LayoutToSrcAccessMask(const VkImageLayout layout); + size_t onGpuMemorySize() const override; #if GR_TEST_UTILS void setCurrentQueueFamilyToGraphicsQueue(GrVkGpu* gpu); #endif diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp index 9021edf0524d4dc03cd07d16b2811574c97394c0..00406b583b90a2c7825f570951ca765e181678b8 100644 --- a/src/gpu/vk/GrVkUtil.cpp +++ b/src/gpu/vk/GrVkUtil.cpp @@ -91,6 +91,9 @@ bool GrCompileVkShaderModule(GrVkGpu* gpu, const SkSL::Program::Settings& settings, SkSL::String* outSPIRV, SkSL::Program::Inputs* outInputs) { +#ifndef SKIA_OHOS_DEBUG + SKIA_OHOS_TRACE_PRIV("skia.shaders", "OHOS_CompileVkShaderModule"); +#endif TRACE_EVENT0("skia.shaders", "CompileVkShaderModule"); auto errorHandler = gpu->getContext()->priv().getShaderErrorHandler(); std::unique_ptr program = gpu->shaderCompiler()->convertProgram(