The Vulkan layers and extensions wrangler. More...
#include <capabilities_gles.h>
Public Member Functions | |
| CapabilitiesGLES (const ProcTableGLES &gl) | |
| CapabilitiesGLES (const CapabilitiesGLES &)=delete | |
| CapabilitiesGLES (CapabilitiesGLES &&)=delete | |
| CapabilitiesGLES & | operator= (const CapabilitiesGLES &)=delete |
| CapabilitiesGLES & | operator= (CapabilitiesGLES &&)=delete |
| size_t | GetMaxTextureUnits (ShaderStage stage) const |
| bool | SupportsOffscreenMSAA () const override |
| Whether the context backend supports attaching offscreen MSAA color/stencil textures. More... | |
| bool | SupportsImplicitResolvingMSAA () const override |
| Whether the context backend supports multisampled rendering to the on-screen surface without requiring an explicit resolve of the MSAA color attachment. More... | |
| bool | SupportsSSBO () const override |
| Whether the context backend supports binding Shader Storage Buffer Objects (SSBOs) to pipelines. More... | |
| bool | SupportsBufferToTextureBlits () const override |
Whether the context backend supports blitting from a given DeviceBuffer view to a texture region (via the relevant BlitPass::AddCopy overloads). More... | |
| bool | SupportsTextureToTextureBlits () const override |
Whether the context backend supports blitting from one texture region to another texture region (via the relevant BlitPass::AddCopy overloads). More... | |
| bool | SupportsFramebufferFetch () const override |
| Whether the context backend is able to support pipelines with shaders that read from the framebuffer (i.e. pixels that have been written by previous draw calls in the current render pass). More... | |
| bool | SupportsCompute () const override |
Whether the context backend supports ComputePass. More... | |
| bool | SupportsComputeSubgroups () const override |
Whether the context backend supports configuring ComputePass command subgroups. More... | |
| bool | SupportsReadFromResolve () const override |
Whether the context backend supports binding the current RenderPass attachments. This is supported if the backend can guarantee that attachment textures will not be mutated until the render pass has fully completed. More... | |
| bool | SupportsDecalSamplerAddressMode () const override |
Whether the context backend supports SamplerAddressMode::Decal. More... | |
| bool | SupportsDeviceTransientTextures () const override |
Whether the context backend supports allocating StorageMode::kDeviceTransient (aka "memoryless") textures, which are temporary textures kept in tile memory for the duration of the RenderPass it's attached to. More... | |
| PixelFormat | GetDefaultColorFormat () const override |
Returns a supported PixelFormat for textures that store 4-channel colors (red/green/blue/alpha). More... | |
| PixelFormat | GetDefaultStencilFormat () const override |
Returns a supported PixelFormat for textures that store stencil information. May include a depth channel if a stencil-only format is not available. More... | |
| PixelFormat | GetDefaultDepthStencilFormat () const override |
Returns a supported PixelFormat for textures that store both a stencil and depth component. This will never return a depth-only or stencil-only texture. Returns PixelFormat::kUnknown if no suitable depth+stencil format was found. More... | |
Public Member Functions inherited from impeller::Capabilities | |
| virtual | ~Capabilities () |
Public Attributes | |
| size_t | max_combined_texture_image_units = 8 |
| size_t | max_cube_map_texture_size = 16 |
| size_t | max_fragment_uniform_vectors = 16 |
| size_t | max_renderbuffer_size = 1 |
| size_t | max_texture_image_units = 8 |
| ISize | max_texture_size = ISize{64, 64} |
| size_t | max_varying_vectors = 8 |
| size_t | max_vertex_attribs = 8 |
| size_t | max_vertex_texture_image_units = 0 |
| size_t | max_vertex_uniform_vectors = 128 |
| ISize | max_viewport_dims |
| size_t | num_compressed_texture_formats = 0 |
| size_t | num_shader_binary_formats = 0 |
Additional Inherited Members | |
Static Public Member Functions inherited from impeller::BackendCast< CapabilitiesGLES, Capabilities > | |
| static CapabilitiesGLES & | Cast (Capabilities &base) |
| static const CapabilitiesGLES & | Cast (const Capabilities &base) |
| static CapabilitiesGLES * | Cast (Capabilities *base) |
| static const CapabilitiesGLES * | Cast (const Capabilities *base) |
Protected Member Functions inherited from impeller::Capabilities | |
| Capabilities () | |
| Capabilities (const Capabilities &)=delete | |
| Capabilities & | operator= (const Capabilities &)=delete |
The Vulkan layers and extensions wrangler.
Definition at line 22 of file capabilities_gles.h.
|
explicit |
Definition at line 24 of file capabilities_gles.cc.
References impeller::ProcTableGLES::GetDescription(), impeller::kFramebufferFetchExt, impeller::kMultisampledRenderToTextureExt, impeller::kNvidiaTextureBorderClampExt, impeller::kTextureBorderClampExt, max_combined_texture_image_units, max_cube_map_texture_size, max_fragment_uniform_vectors, max_renderbuffer_size, max_texture_image_units, max_texture_size, max_varying_vectors, max_vertex_attribs, max_vertex_texture_image_units, max_vertex_uniform_vectors, max_viewport_dims, num_compressed_texture_formats, and num_shader_binary_formats.
|
delete |
|
delete |
|
overridevirtual |
Returns a supported PixelFormat for textures that store 4-channel colors (red/green/blue/alpha).
Implements impeller::Capabilities.
Definition at line 179 of file capabilities_gles.cc.
References impeller::kR8G8B8A8UNormInt.
|
overridevirtual |
Returns a supported PixelFormat for textures that store both a stencil and depth component. This will never return a depth-only or stencil-only texture. Returns PixelFormat::kUnknown if no suitable depth+stencil format was found.
Implements impeller::Capabilities.
Definition at line 187 of file capabilities_gles.cc.
References impeller::kD24UnormS8Uint.
|
overridevirtual |
Returns a supported PixelFormat for textures that store stencil information. May include a depth channel if a stencil-only format is not available.
Implements impeller::Capabilities.
Definition at line 183 of file capabilities_gles.cc.
References impeller::kS8UInt.
| size_t impeller::CapabilitiesGLES::GetMaxTextureUnits | ( | ShaderStage | stage | ) | const |
Definition at line 122 of file capabilities_gles.cc.
References impeller::kCompute, impeller::kFragment, impeller::kUnknown, impeller::kVertex, max_texture_image_units, and max_vertex_texture_image_units.
|
delete |
|
delete |
|
overridevirtual |
Whether the context backend supports blitting from a given DeviceBuffer view to a texture region (via the relevant BlitPass::AddCopy overloads).
Implements impeller::Capabilities.
Definition at line 147 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend supports ComputePass.
Implements impeller::Capabilities.
Definition at line 159 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend supports configuring ComputePass command subgroups.
Implements impeller::Capabilities.
Definition at line 163 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend supports SamplerAddressMode::Decal.
Implements impeller::Capabilities.
Definition at line 171 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend supports allocating StorageMode::kDeviceTransient (aka "memoryless") textures, which are temporary textures kept in tile memory for the duration of the RenderPass it's attached to.
This feature is especially useful for MSAA and stencils.
Implements impeller::Capabilities.
Definition at line 175 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend is able to support pipelines with shaders that read from the framebuffer (i.e. pixels that have been written by previous draw calls in the current render pass).
Example of reading from the first color attachment in a GLSL shader: ``` uniform subpassInput subpass_input;
out vec4 frag_color;
void main() { vec4 color = subpassLoad(subpass_input); // Invert the colors drawn to the framebuffer. frag_color = vec4(vec3(1) - color.rgb, color.a); } ```
Implements impeller::Capabilities.
Definition at line 155 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend supports multisampled rendering to the on-screen surface without requiring an explicit resolve of the MSAA color attachment.
Implements impeller::Capabilities.
Definition at line 139 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend supports attaching offscreen MSAA color/stencil textures.
Implements impeller::Capabilities.
Definition at line 135 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend supports binding the current RenderPass attachments. This is supported if the backend can guarantee that attachment textures will not be mutated until the render pass has fully completed.
This is possible because many mobile graphics cards track RenderPass attachment state in intermediary tile memory prior to Storing the pass in the heap allocated attachments on DRAM. Metal's hazard tracking and Vulkan's barriers are granular enough to allow for safely accessing attachment textures prior to storage in the same RenderPass.
Implements impeller::Capabilities.
Definition at line 167 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend supports binding Shader Storage Buffer Objects (SSBOs) to pipelines.
Implements impeller::Capabilities.
Definition at line 143 of file capabilities_gles.cc.
|
overridevirtual |
Whether the context backend supports blitting from one texture region to another texture region (via the relevant BlitPass::AddCopy overloads).
Implements impeller::Capabilities.
Definition at line 151 of file capabilities_gles.cc.
| size_t impeller::CapabilitiesGLES::max_combined_texture_image_units = 8 |
Definition at line 37 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| size_t impeller::CapabilitiesGLES::max_cube_map_texture_size = 16 |
Definition at line 40 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| size_t impeller::CapabilitiesGLES::max_fragment_uniform_vectors = 16 |
Definition at line 43 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| size_t impeller::CapabilitiesGLES::max_renderbuffer_size = 1 |
Definition at line 46 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| size_t impeller::CapabilitiesGLES::max_texture_image_units = 8 |
Definition at line 49 of file capabilities_gles.h.
Referenced by CapabilitiesGLES(), and GetMaxTextureUnits().
Definition at line 52 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| size_t impeller::CapabilitiesGLES::max_varying_vectors = 8 |
Definition at line 55 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| size_t impeller::CapabilitiesGLES::max_vertex_attribs = 8 |
Definition at line 58 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| size_t impeller::CapabilitiesGLES::max_vertex_texture_image_units = 0 |
Definition at line 61 of file capabilities_gles.h.
Referenced by CapabilitiesGLES(), and GetMaxTextureUnits().
| size_t impeller::CapabilitiesGLES::max_vertex_uniform_vectors = 128 |
Definition at line 64 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| ISize impeller::CapabilitiesGLES::max_viewport_dims |
Definition at line 67 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| size_t impeller::CapabilitiesGLES::num_compressed_texture_formats = 0 |
Definition at line 70 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().
| size_t impeller::CapabilitiesGLES::num_shader_binary_formats = 0 |
Definition at line 73 of file capabilities_gles.h.
Referenced by CapabilitiesGLES().