Skip to content

Commit

Permalink
Change log for February 21, 2025 Vulkan 1.4.309 spec update:
Browse files Browse the repository at this point in the history
Github Issues

  * Fix CullPrimitiveEXT VUs (public PR 2475).
  * Fix promoted extension dependencies in vk.xml (public PR 2492).
  * Fix XML dependency of VK_KHR_video_maintenance2
    (public Vulkan-ValidationLayers issue 9464).

Internal Issues

  * Clarify VUs for
    VkAccelerationStructureBuildRangeInfoKHR::primitiveOffset in cases where
    packed formats are used (internal issue 4058).
  * Add bufferFeatures restriction to VkFormatProperties for depth/stencil
    and multi-planar formats (internal issue 4155).
  * Add a standalone SPIR-V validation VU requiring that interpolation
    qualifiers match for any given location (internal issue 4161).
  * Clarify template text in transcluded tag::features language used to
    describe features consistently (internal issue 4190).
  * Fix XML `limittype` attributes for
    VkPhysicalDeviceCooperativeVectorPropertiesNV (internal MR 7160).
  * Specify that only the lower 32 bits are used in VkStridedDeviceAddressNV
    (internal MR 7173).
  * Add Vulkan object and base generator scripts for inclusion in
    Vulkan-Headers (internal MR 7180),
  * Update links to SPIR-V registry and add a missing spirvextension XML
    block (internal MR 7187).
  • Loading branch information
oddhack committed Feb 21, 2025
1 parent 54195f7 commit 5a38e1f
Show file tree
Hide file tree
Showing 49 changed files with 1,478 additions and 198 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
# We now refer to the container by its SHA instead of the name, to prevent
# caching problems when updating the image.
# container: khronosgroup/docker-images:asciidoctor-spec.20240726
container: khronosgroup/docker-images@sha256:089687083ceb36483a3917389e4278718ab19c594099634f5dd80e22540c960f
container: khronosgroup/docker-images@sha256:9f5add2758a383ba329bc8c4b819dea9fb695ee629b05b7da4739ddf81d39073

steps:
- uses: actions/checkout@v4
Expand All @@ -32,7 +32,7 @@ jobs:
consistency-check:
name: Run consistency checks on the spec and XML sources
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:089687083ceb36483a3917389e4278718ab19c594099634f5dd80e22540c960f
container: khronosgroup/docker-images@sha256:9f5add2758a383ba329bc8c4b819dea9fb695ee629b05b7da4739ddf81d39073

steps:
- uses: actions/checkout@v4
Expand All @@ -48,7 +48,7 @@ jobs:
spec-toolchain:
name: Build a test spec and check against expectation, to make sure the spec toolchain works as expected
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:089687083ceb36483a3917389e4278718ab19c594099634f5dd80e22540c960f
container: khronosgroup/docker-images@sha256:9f5add2758a383ba329bc8c4b819dea9fb695ee629b05b7da4739ddf81d39073

steps:
- uses: actions/checkout@v4
Expand All @@ -57,7 +57,7 @@ jobs:
spec-core:
name: Build the core-only spec, to try and catch ifdef errors in extension markup
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:089687083ceb36483a3917389e4278718ab19c594099634f5dd80e22540c960f
container: khronosgroup/docker-images@sha256:9f5add2758a383ba329bc8c4b819dea9fb695ee629b05b7da4739ddf81d39073

steps:
- uses: actions/checkout@v4
Expand All @@ -66,7 +66,7 @@ jobs:
spec-generate:
name: Build the vulkan specification and generate any associated files (such as vulkan.h)
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:089687083ceb36483a3917389e4278718ab19c594099634f5dd80e22540c960f
container: khronosgroup/docker-images@sha256:9f5add2758a383ba329bc8c4b819dea9fb695ee629b05b7da4739ddf81d39073

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -140,7 +140,7 @@ jobs:
cts-framework-tests:
name: Run Vulkan CTS framework tests to validate against XML changes
runs-on: ubuntu-latest
container: khronosgroup/docker-images@sha256:089687083ceb36483a3917389e4278718ab19c594099634f5dd80e22540c960f
container: khronosgroup/docker-images@sha256:9f5add2758a383ba329bc8c4b819dea9fb695ee629b05b7da4739ddf81d39073
continue-on-error: true

steps:
Expand Down
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# image: khronosgroup/docker-images:asciidoctor-spec.20240727
# There are no 'before_script' tags for most stages, because all
# prerequisites are in the default image.
image: khronosgroup/docker-images@sha256:089687083ceb36483a3917389e4278718ab19c594099634f5dd80e22540c960f
image: khronosgroup/docker-images@sha256:9f5add2758a383ba329bc8c4b819dea9fb695ee629b05b7da4739ddf81d39073

# Specify which gitlab runner to use
default:
Expand Down
31 changes: 31 additions & 0 deletions ChangeLog.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,37 @@ appears frequently in the change log.

'''

Change log for February 21, 2025 Vulkan 1.4.309 spec update:

Github Issues

* Fix CullPrimitiveEXT VUs (public PR 2475).
* Fix promoted extension dependencies in vk.xml (public PR 2492).
* Fix XML dependency of VK_KHR_video_maintenance2
(public Vulkan-ValidationLayers issue 9464).

Internal Issues

* Clarify VUs for
VkAccelerationStructureBuildRangeInfoKHR::primitiveOffset in cases where
packed formats are used (internal issue 4058).
* Add bufferFeatures restriction to VkFormatProperties for depth/stencil
and multi-planar formats (internal issue 4155).
* Add a standalone SPIR-V validation VU requiring that interpolation
qualifiers match for any given location (internal issue 4161).
* Clarify template text in transcluded tag::features language used to
describe features consistently (internal issue 4190).
* Fix XML `limittype` attributes for
VkPhysicalDeviceCooperativeVectorPropertiesNV (internal MR 7160).
* Specify that only the lower 32 bits are used in VkStridedDeviceAddressNV
(internal MR 7173).
* Add Vulkan object and base generator scripts for inclusion in
Vulkan-Headers (internal MR 7180),
* Update links to SPIR-V registry and add a missing spirvextension XML
block (internal MR 7187).

'''

Change log for February 7, 2025 Vulkan 1.4.308 spec update:

Github Issues
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 308
PATCHVERSION = 309
BASEOPTS =

ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_EXT_debug_report.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ events.

To capture events that occur while creating or destroying an instance an
application can: link a slink:VkDebugReportCallbackCreateInfoEXT structure
to the pname:pNext element of the slink:VkInstanceCreateInfo structure given
to the pname:pNext chain of the slink:VkInstanceCreateInfo structure passed
to flink:vkCreateInstance.

Example uses: Create three callback objects.
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_EXT_debug_utils.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ events.

To capture events that occur while creating or destroying an instance an
application can: link a slink:VkDebugUtilsMessengerCreateInfoEXT structure
to the pname:pNext element of the slink:VkInstanceCreateInfo structure given
to the pname:pNext chain of the slink:VkInstanceCreateInfo structure passed
to flink:vkCreateInstance.

Example uses: Create three callback objects.
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_EXT_depth_clip_control.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ extended in the future?
It is highly unlikely that the depth range is changed to anything other than
[eq]#[0, 1]# in the future.
Should that happen a new extension will be required to extend such an enum,
and that extension might as well add a new struct to chain to
and that extension might as well add a new structure to chain to
slink:VkPipelineViewportStateCreateInfo::pname:pNext instead.

=== Version History
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_EXT_device_generated_commands.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ The intended usage for this extension is for the application to:
flink:vkGetGeneratedCommandsMemoryRequirementsEXT.
* optionally preprocess the generated content using
flink:vkCmdPreprocessGeneratedCommandsEXT, for example on an
asynchronous compute queue, or for the purpose of re-using the data in
asynchronous compute queue, or for the purpose of reusing the data in
multiple executions.
* call flink:vkCmdExecuteGeneratedCommandsEXT to create and execute the
actual device commands for all sequences based on the inputs provided.
Expand Down
12 changes: 6 additions & 6 deletions appendices/VK_EXT_layer_settings.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ include::{generated}/meta/{refprefix}VK_EXT_layer_settings.adoc[]
This extension provides a mechanism for configuring programmatically through
the Vulkan API the behavior of layers.

This extension provides the slink:VkLayerSettingsCreateInfoEXT struct that
can be included in the pname:pNext chain of the slink:VkInstanceCreateInfo
structure passed as the pname:pCreateInfo parameter of
flink:vkCreateInstance.
This extension provides the slink:VkLayerSettingsCreateInfoEXT structure
that can be included in the pname:pNext chain of the
slink:VkInstanceCreateInfo structure passed as the pname:pCreateInfo
parameter of flink:vkCreateInstance.

The structure contains an array of slink:VkLayerSettingEXT structure values
that configure specific features of layers.
Expand Down Expand Up @@ -79,7 +79,7 @@ const VkLayerSettingEXT settings[] = {
{kLayerName, kLayerSettingsProfileFile, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_file_data},
{kLayerName, kLayerSettingsProfileName, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_name_data},
{kLayerName, kLayerSettingsEmulatePortability, VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &emulate_portability_data},
{kLayerName, kLayerSettingsSimulateCapabilities, VK_LAYER_SETTING_TYPE_STRING_EXT,
{kLayerName, kLayerSettingsSimulateCapabilities, VK_LAYER_SETTING_TYPE_STRING_EXT,
static_cast<uint32_t>(std::size(simulate_capabilities)), simulate_capabilities},
{kLayerName, kLayerSettingsDebugReports, VK_LAYER_SETTING_TYPE_STRING_EXT,
static_cast<uint32_t>(std::size(debug_reports)), debug_reports}
Expand All @@ -90,7 +90,7 @@ const VkLayerSettingsCreateInfoEXT layer_settings_create_info{
static_cast<uint32_t>(std::size(settings)), settings};
VkInstanceCreateInfo inst_create_info = {};
...
...
inst_create_info.pNext = &layer_settings_create_info;
vkCreateInstance(&inst_create_info, nullptr, &_instances);
----
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_EXT_validation_cache.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ application.
At the core is the slink:VkValidationCacheEXT object type, which is managed
similarly to the existing slink:VkPipelineCache.

The new struct slink:VkShaderModuleValidationCacheCreateInfoEXT can be
The new structure slink:VkShaderModuleValidationCacheCreateInfoEXT can be
included in the pname:pNext chain at flink:vkCreateShaderModule time.
It contains a slink:VkValidationCacheEXT to use when validating the
slink:VkShaderModule.
Expand Down
4 changes: 2 additions & 2 deletions appendices/VK_EXT_validation_features.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ include::{generated}/meta/{refprefix}VK_EXT_validation_features.adoc[]

=== Description

This extension provides the slink:VkValidationFeaturesEXT struct that can be
included in the pname:pNext chain of the slink:VkInstanceCreateInfo
This extension provides the slink:VkValidationFeaturesEXT structure that can
be included in the pname:pNext chain of the slink:VkInstanceCreateInfo
structure passed as the pname:pCreateInfo parameter of
flink:vkCreateInstance.
The structure contains an array of elink:VkValidationFeatureEnableEXT enum
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_EXT_validation_flags.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ include::{generated}/meta/{refprefix}VK_EXT_validation_flags.adoc[]

=== Description

This extension provides the slink:VkValidationFlagsEXT struct that can be
This extension provides the slink:VkValidationFlagsEXT structure that can be
included in the pname:pNext chain of the slink:VkInstanceCreateInfo
structure passed as the pname:pCreateInfo parameter of
flink:vkCreateInstance.
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_EXT_vertex_input_dynamic_state.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ include::{generated}/interfaces/VK_EXT_vertex_input_dynamic_state.adoc[]

* Revision 2, 2020-11-05 (Piers Daniell)
** Make slink:VkVertexInputBindingDescription2EXT extensible
** Add new slink:VkVertexInputAttributeDescription2EXT struct for the
** Add new slink:VkVertexInputAttributeDescription2EXT structure for the
pname:pVertexAttributeDescriptions parameter to
flink:vkCmdSetVertexInputEXT so it is also extensible

Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_KHR_external_memory.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ operations ideally include scheduling a barrier on both sides of the
transition: Both the releasing and the acquiring queue or process.
Using a special queue family requires adding an additional reserved queue
family index.
Re-using ename:VK_QUEUE_FAMILY_IGNORED would have left it unclear how to
Reusing ename:VK_QUEUE_FAMILY_IGNORED would have left it unclear how to
transition a concurrent usage resource from one process to another, since
the semantics would have likely been equivalent to the currently-ignored
transition of
Expand Down
5 changes: 3 additions & 2 deletions appendices/VK_KHR_incremental_present.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,9 @@ include::{generated}/interfaces/VK_KHR_incremental_present.adoc[]

1) How should we handle steroescopic-3D swapchains? We need to add a layer
for each rectangle.
One approach is to create another struct containing the slink:VkRect2D plus
layer, and have slink:VkPresentRegionsKHR point to an array of that struct.
One approach is to create another structure containing the slink:VkRect2D
plus layer, and have slink:VkPresentRegionsKHR point to an array of that
struct.
Another approach is to have two parallel arrays, ptext:pRectangles and
ptext:pLayers, where ptext:pRectangles[i] and ptext:pLayers[i] must be used
together.
Expand Down
4 changes: 2 additions & 2 deletions appendices/VK_KHR_maintenance5.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ The new features are as follows:
`pSizes` parameter.
* A default size of 1.0 is used if code:PointSize is not written
* Shader modules are deprecated - applications can now pass
slink:VkShaderModuleCreateInfo as a chained struct to pipeline creation
via slink:VkPipelineShaderStageCreateInfo
slink:VkShaderModuleCreateInfo as a chained structure to pipeline
creation via slink:VkPipelineShaderStageCreateInfo
* A function flink:vkGetRenderingAreaGranularityKHR to query the optimal
render area for a dynamic rendering instance.
* A property to indicate that depth/stencil texturing operations with
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_KHR_ray_tracing_maintenance1.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ include::{generated}/meta/{refprefix}VK_KHR_ray_tracing_maintenance1.adoc[]
- Tobias Hector, AMD
- Marius Bjorge, Arm
- Tom Olson, Arm
- Yuriy ODonnell, Epic Games
- Yuriy O'Donnell, Epic Games
- Yunpeng Zhu, Huawei
- Andrew Garrard, Imagination
- Dae Kim, Imagination
Expand Down
4 changes: 2 additions & 2 deletions appendices/VK_KHR_surface.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ While it might be useful to depend on sname:VkDevice (and therefore on
enabled extensions and features) for the queries, Vulkan was released only
with the slink:VkPhysicalDevice versions.
Many cases can be resolved by a Valid Usage statement, and/or by a separate
pname:pNext chain version of the query struct specific to a given extension
or parameters, via extensible versions of the queries:
pname:pNext chain version of the query structure specific to a given
extension or parameters, via extensible versions of the queries:
ifdef::VK_EXT_full_screen_exclusive[flink:vkGetPhysicalDeviceSurfacePresentModes2EXT,]
flink:vkGetPhysicalDeviceSurfaceCapabilities2KHR, and
flink:vkGetPhysicalDeviceSurfaceFormats2KHR.
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_KHR_uniform_buffer_standard_layout.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ include::{generated}/meta/{refprefix}VK_KHR_uniform_buffer_standard_layout.adoc[

=== Description

This extension enables tighter array and struct packing to be used with
This extension enables tighter array and structure packing to be used with
uniform buffers.

It modifies the alignment rules for uniform buffers, allowing for tighter
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_NV_acquire_winrt_display.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ platform-independent acquire command.

The X11 acquire command does need to accept a platform-specific parameter.
This could be handled by adding to a platform-independent acquire command a
params struct to which platform-dependent types can be chained by
params structure to which platform-dependent types can be chained by
pname:pNext pointer.

The prevailing opinion is that it would be odd to create a second
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_NV_clip_space_w_scaling.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ include::{generated}/interfaces/VK_NV_clip_space_w_scaling.adoc[]

=== Issues

1) Is the pipeline struct name too long?
1) Is the pipeline structure name too long?

*RESOLVED*: It fits with the naming convention.

Expand Down
4 changes: 2 additions & 2 deletions appendices/VK_NV_device_generated_commands.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ The intended usage for this extension is for the application to:
flink:vkGetGeneratedCommandsMemoryRequirementsNV.
* optionally preprocess the generated content using
flink:vkCmdPreprocessGeneratedCommandsNV, for example on an asynchronous
compute queue, or for the purpose of re-using the data in multiple
compute queue, or for the purpose of reusing the data in multiple
executions.
* call flink:vkCmdExecuteGeneratedCommandsNV to create and execute the
actual device commands for all sequences based on the inputs provided.
Expand Down Expand Up @@ -176,7 +176,7 @@ primitive-lists or -strips, or make other state modifications.
Furthermore, as new tokens can be added easily, future extension could add
the ability to change any elink:VkDynamicState.

8) How do we allow re-using already "`generated`" code:indirectCommands?
8) How do we allow reusing already "`generated`" code:indirectCommands?

Expose a `preprocessBuffer` to reuse implementation-dependencyFlags data.
Set pname:isPreprocessed to ename:VK_TRUE in
Expand Down
4 changes: 2 additions & 2 deletions appendices/VK_NV_external_memory_capabilities.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ Some handle types cannot even support the deferred image and memory binding
behavior of Vulkan and require specifying the image when allocating or
importing the memory object.

2) Does the slink:VkExternalImageFormatPropertiesNV struct need to include a
list of memory type bits that support the given handle type?
2) Does the slink:VkExternalImageFormatPropertiesNV structure need to
include a list of memory type bits that support the given handle type?

*RESOLVED*: No.
The memory types that do not support the handle types will simply be
Expand Down
2 changes: 1 addition & 1 deletion appendices/VK_NV_external_memory_sci_buf.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ implementations only implement (or safety certify) a subset.
2) What changed in revision 2?

RESOLVED.
The slink:VkPhysicalDeviceExternalSciBufFeaturesNV struct was renamed to
The slink:VkPhysicalDeviceExternalSciBufFeaturesNV structure was renamed to
slink:VkPhysicalDeviceExternalMemorySciBufFeaturesNV to follow naming
conventions (previous names retained as aliases), and drop const on
pname:pNext pointer.
Expand Down
5 changes: 5 additions & 0 deletions appendices/spirvenv.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,11 @@ or knowledge of runtime information, such as enabled features.
code:Fragment execution model must: not have overlapping code:Component
and code:Location decorations as defined by
<<interfaces-iointerfaces-locations,Location and Component Assignment>>
* [[VUID-{refpage}-Input-10604]]
Any variable in the code:Input storage class in the code:Fragment
execution model must: not have an assigned code:Location shared with
another variable with different decorations for code:PerVertexKHR,
code:Flat, code:NoPerspective, code:Sample, or code:Centroid
* [[VUID-{refpage}-Input-09557]]
The pointers of any code:Input or code:Output
<<interfaces-iointerfaces-user,Interface user-defined variables>> must:
Expand Down
2 changes: 1 addition & 1 deletion appendices/versions.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,7 @@ support for:
* A new command to enumerate the instance version:
flink:vkEnumerateInstanceVersion.
* The slink:VkPhysicalDeviceShaderDrawParametersFeatures feature query
struct (where the `apiext:VK_KHR_shader_draw_parameters` extension did
structure (where the `apiext:VK_KHR_shader_draw_parameters` extension did
not have one).
----

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ a slink:VkShaderModuleValidationCacheCreateInfoEXT structure to the
pname:pNext chain of the slink:VkShaderModuleCreateInfo structure,
specifying the cache object to use.

The sname:VkShaderModuleValidationCacheCreateInfoEXT struct is defined as:
The sname:VkShaderModuleValidationCacheCreateInfoEXT structure is defined
as:

include::{generated}/api/structs/VkShaderModuleValidationCacheCreateInfoEXT.adoc[]

Expand Down
2 changes: 1 addition & 1 deletion chapters/VK_KHR_surface/wsi.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -687,7 +687,7 @@ slink:VkPhysicalDeviceSurfaceInfo2KHR::pname:surface can: be
dlink:VK_NULL_HANDLE.
In that case, the contents of
slink:VkSurfaceCapabilities2KHR::pname:surfaceCapabilities as well as any
other struct chained to it will be undefined:.
other structure chained to it will be undefined:.
endif::VK_GOOGLE_surfaceless_query[]

include::{generated}/validity/structs/VkSurfaceProtectedCapabilitiesKHR.adoc[]
Expand Down
Loading

0 comments on commit 5a38e1f

Please sign in to comment.