Skip to content
Permalink
Browse files

Change log for September 15, 2019 Vulkan 1.1.123 spec update:

  * Update release number to 123.

Github Issues:

  * Add missing aspect mask descriptions to elink:VkImageAspectFlagBits
    (public pull request 1029).
  * Modify validity generator script to not check validity of ignored values
    in same-parent valid usage statements (public pull request 1030).
  * Make slink:VkDescriptorUpdateTemplateCreateInfo::pname:descriptorSetLayout
    `noautovalidity` in `vk.xml` (public pull request 1031).
  * Fix footnote markup in the <<vkGetDeviceProcAddr behavior>> table
    (public pull request 1034).

Internal Issues:

  * Require that <<interfaces-builtin-variables-sgs, code:SubgroupSize>> be
    a power of two (internal issue 1499).
  * Clarify that shaderFloat64 and shaderInt64 enable all storage classes,
    while shaderFloat16, shaderInt8, and shaderInt16 only enable
    non-interface storage classes. in the <<features-shaderFloat64>>,
    <<features-shaderInt64>>, and <<features-shaderInt16>> descriptions and
    for slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR (internal issue
    1582).
  * Fix broken asciidoctor conditional logic in the
    <<spirvenv-module-validation, Validation Rules within a Module>>
    section, and add style guide language to help avoid this problem in the
    future (internal issue 1808).
  * Modify VUID assignment script to use the first API include in a block as
    part of the VUID name rather than the last one, so the VUID is based on
    the promoted API name (internal issue 1809).
  * Cleanup string descriptions to consistently refer to "`null-terminated
    UTF-8`" strings (internal issue 1813).
  * Clarify the purpose of the
    slink:VkPhysicalDeviceLimits::ptext:maxDescriptorSet* limits (internal
    merge request 3357).
  * Fix the slink:VkPhysicalDeviceRayTracingPropertiesNV limits for
    pname:maxGeometryCount, pname:maxInstanceCount, and
    pname:maxTriangleCount in the <<limits-required, Required Limits>>
    section (internal issue 3372).
  * Update SPIR-V image op sign-matching rules in the
    <<spirvenv-module-validation, Validation Rules within a Module>>
    section, the <<formats-numericformat>> table, and the
    <<interfaces-resources-descset, Descriptor Set Interface>> section
    (internal spirv/SPIR-V issue 332).

New Extensions

  * `<<VK_KHR_shader_subgroup_extended_types>>`
  * `<<VK_GOOGLE_user_type>>`
  • Loading branch information...
oddhack committed Sep 15, 2019
1 parent 3fd6d60 commit c5261decf68cb2ef8cd934b8a3e4824bfde81cda
@@ -8,6 +8,60 @@ public pull requests that have been accepted.

-----------------------------------------------------

Change log for September 15, 2019 Vulkan 1.1.123 spec update:

* Update release number to 123.

Github Issues:

* Add missing aspect mask descriptions to elink:VkImageAspectFlagBits
(public pull request 1029).
* Modify validity generator script to not check validity of ignored values
in same-parent valid usage statements (public pull request 1030).
* Make slink:VkDescriptorUpdateTemplateCreateInfo::pname:descriptorSetLayout
`noautovalidity` in `vk.xml` (public pull request 1031).
* Fix footnote markup in the <<vkGetDeviceProcAddr behavior>> table
(public pull request 1034).

Internal Issues:

* Require that <<interfaces-builtin-variables-sgs, code:SubgroupSize>> be
a power of two (internal issue 1499).
* Clarify that shaderFloat64 and shaderInt64 enable all storage classes,
while shaderFloat16, shaderInt8, and shaderInt16 only enable
non-interface storage classes. in the <<features-shaderFloat64>>,
<<features-shaderInt64>>, and <<features-shaderInt16>> descriptions and
for slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR (internal issue
1582).
* Fix broken asciidoctor conditional logic in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section, and add style guide language to help avoid this problem in the
future (internal issue 1808).
* Modify VUID assignment script to use the first API include in a block as
part of the VUID name rather than the last one, so the VUID is based on
the promoted API name (internal issue 1809).
* Cleanup string descriptions to consistently refer to "`null-terminated
UTF-8`" strings (internal issue 1813).
* Clarify the purpose of the
slink:VkPhysicalDeviceLimits::ptext:maxDescriptorSet* limits (internal
merge request 3357).
* Fix the slink:VkPhysicalDeviceRayTracingPropertiesNV limits for
pname:maxGeometryCount, pname:maxInstanceCount, and
pname:maxTriangleCount in the <<limits-required, Required Limits>>
section (internal issue 3372).
* Update SPIR-V image op sign-matching rules in the
<<spirvenv-module-validation, Validation Rules within a Module>>
section, the <<formats-numericformat>> table, and the
<<interfaces-resources-descset, Descriptor Set Interface>> section
(internal spirv/SPIR-V issue 332).

New Extensions

* `<<VK_KHR_shader_subgroup_extended_types>>`
* `<<VK_GOOGLE_user_type>>`

-----------------------------------------------------

Change log for September 8, 2019 Vulkan 1.1.122 spec update:

* Update release number to 122.
@@ -119,7 +119,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 122
PATCHVERSION = 123
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
else
@@ -0,0 +1,35 @@
include::meta/VK_GOOGLE_user_type.txt[]

*Last Modified Date*::
2019-07-09
*IP Status*::
No known IP claims.
*Interactions and External Dependencies*::
- Requires the
{spirv}/GOOGLE/SPV_GOOGLE_user_type.asciidoc[`SPV_GOOGLE_user_type`]
SPIR-V extension.
*Contributors*::
- Kaye Mason, Google
- Hai Nguyen, Google

The `VK_GOOGLE_user_type` extension allows use of the `SPV_GOOGLE_user_type`
extension in SPIR-V shader modules.

=== New Enum Constants

None.

=== New Structures

None.

=== New SPIR-V Capabilities

None.

=== Issues

=== Version History

* Revision 1, 2019-09-07 (Kaye Mason)
- Initial draft
@@ -0,0 +1,59 @@
include::meta/VK_KHR_shader_subgroup_extended_types.txt[]

*Last Modified Date*::
2019-01-08
*IP Status*::
No known IP claims.
*Interactions and External Dependencies*::
None.
*Contributors*::
- Jeff Bolz, NVIDIA
- Jan-Harald Fredriksen, Arm
- Neil Henning, AMD
- Daniel Koch, NVIDIA
- Jeff Leger, Qualcomm
- Graeme Leese, Broadcom
- David Neto, Google
- Daniel Rakos, AMD

This extension enables the Non Uniform Group Operations in SPIR-V to support
8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and
vectors of these types.

=== New Object Types

None.

=== New Enum Constants

* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR

=== New Enums

None.

=== New Structures

* slink:VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR

=== New Functions

None.

=== New Built-In Variables

None.

=== New SPIR-V Capabilities

None.

=== Issues

None.

=== Version History

* Revision 1, 2019-01-08 (Neil Henning)
- Initial draft
@@ -466,6 +466,11 @@ The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
uses the `SPV_GOOGLE_hlsl_functionality1` SPIR-V extension.
endif::VK_GOOGLE_hlsl_functionality1[]

ifdef::VK_GOOGLE_user_type[]
The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
uses the `SPV_GOOGLE_user_type` SPIR-V extension.
endif::VK_GOOGLE_user_type[]

ifdef::VK_GOOGLE_decorate_string[]
The application can: pass a SPIR-V module to flink:vkCreateShaderModule that
uses the `SPV_GOOGLE_decorate_string` SPIR-V extension.
@@ -591,7 +596,8 @@ endif::VK_EXT_buffer_device_address[]
include at least one storage class.
** *SubgroupMemory*, *CrossWorkgroupMemory*, and *AtomicCounterMemory* are
ignored.
ifdef::VK_KHR_shader_float16_int8+!VK_KHR_8bit_storage[]
ifdef::VK_KHR_shader_float16_int8[]
ifndef::VK_KHR_8bit_storage[]
* Any code:OpVariable with the result type pointing to an 8-bit integer
object or an object containing an 8-bit integer element must: not have
one of the following as its code:Storage code:Class operand:
@@ -600,8 +606,10 @@ ifdef::VK_KHR_shader_float16_int8+!VK_KHR_8bit_storage[]
ifdef::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[]
** *StorageBuffer*
endif::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[]
endif::VK_KHR_shader_float16_int8+!VK_KHR_8bit_storage[]
ifdef::VK_KHR_shader_float16_int8+!VK_KHR_16bit_storage[]
endif::VK_KHR_8bit_storage[]
endif::VK_KHR_shader_float16_int8[]
ifdef::VK_KHR_shader_float16_int8[]
ifndef::VK_KHR_16bit_storage[]
* Any code:OpVariable with the result type pointing to a 16-bit
floating-point object or an object containing a 16-bit floating-point
element must: not have one of the following as its code:Storage
@@ -611,7 +619,8 @@ ifdef::VK_KHR_shader_float16_int8+!VK_KHR_16bit_storage[]
ifdef::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[]
** *StorageBuffer*
endif::VK_VERSION_1_1,VK_KHR_storage_buffer_storage_class[]
endif::VK_KHR_shader_float16_int8+!VK_KHR_16bit_storage[]
endif::VK_KHR_16bit_storage[]
endif::VK_KHR_shader_float16_int8[]
* Any code:OpVariable with an code:Initializer operand must: have one of
the following as its *Storage Class* operand:
** *Output*
@@ -621,11 +630,25 @@ endif::VK_KHR_shader_float16_int8+!VK_KHR_16bit_storage[]
entry points must: declare code:OriginUpperLeft.
* The code:PixelCenterInteger execution mode must: not be used.
Pixels are always centered at half-integer coordinates.
* Any variable in the code:UniformConstant storage class must: be typed as
either:
** code:OpTypeImage
** code:OpTypeSampler
** code:OpTypeSampledImage
** An array of one of these types.
* Images and Samplers
** code:OpTypeImage must: declare a scalar 32-bit float or 32-bit integer
type for the "`Sampled Type`".
(code:RelaxedPrecision can: be applied to a sampling instruction and to
the variable holding the result of a sampling instruction.)
** If the code:Sampled code:Type of an code:OpTypeImage declaration does
not match the numeric format of the corresponding resource in type, as
shown in the _SPIR-V Sampled Type_ column of the
<<formats-numericformat>> table, the values obtained by reading or
sampling from the image are undefined:.
** If the signedness of any read or sample operation does not match the
signedness of the corresponding resource then the values obtained are
undefined:.
** code:OpTypeImage must: have a "`Sampled`" operand of 1 (sampled image)
or 2 (storage image).
** If
@@ -739,6 +762,24 @@ ifdef::VK_VERSION_1_1[]
types.
** If the code:Float64 capability is enabled, 64-bit floating-point and
vector of 64-bit floating-point types are also permitted.
ifdef::VK_KHR_shader_subgroup_extended_types[]
** If the code:Int8 capability is enabled and the
<<features-subgroup-extended-types,shaderSubgroupExtendedTypes>>
feature is ename:VK_TRUE, 8-bit integer and vector of 8-bit integer
types are also permitted.
** If the code:Int16 capability is enabled and the
<<features-subgroup-extended-types,shaderSubgroupExtendedTypes>>
feature is ename:VK_TRUE, 16-bit integer and vector of 16-bit integer
types are also permitted.
** If the code:Int64 capability is enabled and the
<<features-subgroup-extended-types,shaderSubgroupExtendedTypes>>
feature is ename:VK_TRUE, 64-bit integer and vector of 64-bit integer
types are also permitted.
** If the code:Float16 capability is enabled and the
<<features-subgroup-extended-types,shaderSubgroupExtendedTypes>>
feature is ename:VK_TRUE, 16-bit floating-point and vector of 16-bit
floating-point types are also permitted.
endif::VK_KHR_shader_subgroup_extended_types[]
* The "`Id`" operand of code:OpGroupNonUniformBroadcast must: be the <id>
of a constant instruction.
* If code:OpGroupNonUniformBallotBitCount is used, the group operation
@@ -106,7 +106,7 @@ type of the data returned in slink:VkPerformanceValueINTEL::pname:data, are:
* ename:VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL specifies that
basetype:Bool32 data is returned in pname:data.valueBool.
* ename:VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL specifies that a pointer to
a NULL-terminated string is returned in pname:data.valueString.
a null-terminated UTF-8 string is returned in pname:data.valueString.
The pointer is valid for the lifetime of the pname:device parameter
passed to flink:vkGetPerformanceParameterINTEL.

@@ -123,7 +123,8 @@ include::{generated}/api/structs/VkPerformanceValueDataINTEL.txt[]
* pname:data.value64 represents 64-bit integer data.
* pname:data.valueFloat represents floating-point data.
* pname:data.valueBool represents basetype:Bool32 data.
* pname:data.valueString represents a pointer to a NULL-terminated string.
* pname:data.valueString represents a pointer to a null-terminated UTF-8
string.

The correct member of the union is determined by the associated
elink:VkPerformanceValueTypeINTEL value.
@@ -68,8 +68,8 @@ include::{generated}/api/structs/VkDisplayPropertiesKHR.txt[]
* pname:display is a handle that is used to refer to the display described
here.
This handle will be valid for the lifetime of the Vulkan instance.
* pname:displayName is a pointer to a NULL-terminated string containing
the name of the display.
* pname:displayName is a pointer to a null-terminated UTF-8 string
containing the name of the display.
Generally, this will be the name provided by the display's EDID.
It can: be `NULL` if no suitable name is available.
If not `NULL`, the memory it points to must: remain accessible as long
@@ -67,8 +67,12 @@ include::{generated}/api/structs/VkPipelineExecutablePropertiesKHR.txt[]
* pname:stages is a bitmask of elink:VkShaderStageFlagBits indicating
which shader stages (if any) were principally used as inputs to compile
this pipeline executable.
* pname:name is a short human readable name for this executable.
* pname:description is a human readable description for this executable.
* pname:name is an array of ename:VK_MAX_DESCRIPTION_SIZE code:char
containing a null-terminated UTF-8 string which is a short human
readable name for this executable.
* pname:description is an array of ename:VK_MAX_DESCRIPTION_SIZE code:char
containing a null-terminated UTF-8 string which is a human readable
description for this executable.
* pname:subgroupSize is the subgroup size with which this executable is
dispatched.

@@ -173,8 +177,12 @@ include::{generated}/api/structs/VkPipelineExecutableStatisticKHR.txt[]

* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:name is a short human readable name for this statistic.
* pname:description is a human readable description for this statistic.
* pname:name is an array of ename:VK_MAX_DESCRIPTION_SIZE code:char
containing a null-terminated UTF-8 string which is a short human
readable name for this statistic.
* pname:description is an array of ename:VK_MAX_DESCRIPTION_SIZE code:char
containing a null-terminated UTF-8 string which is a human readable
description for this statistic.
* pname:format is a elink:VkPipelineExecutableStatisticFormatKHR value
specifying the format of the data found in pname:value.
* pname:value is the value of this statistic.
@@ -298,10 +306,12 @@ include::{generated}/api/structs/VkPipelineExecutableInternalRepresentationKHR.t

* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:name is a short human readable name for this internal
representation.
* pname:description is a human readable description for this internal
representation.
* pname:name is an array of ename:VK_MAX_DESCRIPTION_SIZE code:char
containing a null-terminated UTF-8 string which is a short human
readable name for this internal representation.
* pname:description is an array of ename:VK_MAX_DESCRIPTION_SIZE code:char
containing a null-terminated UTF-8 string which is a human readable
description for this internal representation.
* pname:isText specifies whether the returned data is text or opaque data.
If pname:isText is ename:VK_TRUE then the data returned in pname:pData
is text and is guaranteed to be a null-terminated UTF-8 string.
@@ -89,10 +89,11 @@ include::{generated}/api/structs/VkPhysicalDeviceProperties.txt[]
devices available from the vendor.
* pname:deviceType is a elink:VkPhysicalDeviceType specifying the type of
device.
* pname:deviceName is a null-terminated UTF-8 string containing the name
of the device.
* pname:deviceName is an array of ename:VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
code:char containing a null-terminated UTF-8 string which is the name of
the device.
* pname:pipelineCacheUUID is an array of ename:VK_UUID_SIZE code:uint8_t
values that represent a universally unique identifier for the device.
values representing a universally unique identifier for the device.
* pname:limits is the slink:VkPhysicalDeviceLimits structure specifying
device-specific limits of the physical device.
See <<limits,Limits>> for details.
@@ -301,12 +302,12 @@ endif::VK_KHR_external_memory_capabilities[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:deviceUUID is an array of ename:VK_UUID_SIZE code:uint8_t values
that represent a universally unique identifier for the device.
representing a universally unique identifier for the device.
* pname:driverUUID is an array of ename:VK_UUID_SIZE code:uint8_t values
that represent a universally unique identifier for the driver build in
use by the device.
representing a universally unique identifier for the driver build in use
by the device.
* pname:deviceLUID is an array of ename:VK_LUID_SIZE code:uint8_t values
that represent a locally unique identifier for the device.
representing a locally unique identifier for the device.
* pname:deviceNodeMask is a code:uint32_t bitfield identifying the node
within a linked device adapter corresponding to the device.
* pname:deviceLUIDValid is a boolean value that will be ename:VK_TRUE if
@@ -403,9 +404,11 @@ include::{generated}/api/structs/VkPhysicalDeviceDriverPropertiesKHR.txt[]
* pname:pNext is `NULL` or a pointer to an extension specific structure.
* pname:driverID is a unique identifier for the driver of the physical
device.
* pname:driverName is a null-terminated UTF-8 string containing the name
of the driver.
* pname:driverInfo is a null-terminated UTF-8 string containing additional
* pname:driverName is an array of ename:VK_MAX_DRIVER_NAME_SIZE_KHR
code:char containing a null-terminated UTF-8 string which is the name of
the driver.
* pname:driverInfo is an array of ename:VK_MAX_DRIVER_INFO_SIZE_KHR
code:char containing a null-terminated UTF-8 string with additional
information about the driver.
* pname:conformanceVersion is the version of the Vulkan conformance test
this driver is conformant against (see slink:VkConformanceVersionKHR).

0 comments on commit c5261de

Please sign in to comment.
You can’t perform that action at this time.