Skip to content

Commit 705d66f

Browse files
committed
expand Vulkan Profiles chapter with new "Types of Vulkan Profiles" section, revised profile maintenance details, and additional documentation links.
1 parent e7a82b6 commit 705d66f

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

chapters/vulkan_profiles.adoc

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,12 @@ For example:
4949

5050
This approach allows developers to target specific capability sets without being tied to a particular Vulkan version, providing more flexibility in application development.
5151

52-
== Official Profiles
52+
== Maintained Profiles
5353

54-
The Khronos Group maintains several profiles, which are defined in the link:https://github.com/KhronosGroup/Vulkan-Profiles/tree/main/profiles[Vulkan-Profiles repository]. The only official profiles are the Khronos Roadmap profiles and the Android Baseline profile. The others are maintained by Google and LunarG:
54+
The Khronos Group maintains several profiles, which are defined in the
55+
link:https://github.com/KhronosGroup/Vulkan-Profiles/tree/main/profiles
56+
[Vulkan-Profiles repository]. The only Khronos group maintained profiles are
57+
the Khronos Roadmap profiles. The others are maintained by Google and LunarG:
5558

5659
* *LunarG Desktop Baseline 2022* - A baseline profile for desktop platforms
5760
(link:https://github.com/KhronosGroup/Vulkan-Profiles/blob/main/profiles/VP_LUNARG_desktop_baseline_2022[JSON Definitions])
@@ -115,7 +118,8 @@ By targeting this profile, developers can prepare their applications for future
115118

116119
=== Profile Versioning Strategy
117120

118-
Profiles use a year-based versioning scheme (e.g., 2022, 2023) to indicate when they were defined. This approach:
121+
Profiles may use a year-based versioning scheme (e.g., 2022, 2023) to indicate
122+
when they were defined. This approach:
119123

120124
* Provides clear temporal context for each profile
121125
* Allows for the creation of new profiles that reflect evolving hardware capabilities
@@ -252,6 +256,19 @@ The key parts of a profile definition include:
252256
* *Properties*: Required properties and limits
253257
* *Formats*: Required format support with specific capabilities
254258

259+
=== Types of Vulkan Profiles
260+
261+
Vulkan Profiles can be applied for a multitude of use cases, including:
262+
263+
* *Roadmap profiles*: To express guidance on the future direction of Vulkan devices.
264+
* *Platform profiles*: To express the Vulkan support available on different platforms.
265+
* *Device profiles*: To express the Vulkan support of a single Vulkan driver on a Vulkan device.
266+
* *Architecture profiles*: To express the Vulkan support of a class of GPUs.
267+
* *Engine profiles*: To express some rendering code paths requirements of an engine.
268+
* *Drivers bugs profiles*: To express capabilities that can't be used by an application.
269+
270+
These different types of profiles allow developers to target specific hardware configurations, platforms, or use cases, ensuring compatibility and optimal performance across a wide range of scenarios.
271+
255272
=== Creating Custom Profiles
256273

257274
Developers can create custom profiles to target specific hardware configurations or to define a baseline for their own applications. To create a custom profile:
@@ -519,3 +536,6 @@ For more information, refer to these resources:
519536
- Contains profile definitions, library code, and tools
520537
* link:https://github.com/KhronosGroup/Vulkan-Samples/tree/main/samples/tooling/profiles[Vulkan-Samples profiles examples]
521538
- Sample code demonstrating profile usage
539+
* link:https://www.lunarg.com/wp-content/uploads/2024/02/The-Vulkan-Profiles-Tools-LunarG-Christophe-Riccio-02-01-2024.pdf[Vulkan Profiles pdf]
540+
- LunarG's Cristophe Ricco exhaustive documentation for
541+
Vulkan Profiles.

0 commit comments

Comments
 (0)