1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2023 Google LLC 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker 8*c8dee2aaSAndroid Build Coastguard Worker #ifndef GpuTools_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker #define GpuTools_DEFINED 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Worker #include "include/core/SkSurface.h" 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker #if defined(SK_GANESH) 14*c8dee2aaSAndroid Build Coastguard Worker #include "include/gpu/ganesh/SkSurfaceGanesh.h" 15*c8dee2aaSAndroid Build Coastguard Worker #endif 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Worker #if defined(SK_GRAPHITE) 18*c8dee2aaSAndroid Build Coastguard Worker #include "src/gpu/graphite/Surface_Graphite.h" 19*c8dee2aaSAndroid Build Coastguard Worker #endif 20*c8dee2aaSAndroid Build Coastguard Worker 21*c8dee2aaSAndroid Build Coastguard Worker namespace skgpu { 22*c8dee2aaSAndroid Build Coastguard Worker // Flush any surface, even if we don't know what GPU backend it is for. This keeps the 23*c8dee2aaSAndroid Build Coastguard Worker // comparisons between Ganesh and Graphite more fair as the latter can do more batching 24*c8dee2aaSAndroid Build Coastguard Worker // unless we explicitly perform flushes. Flush(SkSurface * surface)25*c8dee2aaSAndroid Build Coastguard Workerinline void Flush(SkSurface* surface) { 26*c8dee2aaSAndroid Build Coastguard Worker #if defined(SK_GANESH) 27*c8dee2aaSAndroid Build Coastguard Worker skgpu::ganesh::Flush(surface); 28*c8dee2aaSAndroid Build Coastguard Worker #endif 29*c8dee2aaSAndroid Build Coastguard Worker #if defined(SK_GRAPHITE) 30*c8dee2aaSAndroid Build Coastguard Worker skgpu::graphite::Flush(surface); 31*c8dee2aaSAndroid Build Coastguard Worker #endif 32*c8dee2aaSAndroid Build Coastguard Worker } 33*c8dee2aaSAndroid Build Coastguard Worker FlushAndSubmit(SkSurface * surface)34*c8dee2aaSAndroid Build Coastguard Workerinline void FlushAndSubmit(SkSurface* surface) { 35*c8dee2aaSAndroid Build Coastguard Worker #if defined(SK_GANESH) 36*c8dee2aaSAndroid Build Coastguard Worker skgpu::ganesh::FlushAndSubmit(surface); 37*c8dee2aaSAndroid Build Coastguard Worker #endif 38*c8dee2aaSAndroid Build Coastguard Worker #if defined(SK_GRAPHITE) 39*c8dee2aaSAndroid Build Coastguard Worker // Graphite doesn't have a "flush and submit" equivalent 40*c8dee2aaSAndroid Build Coastguard Worker skgpu::graphite::Flush(surface); 41*c8dee2aaSAndroid Build Coastguard Worker #endif 42*c8dee2aaSAndroid Build Coastguard Worker } 43*c8dee2aaSAndroid Build Coastguard Worker } 44*c8dee2aaSAndroid Build Coastguard Worker 45*c8dee2aaSAndroid Build Coastguard Worker #endif 46