| Flutter Impeller |

Public Attributes | List of all members
impeller::WorkaroundsVK Struct Reference

A non-exhaustive set of driver specific workarounds. More...

`#include <workarounds_vk.h>`

## Public Attributes
bool | slow_primitive_restart_performance = false
bool | batch_submit_command_buffer_timeout = false
bool | input_attachment_self_dependency_broken = false
bool | broken_mipmap_generation = false

## Detailed Description

A non-exhaustive set of driver specific workarounds.

Definition at line 13 of file workarounds_vk.h.

## Member Data Documentation

## ◆ batch_submit_command_buffer_timeout

bool impeller::WorkaroundsVK::batch_submit_command_buffer_timeout = false

Early 600 series Adreno drivers would deadlock if a command buffer submission had too much work attached to it, this requires the renderer to split up command buffers that could be logically combined.

Definition at line 24 of file workarounds_vk.h.

Referenced by impeller::testing::CanBatchSubmitTest(), and impeller::GetWorkaroundsFromDriverInfo().

## ◆ broken_mipmap_generation

bool impeller::WorkaroundsVK::broken_mipmap_generation = false

Almost all Adreno series GPU (from 600 up to 800) have problems generating mipmaps, resulting in corruption of the mip levels. See:

- https://github.com/flutter/flutter/issues/160441
- https://github.com/flutter/flutter/issues/159876
- https://github.com/flutter/flutter/issues/160587

Definition at line 38 of file workarounds_vk.h.

Referenced by impeller::SamplerLibraryVK::ApplyWorkarounds(), impeller::testing::CanUseMipgeneration(), and impeller::GetWorkaroundsFromDriverInfo().

## ◆ input_attachment_self_dependency_broken

bool impeller::WorkaroundsVK::input_attachment_self_dependency_broken = false

On older 600 Series Adreno the input attachment / self dependency cycle for programmable blending is broken.

Also broken on newer PowerVR.

Definition at line 30 of file workarounds_vk.h.

Referenced by impeller::CapabilitiesVK::ApplyWorkarounds(), impeller::testing::CanUseFramebufferFetch(), impeller::GetWorkaroundsFromDriverInfo(), and impeller::testing::TEST().

## ◆ slow_primitive_restart_performance

bool impeller::WorkaroundsVK::slow_primitive_restart_performance = false

Definition at line 18 of file workarounds_vk.h.

Referenced by impeller::CapabilitiesVK::ApplyWorkarounds(), impeller::testing::CanUsePrimitiveRestartSubmitTest(), and impeller::GetWorkaroundsFromDriverInfo().

The documentation for this struct was generated from the following file:

- impeller/renderer/backend/vulkan/workarounds_vk.h