/* * Copyright 2024 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef UniqueKeyUtils_DEFINED #define UniqueKeyUtils_DEFINED #include "include/core/SkTypes.h" #include namespace skgpu { class UniqueKey; } namespace skgpu::graphite { class Context; class GlobalCache; class GraphicsPipelineDesc; class PrecompileContext; struct RenderPassDesc; class RendererProvider; class ShaderCodeDictionary; } namespace UniqueKeyUtils { void FetchUniqueKeys(skgpu::graphite::PrecompileContext*, std::vector* keys); #ifdef SK_DEBUG void DumpDescs(skgpu::graphite::PrecompileContext*, const skgpu::graphite::GraphicsPipelineDesc&, const skgpu::graphite::RenderPassDesc&); #endif // This helper breaks a UniqueKey down into its GraphicsPipelineDesc // and a RenderPassDesc and checks that the reassembled pieces match the // original. bool ExtractKeyDescs(skgpu::graphite::PrecompileContext*, const skgpu::UniqueKey&, skgpu::graphite::GraphicsPipelineDesc*, skgpu::graphite::RenderPassDesc*); } // namespace UniqueKeyUtils #endif // UniqueKeyUtils_DEFINED