8#ifndef skgpu_graphite_DawnResourceProvider_DEFINED
9#define skgpu_graphite_DawnResourceProvider_DEFINED
18class DawnGraphicsPipeline;
20class DawnSharedContext;
29 size_t resourceBudget);
42 std::string_view label);
53 const std::array<std::pair<const DawnBuffer*, uint32_t>, 3>& boundBuffersAndSizes);
69 std::string_view label)
override;
76 const wgpu::Buffer& getOrCreateNullBuffer();
82 wgpu::BindGroupLayout fUniformBuffersBindGroupLayout;
83 wgpu::BindGroupLayout fSingleTextureSamplerBindGroupLayout;
85 wgpu::Buffer fNullBuffer;
87 struct UniqueKeyHash {
93 BindGroupCache fUniformBufferBindGroupCache;
94 BindGroupCache fSingleTextureSamplerBindGroups;
~DawnResourceProvider() override
sk_sp< Sampler > createSampler(const SamplerDesc &) override
sk_sp< GraphicsPipeline > createGraphicsPipeline(const RuntimeEffectDictionary *, const GraphicsPipelineDesc &, const RenderPassDesc &) override
const wgpu::BindGroup & findOrCreateSingleTextureSamplerBindGroup(const DawnSampler *sampler, const DawnTexture *texture)
BackendTexture onCreateBackendTexture(SkISize dimensions, const TextureInfo &) override
const wgpu::BindGroupLayout & getOrCreateSingleTextureSamplerBindGroupLayout()
sk_sp< DawnTexture > findOrCreateDiscardableMSAALoadTexture(SkISize dimensions, const TextureInfo &msaaInfo)
sk_sp< Buffer > createBuffer(size_t size, BufferType type, AccessPattern, std::string_view label) override
sk_sp< Texture > createTexture(SkISize, const TextureInfo &, skgpu::Budgeted) override
sk_sp< Texture > createWrappedTexture(const BackendTexture &) override
const wgpu::BindGroupLayout & getOrCreateUniformBuffersBindGroupLayout()
const wgpu::BindGroup & findOrCreateUniformBuffersBindGroup(const std::array< std::pair< const DawnBuffer *, uint32_t >, 3 > &boundBuffersAndSizes)
void onDeleteBackendTexture(const BackendTexture &) override
wgpu::RenderPipeline findOrCreateBlitWithDrawPipeline(const RenderPassDesc &renderPassDesc)
sk_sp< DawnBuffer > findOrCreateDawnBuffer(size_t size, BufferType type, AccessPattern, std::string_view label)
sk_sp< ComputePipeline > createComputePipeline(const ComputePipelineDesc &) override