#include "src/gpu/graphite/dawn/DawnSharedContext.h"
#include "include/gpu/graphite/Context.h"
#include "include/gpu/graphite/ContextOptions.h"
#include "include/gpu/graphite/dawn/DawnBackendContext.h"
#include "src/gpu/graphite/Log.h"
#include "src/gpu/graphite/dawn/DawnResourceProvider.h"
#include "webgpu/webgpu_cpp.h"
namespace skgpu::graphite {
namespace {
wgpu::ShaderModule CreateNoopFragment(const wgpu::Device& device) { … }
}
sk_sp<SharedContext> DawnSharedContext::Make(const DawnBackendContext& backendContext,
const ContextOptions& options) { … }
DawnSharedContext::DawnSharedContext(const DawnBackendContext& backendContext,
std::unique_ptr<const DawnCaps> caps,
wgpu::ShaderModule noopFragment)
: … { … }
DawnSharedContext::~DawnSharedContext() { … }
std::unique_ptr<ResourceProvider> DawnSharedContext::makeResourceProvider(
SingleOwner* singleOwner,
uint32_t recorderID,
size_t resourceBudget) { … }
void DawnSharedContext::deviceTick(Context* context) {
#if !defined(__EMSCRIPTEN__)
this->device().Tick();
#endif
context->checkAsyncWorkCompletion();
};
}