Skip to content

[Impeller] Re-enable Vulkan on Pixel 10. #179812

Description

@chinmaygarde

Pixel 10 devices do not use Vulkan. Instead, they fall back to using the OpenGL ES backend.

The Pixel 10 was the first device in the Pixel series to use an ImgTec GPU and some bugs were encountered. To work around this, some versions of the Pixel 10 Vulkan GPU driver would query the self-identified Impeller Vulkan application version and reject the creation of a Vulkan context. Impeller would then fallback to OpenGL.

Per updates from the IHV, the version that the driver reads is the engine version (as opposed to the application version in the struct above) which is 1.0 today. The driver should give Impeller a Vulkan context if the version is anything higher.

This issue tracks the re-enabling of Vulkan on Pixel 10 by bumping the Vulkan engine version reported by Impeller (and linked above). The following pre-requisites need to be performed:

  • On a pixel 10, the Vulkan engine version must be bumped up past 1.0 and any other additional checks gating Vulkan removed. It must be confirmed that Impeller is able to create a Vulkan context.
  • The usual sample applications must render accurately.
  • The reduced test cases in the internal doc must be tested.
  • If testing is successful, the engine version update may be committed. This is necessary for enabling Vulkan on Pixel 10 but not sufficient to ensure stability of newer Vulkan enabled Impeller applications on Pixel 10 devices that have not yet been updated.
  • Impeller must detect the driver version and self-reject Vulkan on device older than the current Pixel 10 GPU driver version. The IHV reports that a safe conservative driver version is >= 25.1 and any verification must happen on versions past this. Impeller should still base its checks on the driver version that we verify correctness on. What we have today works well and it is not advised to introduce instability for the sake of enabling Vulkan on this device.

More context for Googlers here.

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work liste: impellerImpeller rendering backend issues and features requestse: impeller-naughty-driverDevices & drivers that may be behaving unexpectedly and may need workarounds.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions