Skip to content
Permalink
Browse files

Change log for March 19, 2019 Vulkan 1.1.105 spec update (GDC edition):

  * Update release number to 105.

Public Issues:

  * Fix contractions and other markup issues (public pull request 935).

New Extensions:

  * Google Games Platform
  ** New `ggp` platform and associated header file `vulkan_ggp.h`
  ** `VK_GGP_frame_token`
  ** `VK_GGP_stream_descriptor_surface`
  • Loading branch information...
oddhack committed Mar 19, 2019
1 parent f4d8a49 commit 0aca7bb22e616fe8f07a58c2e2c8e8c91ccaf5a2
@@ -8,6 +8,23 @@ public pull requests that have been accepted.

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

Change log for March 19, 2019 Vulkan 1.1.105 spec update (GDC edition):

* Update release number to 105.

Public Issues:

* Fix contractions and other markup issues (public pull request 935).

New Extensions:

* Google Games Platform
** New `ggp` platform and associated header file `vulkan_ggp.h`
** `VK_GGP_frame_token`
** `VK_GGP_stream_descriptor_surface`

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

Change log for March 18, 2019 Vulkan 1.1.104 spec update:

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

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 104
PATCHVERSION = 105
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
else
@@ -0,0 +1,48 @@
// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/

include::meta/VK_GGP_frame_token.txt[]

*Last Modified Date*::
2019-01-28
*IP Status*::
No known IP claims.
*Contributors*::
- Jean-Francois Roy, Google
- Richard O'Grady, Google

This extension allows an application that uses the `<<VK_KHR_swapchain>>`
extension in combination with a Google Games Platform surface provided by
the `<<VK_GGP_stream_descriptor_surface>>` extension to associate a Google
Games Platform frame token with a present operation.

=== New Object Types

None.

=== New Enum Constants

* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP

=== New Enums

None.

=== New Structures

* slink:VkPresentFrameTokenGGP

=== New Functions

None.

=== Issues

None.

=== Version History

* Revision 1, 2018-11-26 (Jean-Francois Roy)
- Initial revision.
@@ -0,0 +1,61 @@
// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/

include::meta/VK_GGP_stream_descriptor_surface.txt[]

*Last Modified Date*::
2019-01-28
*IP Status*::
No known IP claims.
*Contributors*::
- Jean-Francois Roy, Google
- Brad Grantham, Google
- Connor Smith, Google
- Cort Stratton, Google
- Hai Nguyen, Google
- Ian Elliott, Google
- Jesse Hall, Google
- Jim Ray, Google
- Katherine Wu, Google
- Kaye Mason, Google
- Kuangye Guo, Google
- Mark Segal, Google
- Nicholas Vining, Google
- Paul Lalonde, Google
- Richard O'Grady, Google

The `VK_GGP_stream_descriptor_surface` extension is an instance extension.
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
the `<<VK_KHR_surface>>` extension) that refers to a Google Games Platform
code:GgpStreamDescriptor.

=== New Object Types

None.

=== New Enum Constants

* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP

=== New Enums

None.

=== New Structures

* slink:VkStreamDescriptorSurfaceCreateInfoGGP

=== New Functions

* flink:vkCreateStreamDescriptorSurfaceGGP

=== Issues

None.

=== Version History

* Revision 1, 2018-11-26 (Jean-Francois Roy)
- Initial revision.
@@ -275,6 +275,11 @@ ifdef::VK_EXT_acquire_xlib_display[]
| `<<VK_EXT_acquire_xlib_display>>` | X11 XRAndR | `vulkan_xlib_xrandr.h` | `<X11/Xlib.h>`,
`<X11/extensions{wbro}/Xrandr.h>` | dname:VK_USE_PLATFORM_XLIB_XRANDR_EXT
endif::VK_EXT_acquire_xlib_display[]
ifdef::VK_GGP_stream_descriptor_surface[]
| `<<VK_GGP_stream_descriptor_surface>>`,
`<<VK_GGP_frame_token>>`
| Google Games Platform | `vulkan_ggp.h` | <ggp_c/vulkan_types.h> | dname:VK_USE_PLATFORM_GGP
endif::VK_GGP_stream_descriptor_surface[]
ifdef::VK_MVK_ios_surface[]
| `<<VK_MVK_ios_surface>>` | iOS | `vulkan_ios.h` | None | dname:VK_USE_PLATFORM_IOS_MVK
endif::VK_MVK_ios_surface[]
@@ -0,0 +1,28 @@
// Copyright (c) 2015-2019 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/

[open,refpage='VkPresentFrameTokenGGP',desc='The Google Games Platform frame token',type='structs']
--

When the `<<VK_GGP_frame_token>>` extension is enabled, a Google Games
Platform frame token can: be specified when presenting an image to a
swapchain by including the sname:VkPresentFrameTokenGGP structure in the
pname:pNext chain of the sname:VkPresentInfoKHR structure.

The sname:VkPresentFrameTokenGGP structure is defined as:

include::../api/structs/VkPresentFrameTokenGGP.txt[]

* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:frameToken is the Google Games Platform frame token.

.Valid Usage
****
* [[VUID-VkPresentFrameTokenGGP-frameToken-02680]]
pname:frameToken must: be a valid code:GgpFrameToken
****

include::../validity/structs/VkPresentFrameTokenGGP.txt[]
--
@@ -0,0 +1,66 @@
// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/

[[platformCreateSurface_streamdescriptor,platformCreateSurface_streamdescriptor]]

=== Google Games Platform

[open,refpage='vkCreateStreamDescriptorSurfaceGGP',desc='Create a slink:VkSurfaceKHR object for a Google Games Platform stream',type='protos']
--

To create a sname:VkSurfaceKHR object for a Google Games Platform stream
descriptor, call:

include::../../api/protos/vkCreateStreamDescriptorSurfaceGGP.txt[]

* pname:instance is the instance to associate with the surface.
* pname:pCreateInfo is a pointer to an instance of the
sname:VkStreamDescriptorSurfaceCreateInfoGGP structure containing
parameters that affect the creation of the surface object.
* pname:pAllocator is the allocator used for host memory allocated for the
surface object when there is no more specific allocator available (see
<<memory-allocation,Memory Allocation>>).
* pname:pSurface points to a slink:VkSurfaceKHR handle in which the
created surface object is returned.

include::../../validity/protos/vkCreateStreamDescriptorSurfaceGGP.txt[]
--

[open,refpage='VkStreamDescriptorSurfaceCreateInfoGGP',desc='Structure specifying parameters of a newly created Google Games Platform stream surface object',type='structs']
--

The sname:VkStreamDescriptorSurfaceCreateInfoGGP structure is defined as:

include::../../api/structs/VkStreamDescriptorSurfaceCreateInfoGGP.txt[]

* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:flags is reserved for future use.
* pname:streamDescriptor is a code:GgpStreamDescriptor referring to the
GGP stream descriptor to associate with the surface.

.Valid Usage
****
* [[VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681]]
pname:streamDescriptor must: be a valid code:GgpStreamDescriptor
****

include::../../validity/structs/VkStreamDescriptorSurfaceCreateInfoGGP.txt[]
--

On Google Games Platform, the surface extents are dynamic.
The pname:minImageExtent will never be greater than 1080p and the
pname:maxImageExtent will never be less than 1080p.
The pname:currentExtent will reflect the current optimal resolution.

ifdef::VK_KHR_swapchain[]
Applications are expected to choose an appropriate size for the swapchain’s
pname:imageExtent, within the bounds of the surface.
Using the surface's pname:currentExtent will offer the best performance and
quality.
When a swapchain's pname:imageExtent does not match the surface's
pname:currentExtent, the presentable images are scaled to the surface's
dimensions during presentation if possible and ename:VK_SUBOPTIMAL_KHR is
returned, otherwise presentation fails with ename:VK_ERROR_OUT_OF_DATE_KHR.
endif::VK_KHR_swapchain[]
@@ -0,0 +1,13 @@
// Copyright (c) 2014-2019 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/

[[platformQuerySupport_streamdescriptor,platformQuerySupport_streamdescriptor]]

=== Google Games Platform

On Google Games Platform, all physical devices and queue families with the
ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT capabilities must:
be capable of presentation with any Google Games Platform stream descriptor.
As a result, there is no query specific to Google Games Platform for these
capabilities.
@@ -114,6 +114,10 @@ ifdef::VK_FUCHSIA_imagepipe_surface[]
include::../VK_FUCHSIA_imagepipe_surface/platformCreateSurface_imagepipe.txt[]
endif::VK_FUCHSIA_imagepipe_surface[]

ifdef::VK_GGP_stream_descriptor_surface[]
include::../VK_GGP_stream_descriptor_surface/platformCreateSurface_streamdescriptor.txt[]
endif::VK_GGP_stream_descriptor_surface[]

ifdef::VK_MVK_ios_surface[]
include::../VK_MVK_ios_surface/platformCreateSurface_ios.txt[]
endif::VK_MVK_ios_surface[]
@@ -246,6 +250,10 @@ ifdef::VK_FUCHSIA_imagepipe_surface[]
include::../VK_FUCHSIA_imagepipe_surface/platformQuerySupport_imagepipe.txt[]
endif::VK_FUCHSIA_imagepipe_surface[]

ifdef::VK_GGP_stream_descriptor_surface[]
include::../VK_GGP_stream_descriptor_surface/platformQuerySupport_streamdescriptor.txt[]
endif::VK_GGP_stream_descriptor_surface[]

ifdef::VK_MVK_ios_surface[]
include::../VK_MVK_ios_surface/platformQuerySupport_ios.txt[]
endif::VK_MVK_ios_surface[]
@@ -1350,6 +1350,10 @@ ifdef::VK_GOOGLE_display_timing[]
include::../VK_GOOGLE_display_timing/PresentTimeInfo.txt[]
endif::VK_GOOGLE_display_timing[]

ifdef::VK_GGP_frame_token[]
include::../VK_GGP_frame_token.txt[]
endif::VK_GGP_frame_token[]

fname:vkQueuePresentKHR, releases the acquisition of the images referenced
by pname:imageIndices.
The queue family corresponding to the queue fname:vkQueuePresentKHR is
@@ -2164,8 +2164,8 @@ ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
If a call to fname:vkAllocateDescriptorSets would cause the total number of
descriptor sets allocated from the pool to exceed the value of
slink:VkDescriptorPoolCreateInfo::pname:maxSets used to create
pname:pAllocateInfo\->pname:descriptorPool, then the allocation may: fail due
to lack of space in the descriptor pool.
pname:pAllocateInfo\->pname:descriptorPool, then the allocation may: fail
due to lack of space in the descriptor pool.
Similarly, the allocation may: fail due to lack of space if the call to
fname:vkAllocateDescriptorSets would cause the number of any given
descriptor type to exceed the sum of all the pname:descriptorCount members
@@ -4008,8 +4008,8 @@ code:PhysicalStorageBufferEXT storage class.
For example, this value can: be stored in a uniform buffer, and the shader
can: read the value from the uniform buffer and use it to do a dependent
read/write to this buffer.
A value of zero is reserved as a "`null`" pointer and must: not be returned as
a valid buffer device address.
A value of zero is reserved as a "`null`" pointer and must: not be returned
as a valid buffer device address.
All loads, stores, and atomics in a shader through
code:PhysicalStorageBufferEXT pointers must: access addresses in the address
range of some buffer.
@@ -557,9 +557,9 @@ guarantees.

A difference in the patch version indicates that a set of bug fixes or
clarifications have been made to the Specification.
Informative enums returned by Vulkan commands that will not affect the runtime
behavior of a valid application may be added in a patch version (e.g.
elink:VkVendorId).
Informative enums returned by Vulkan commands that will not affect the
runtime behavior of a valid application may be added in a patch version
(e.g. elink:VkVendorId).

The specification's patch version is strictly increasing for a given major
version of the specification; any change to a specification as described
@@ -77,4 +77,10 @@
#include "vulkan_xlib_xrandr.h"
#endif


#ifdef VK_USE_PLATFORM_GGP
#include <ggp_c/vulkan_types.h>
#include "vulkan_ggp.h"
#endif

#endif // VULKAN_H_
@@ -244,6 +244,8 @@ def makeGenOpts(args):
'VK_ANDROID_external_memory_android_hardware_buffer'
], commonSuppressExtensions ],
[ 'vulkan_fuchsia.h', [ 'VK_FUCHSIA_imagepipe_surface'], commonSuppressExtensions ],
[ 'vulkan_ggp.h', [ 'VK_GGP_stream_descriptor_surface',
'VK_GGP_frame_token' ], commonSuppressExtensions ],
[ 'vulkan_ios.h', [ 'VK_MVK_ios_surface' ], commonSuppressExtensions ],
[ 'vulkan_macos.h', [ 'VK_MVK_macos_surface' ], commonSuppressExtensions ],
[ 'vulkan_vi.h', [ 'VK_NN_vi_surface' ], commonSuppressExtensions ],
@@ -1,2 +1,2 @@
# The value to start tagging VU statements at, unless overridden by -nextvu
startVUID = 2680
startVUID = 2682
@@ -44,6 +44,7 @@ SRC = ../src
PLATFORM_HEADERS = \
$(VULKAN)/vulkan_android.h \
$(VULKAN)/vulkan_fuchsia.h \
$(VULKAN)/vulkan_ggp.h \
$(VULKAN)/vulkan_ios.h \
$(VULKAN)/vulkan_macos.h \
$(VULKAN)/vulkan_vi.h \

0 comments on commit 0aca7bb

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