 |
Flutter Impeller
|
|
Go to the documentation of this file.
5 #ifndef FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_CAPABILITIES_VK_H_
6 #define FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_CAPABILITIES_VK_H_
135 const vk::PhysicalDevice& physical_device)
const;
138 vk::StructureChain<vk::PhysicalDeviceFeatures2,
139 vk::PhysicalDeviceSamplerYcbcrConversionFeaturesKHR>;
142 const vk::PhysicalDevice& physical_device)
const;
145 const vk::PhysicalDevice& physical_device);
197 bool validations_enabled_ =
false;
198 std::map<std::string, std::set<std::string>> exts_;
199 std::set<RequiredCommonDeviceExtensionVK> required_common_device_extensions_;
200 std::set<RequiredAndroidDeviceExtensionVK>
201 required_android_device_extensions_;
202 std::set<OptionalDeviceExtensionVK> optional_device_extensions_;
206 vk::PhysicalDeviceProperties device_properties_;
207 bool supports_compute_subgroups_ =
false;
208 bool supports_device_transient_textures_ =
false;
209 bool is_valid_ =
false;
213 bool HasLayer(
const std::string& layer)
const;
222 #endif // FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_CAPABILITIES_VK_H_
OptionalDeviceExtensionVK
A device extension enabled if available. Subsystems cannot assume availability and must check if thes...
bool SupportsDecalSamplerAddressMode() const override
Whether the context backend supports SamplerAddressMode::Decal.
void SetOffscreenFormat(PixelFormat pixel_format) const
std::optional< std::vector< std::string > > GetEnabledInstanceExtensions() const
bool SupportsOffscreenMSAA() const override
Whether the context backend supports attaching offscreen MSAA color/stencil textures.
bool SupportsFramebufferFetch() const override
Whether the context backend is able to support pipelines with shaders that read from the framebuffer ...
PixelFormat GetDefaultStencilFormat() const override
Returns a supported PixelFormat for textures that store stencil information. May include a depth chan...
std::optional< std::vector< std::string > > GetEnabledLayers() const
@ kEXTPipelineCreationFeedback
bool SupportsTextureToTextureBlits() const override
Whether the context backend supports blitting from one texture region to another texture region (via ...
PixelFormat GetDefaultGlyphAtlasFormat() const override
Returns the default pixel format for the alpha bitmap glyph atlas.
bool SupportsComputeSubgroups() const override
Whether the context backend supports configuring ComputePass command subgroups.
bool SupportsReadFromResolve() const override
Whether the context backend supports binding the current RenderPass attachments. This is supported if...
std::optional< PhysicalDeviceFeatures > GetEnabledDeviceFeatures(const vk::PhysicalDevice &physical_device) const
RequiredCommonDeviceExtensionVK
A device extension available on all platforms. Without the presence of these extensions,...
PixelFormat
The Pixel formats supported by Impeller. The naming convention denotes the usage of the component,...
bool SetPhysicalDevice(const vk::PhysicalDevice &physical_device)
bool HasExtension(RequiredCommonDeviceExtensionVK ext) const
PixelFormat GetDefaultColorFormat() const override
Returns a supported PixelFormat for textures that store 4-channel colors (red/green/blue/alpha).
@ kKHRDedicatedAllocation
@ kANDROIDExternalMemoryAndroidHardwareBuffer
@ kKHRSamplerYcbcrConversion
CapabilitiesVK(bool enable_validations)
PixelFormat GetDefaultDepthStencilFormat() const override
Returns a supported PixelFormat for textures that store both a stencil and depth component....
bool SupportsBufferToTextureBlits() const override
Whether the context backend supports blitting from a given DeviceBuffer view to a texture region (via...
bool SupportsCompute() const override
Whether the context backend supports ComputePass.
The Vulkan layers and extensions wrangler.
@ kVKKHRPortabilitySubset
vk::StructureChain< vk::PhysicalDeviceFeatures2, vk::PhysicalDeviceSamplerYcbcrConversionFeaturesKHR > PhysicalDeviceFeatures
bool SupportsDeviceTransientTextures() const override
Whether the context backend supports allocating StorageMode::kDeviceTransient (aka "memoryless") text...
const vk::PhysicalDeviceProperties & GetPhysicalDeviceProperties() const
RequiredAndroidDeviceExtensionVK
A device extension available on all Android platforms. Without the presence of these extensions on An...
bool SupportsSSBO() const override
Whether the context backend supports binding Shader Storage Buffer Objects (SSBOs) to pipelines.
bool AreValidationsEnabled() const
std::optional< std::vector< std::string > > GetEnabledDeviceExtensions(const vk::PhysicalDevice &physical_device) const
bool SupportsImplicitResolvingMSAA() const override
Whether the context backend supports multisampled rendering to the on-screen surface without requirin...