 |
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_
51 const vk::PhysicalDevice& physical_device)
const;
54 const vk::PhysicalDevice& physical_device)
const;
57 const vk::PhysicalDevice& physical_device);
106 bool validations_enabled_ =
false;
107 std::map<std::string, std::set<std::string>> exts_;
108 std::set<OptionalDeviceExtensionVK> optional_device_extensions_;
112 vk::PhysicalDeviceProperties device_properties_;
113 bool supports_compute_subgroups_ =
false;
114 bool supports_device_transient_textures_ =
false;
115 bool supports_framebuffer_fetch_ =
false;
116 bool is_valid_ =
false;
118 bool HasExtension(
const std::string& ext)
const;
120 bool HasLayer(
const std::string& layer)
const;
129 #endif // FLUTTER_IMPELLER_RENDERER_BACKEND_VULKAN_CAPABILITIES_VK_H_
OptionalDeviceExtensionVK
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
@ kARMRasterizationOrderAttachmentAccess
bool SupportsTextureToTextureBlits() const override
Whether the context backend supports blitting from one texture region to another texture region (via ...
bool SupportsComputeSubgroups() const override
Whether the context backend supports configuring ComputePass command subgroups.
bool HasOptionalDeviceExtension(OptionalDeviceExtensionVK extension) const
bool SupportsReadFromResolve() const override
Whether the context backend supports binding the current RenderPass attachments. This is supported if...
PixelFormat
The Pixel formats supported by Impeller. The naming convention denotes the usage of the component,...
bool SetPhysicalDevice(const vk::PhysicalDevice &physical_device)
PixelFormat GetDefaultColorFormat() const override
Returns a supported PixelFormat for textures that store 4-channel colors (red/green/blue/alpha).
@ kEXTRasterizationOrderAttachmentAccess
std::optional< vk::PhysicalDeviceFeatures > GetEnabledDeviceFeatures(const vk::PhysicalDevice &physical_device) const
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.
bool SupportsDeviceTransientTextures() const override
Whether the context backend supports allocating StorageMode::kDeviceTransient (aka "memoryless") text...
const vk::PhysicalDeviceProperties & GetPhysicalDeviceProperties() const
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...