1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef GrVulkanTrackerInterface_DEFINED 17 #define GrVulkanTrackerInterface_DEFINED 18 #include <sstream> 19 20 #if defined (SK_VULKAN) && defined (SKIA_DFX_FOR_RECORD_VKIMAGE) 21 #define RECORD_GPU_RESOURCE_DRAWABLE_CALLER(NodeId) \ 22 if (ParallelDebug::IsVkImageDfxEnabled()) { \ 23 ParallelDebug::RecordNodeId(NodeId); \ 24 } 25 #else 26 #define RECORD_GPU_RESOURCE_DRAWABLE_CALLER(NodeId) 27 #endif 28 namespace ParallelDebug { 29 struct VkImageInvokeRecord; 30 SK_API bool IsVkImageDfxEnabled(); 31 SK_API void RecordNodeId(uint64_t id); 32 void DestroyVkImageInvokeRecord(VkImageInvokeRecord*); 33 void DumpAllDestroyVkImage(std::stringstream& ss); 34 VkImageInvokeRecord* GenerateVkImageInvokeRecord(); 35 uint64_t GetNodeId(); 36 } 37 38 // OH ISSUE if real alloc status is setted to true, vulkan memory will be accounted for MemorySnapshot 39 // Supported interfaces: makeImageSnapshot, MakeFromBackendTexture 40 // Constraint: Only effective in the current thread context. 41 #if defined (SK_VULKAN) && defined (SKIA_DFX_FOR_OHOS) 42 #define REAL_ALLOC_CONFIG_SET_STATUS(stat) RealAllocConfig::SetRealAllocStatus(stat) 43 #else 44 #define REAL_ALLOC_CONFIG_SET_STATUS(stat) 45 #endif 46 47 namespace RealAllocConfig { 48 SK_API bool GetRealAllocStatus(); 49 SK_API void SetRealAllocStatus(bool ret); 50 } 51 #endif