8#ifndef skgpu_graphite_VulkanCaps_DEFINED
9#define skgpu_graphite_VulkanCaps_DEFINED
18struct VulkanTextureInfo;
25 uint32_t physicalDeviceVersion,
70 return fShouldAlwaysUseDedicatedImageMemory;
83 return fShouldPersistentlyMapCpuToGpuBuffers;
91 return fMaxVertexAttributes;
96 return fPhysicalDeviceMemoryProperties2;
104 kAMD_VkVendor = 4098,
105 kARM_VkVendor = 5045,
106 kImagination_VkVendor = 4112,
107 kIntel_VkVendor = 32902,
108 kNvidia_VkVendor = 4318,
109 kQualcomm_VkVendor = 20803,
112 void init(
const ContextOptions&,
115 uint32_t physicalDeviceVersion,
139 const TextureInfo& dstTextureInfo,
143 const TextureInfo& srcTextureInfo,
147 struct SupportedSampleCounts {
154 bool isSampleCountSupported(
int requestedCount)
const;
162 for (
int i = 0; i < fColorTypeInfoCount; ++i) {
164 return fColorTypeInfos[i].fFlags;
176 bool isRenderable(
VkImageTiling, uint32_t sampleCount)
const;
181 std::unique_ptr<ColorTypeInfo[]> fColorTypeInfos;
182 int fColorTypeInfoCount = 0;
185 SupportedSampleCounts fSupportedSampleCounts;
193 void setColorType(
SkColorType, std::initializer_list<VkFormat> formats);
197 static const size_t kNumVkFormats = 22;
198 FormatInfo fFormatTable[kNumVkFormats];
200 FormatInfo& getFormatInfo(
VkFormat);
201 const FormatInfo& getFormatInfo(
VkFormat)
const;
204 struct DepthStencilFormatInfo {
212 SupportedSampleCounts fSupportedSampleCounts;
216 static const size_t kNumDepthStencilFlags = 4;
217 VkFormat fDepthStencilFlagsToFormatTable[kNumDepthStencilFlags];
221 static const size_t kNumDepthStencilVkFormats = 3;
222 DepthStencilFormatInfo fDepthStencilFormatTable[kNumDepthStencilVkFormats];
224 DepthStencilFormatInfo& getDepthStencilFormatInfo(
VkFormat);
225 const DepthStencilFormatInfo& getDepthStencilFormatInfo(
VkFormat)
const;
227 uint32_t fMaxVertexAttributes;
228 uint64_t fMaxUniformBufferRange;
232 bool fSupportsMemorylessAttachments =
false;
233 bool fSupportsYcbcrConversion =
false;
234 bool fShouldAlwaysUseDedicatedImageMemory =
false;
235 bool fGpuOnlyBuffersMorePerformant =
false;
236 bool fShouldPersistentlyMapCpuToGpuBuffers =
true;
237 bool fSupportsDeviceFaultInfo =
false;
static constexpr int kSkColorTypeCnt
static SkColorType colorType(AImageDecoder *decoder, const AImageDecoderHeaderInfo *headerInfo)
bool gpuOnlyBuffersMorePerformant() const
TextureInfo getDefaultDepthStencilTextureInfo(SkEnumBitMask< DepthStencilFlags >, uint32_t sampleCount, Protected) const override
const ColorTypeInfo * getColorTypeInfo(SkColorType, const TextureInfo &) const override
std::pair< SkColorType, bool > supportedWritePixelsColorType(SkColorType dstColorType, const TextureInfo &dstTextureInfo, SkColorType srcColorType) const override
bool shouldAlwaysUseDedicatedImageMemory() const
void buildKeyForTexture(SkISize dimensions, const TextureInfo &, ResourceType, Shareable, GraphiteResourceKey *) const override
TextureInfo getTextureInfoForSampledCopy(const TextureInfo &textureInfo, Mipmapped mipmapped) const override
UniqueKey makeGraphicsPipelineKey(const GraphicsPipelineDesc &, const RenderPassDesc &) const override
GraphiteResourceKey makeSamplerKey(const SamplerDesc &) const override
bool supportsYcbcrConversion() const
bool isStorage(const TextureInfo &) const override
bool supportsWritePixels(const TextureInfo &) const override
bool isRenderable(const TextureInfo &) const override
TextureInfo getDefaultSampledTextureInfo(SkColorType, Mipmapped mipmapped, Protected, Renderable) const override
bool isTransferSrc(const VulkanTextureInfo &) const
bool supportsReadPixels(const TextureInfo &) const override
bool isTransferDst(const VulkanTextureInfo &) const
UniqueKey makeComputePipelineKey(const ComputePipelineDesc &) const override
const VkPhysicalDeviceMemoryProperties2 & physicalDeviceMemoryProperties2() const
uint64_t maxUniformBufferRange() const
TextureInfo getDefaultCompressedTextureInfo(SkTextureCompressionType, Mipmapped mipmapped, Protected) const override
TextureInfo getDefaultMSAATextureInfo(const TextureInfo &singleSampledInfo, Discardable discardable) const override
bool supportsDeviceFaultInfo() const
uint32_t maxVertexAttributes() const
bool onIsTexturable(const TextureInfo &) const override
uint32_t channelMask(const TextureInfo &) const override
bool shouldPersistentlyMapCpuToGpuBuffers() const
std::pair< SkColorType, bool > supportedReadPixelsColorType(SkColorType srcColorType, const TextureInfo &srcTextureInfo, SkColorType dstColorType) const override
TextureInfo getDefaultStorageTextureInfo(SkColorType) const override
FlutterSemanticsFlag flags
VkFlags VkImageUsageFlags
VkFlags VkFormatFeatureFlags