Introduction to Vulkan hardware profiles
Learn about Vulkan hardware profiles and how Unity interacts with them.
Read time 2 minutesLast updated 12 days ago
Use Vulkan hardware profiles to control hardware capabilities and driver workarounds directly from C#.
Vulkan hardware profiles let you control how your app uses Vulkan across classes of Android devices:
- Configure used Graphics API across targeted devices.
- Configure driver workarounds.
- Target profiles to exact device types.
- Support high-end devices.
Unity's default behavior without profiles
Without Vulkan hardware profiles, the Unity Engine auto selects between OpenGL ES and Vulkan backends with no transparency. Also, Unity often prioritizes compatibility with entry-level hardware so that applications function across all devices.
These choices can limit your ability to target high-end devices. Profiles give you explicit, testable rules per device class, so you can target high‑end hardware.
Hardware profile configurations
The following topics describe the main configurations you use to define hardware profiles and fine-tune behavior for specific devices:
Data model | Description |
|---|---|
| Workarounds | Control whether devices use specific workarounds for known bugs and issues. |
| Device filters | Target individual devices or groups of devices that match criteria you define. |
| Graphics APIs | Choose which graphics API your application uses on matching devices. |
Build or export your project with hardware profiles
The following information explains how Unity handles hardware profiles when you build or export your Unity project.
Use Build and Run
When you use Build and Run (menu: File > Build And Run), Unity translates the profile into a data file and appends to the Gradle project. Unity uses an incremental build pipeline so changes don't invoke a total rebuild- it only affects modified data files.
Use Export Project
When you use Export Project, Unity appends the profile data file into the Gradle project in the following directory:
<gradle-project>/unityLibrary/src/main/assets/bin/Data/Profile.jsonIf you modify this raw data file, it doesn’t invoke a total rebuild. If you rebuild the app after modifying the profile, the rebuild only adds a new file to the .
.apk