8#ifndef GrD3DResourceProvider_DEFINED
9#define GrD3DResourceProvider_DEFINED
60 unsigned int mostDetailedMip = 0,
61 unsigned int mipLevels = -1);
63 unsigned int mipSlice);
69 const std::vector<D3D12_CPU_DESCRIPTOR_HANDLE>& shaderViews);
71 const std::vector<D3D12_CPU_DESCRIPTOR_HANDLE>& samplers);
73 return &fDescriptorTableManager;
86#if defined(GR_TEST_UTILS)
87 void resetShaderCacheForTesting()
const { fPipelineStateCache->release(); }
92#define GR_PIPELINE_STATE_CACHE_STATS
98 ~PipelineStateCache();
118#ifdef GR_PIPELINE_STATE_CACHE_STATS
126 DescriptorTableCache(
GrD3DGpu* gpu) : fGpu(gpu), fMap(64) {
130 for (
int i = 0;
i < kRangeSizesCount; ++
i) {
134 ~DescriptorTableCache() =
default;
137 typedef std::function<sk_sp<GrD3DDescriptorTable>(
GrD3DGpu*,
unsigned int)> CreateFunc;
139 const std::vector<D3D12_CPU_DESCRIPTOR_HANDLE>&, CreateFunc);
144 typedef std::vector<D3D12_CPU_DESCRIPTOR_HANDLE> DescTableKey;
146 struct DescTableHash {
147 uint32_t operator()(DescTableKey
key)
const {
149 key.size() *
sizeof(D3D12_CPU_DESCRIPTOR_HANDLE));
153 inline static constexpr int kRangeSizesCount = 8;
154 unsigned int fRangeSizes[kRangeSizesCount];
166 std::unique_ptr<PipelineStateCache> fPipelineStateCache;
171 DescriptorTableCache fShaderResourceDescriptorTableCache;
172 DescriptorTableCache fSamplerDescriptorTableCache;
static SkString resource(SkPDFResourceType type, int index)
void recycleDirectCommandList(std::unique_ptr< GrD3DDirectCommandList >)
GrD3DDescriptorHeap::CPUHandle createUnorderedAccessView(ID3D12Resource *resource, unsigned int mipSlice)
void recycleShaderView(const GrD3DDescriptorHeap::CPUHandle &)
GrD3DDescriptorHeap::CPUHandle createDepthStencilView(ID3D12Resource *textureResource)
GrD3DResourceProvider(GrD3DGpu *)
void markPipelineStateUniformsDirty()
sk_sp< GrD3DCommandSignature > findOrCreateCommandSignature(GrD3DCommandSignature::ForIndexed, unsigned int slot)
GrD3DDescriptorHeap::CPUHandle createShaderResourceView(ID3D12Resource *resource, unsigned int mostDetailedMip=0, unsigned int mipLevels=-1)
D3D12_GPU_VIRTUAL_ADDRESS uploadConstantData(void *data, size_t size)
sk_sp< GrD3DDescriptorTable > findOrCreateShaderViewTable(const std::vector< D3D12_CPU_DESCRIPTOR_HANDLE > &shaderViews)
GrD3DDescriptorHeap::CPUHandle createRenderTargetView(ID3D12Resource *textureResource)
D3D12_CPU_DESCRIPTOR_HANDLE findOrCreateCompatibleSampler(const GrSamplerState ¶ms)
GrD3DDescriptorHeap::CPUHandle createConstantBufferView(ID3D12Resource *bufferResource, size_t offset, size_t size)
void recycleRenderTargetView(const GrD3DDescriptorHeap::CPUHandle &)
sk_sp< GrD3DPipeline > findOrCreateMipmapPipeline()
std::unique_ptr< GrD3DDirectCommandList > findOrCreateDirectCommandList()
sk_sp< GrD3DDescriptorTable > findOrCreateSamplerTable(const std::vector< D3D12_CPU_DESCRIPTOR_HANDLE > &samplers)
GrD3DDescriptorTableManager * descriptorTableMgr()
void recycleDepthStencilView(const GrD3DDescriptorHeap::CPUHandle &)
GrD3DPipelineState * findOrCreateCompatiblePipelineState(GrD3DRenderTarget *, const GrProgramInfo &)
sk_sp< GrD3DRootSignature > findOrCreateRootSignature(int numTextureSamplers, int numUAVs=0)
const EmbeddedViewParams * params
uint32_t Hash32(const void *data, size_t bytes, uint32_t seed)
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
std::shared_ptr< const fml::Mapping > data