blob: e35527991df6e630847d72e0ebe5c6d700018298 [file] [log] [blame] [edit]
/*
* Copyright 2024 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "include/gpu/graphite/PrecompileContext.h"
#include "src/gpu/graphite/ResourceProvider.h"
#include "src/gpu/graphite/SharedContext.h"
namespace skgpu::graphite {
#define ASSERT_SINGLE_OWNER SKGPU_ASSERT_SINGLE_OWNER(&fSingleOwner)
PrecompileContext::~PrecompileContext() {
ASSERT_SINGLE_OWNER
}
PrecompileContext::PrecompileContext(sk_sp<SharedContext> sharedContext)
: fSharedContext(sharedContext) {
// ResourceProviders are not thread-safe. Here we create a ResourceProvider
// specifically for the thread on which precompilation will occur.
static constexpr size_t kEmptyBudget = 0;
fResourceProvider = fSharedContext->makeResourceProvider(
&fSingleOwner,
SK_InvalidGenID,
kEmptyBudget,
/* avoidBufferAlloc= */ true);
}
} // namespace skgpu::graphite