Skip to content
Permalink
Browse files

Change log for March 31, 2017 Vulkan 1.0.46 spec update:

  * Bump API patch number and header version number to 46 for this update.

Github Issues:

  * Add language to the <<fundamentals-validusage-enums, Valid Usage for
    Enumerated Types>> section allowing values to be returned from Vulkan
    that are not present in extensions explicitly enabled by the
    application, similar to existing language for bit flags in the
    <<fundamentals-validusage-flags, Valid Usage for Flags>> section (public
    issue 442).
  * *Important*: run `gem update --pre asciidoctor-pdf` before trying to
    build this version of the spec - 1.5.0.alpha15 is required for this
    change. Removes the monkey patch currently used to draw valid usage
    blocks across multiple pages which had numerous issues. A fixed version
    was incorporated into Asciidoctor-PDF for the latest release, so the
    monkey patch or any variant thereof is no longer required (public issue
    465).

Internal Issues:

  * Add ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
    to `VK_EXT_debug_report` extension
  * Fix ptext:pNext member of
    slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT to be a non-const
    pointer. Properties structures return values, so the chain should be
    non-const.
  * Explicitly remove gl_NumSamples from the `GL_KHR_vulkan_glsl` extension,
    against 1.0 (internal issue 612).
  * Add Valid Usage statements requiring that each structure type valid in a
    ptext:pNext chain must: not appear more than once in a chain (internal
    issue 752).
  * Use ename:VK_USE_PLATFORM_WIN32_KHX in the
    `VK_KHX_external_memory_win32` extension, rather than etext:_KHR
    (internal issue 754).

New Extensions:

  * `VK_KHR_incremental_present`
  • Loading branch information...
oddhack committed Mar 31, 2017
1 parent e8cbffb commit f985a50c1f0b6f37c706db32d70da85bc1e2d78f
@@ -8,6 +8,49 @@ public issues.

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

Change log for March 31, 2017 Vulkan 1.0.46 spec update:

* Bump API patch number and header version number to 46 for this update.

Github Issues:

* Add language to the <<fundamentals-validusage-enums, Valid Usage for
Enumerated Types>> section allowing values to be returned from Vulkan
that are not present in extensions explicitly enabled by the
application, similar to existing language for bit flags in the
<<fundamentals-validusage-flags, Valid Usage for Flags>> section (public
issue 442).
* *Important*: run `gem update --pre asciidoctor-pdf` before trying to
build this version of the spec - 1.5.0.alpha15 is required for this
change. Removes the monkey patch currently used to draw valid usage
blocks across multiple pages which had numerous issues. A fixed version
was incorporated into Asciidoctor-PDF for the latest release, so the
monkey patch or any variant thereof is no longer required (public issue
465).

Internal Issues:

* Add ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
to `VK_EXT_debug_report` extension
* Fix ptext:pNext member of
slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT to be a non-const
pointer. Properties structures return values, so the chain should be
non-const.
* Explicitly remove gl_NumSamples from the `GL_KHR_vulkan_glsl` extension,
against 1.0 (internal issue 612).
* Add Valid Usage statements requiring that each structure type valid in a
ptext:pNext chain must: not appear more than once in a chain (internal
issue 752).
* Use ename:VK_USE_PLATFORM_WIN32_KHX in the
`VK_KHX_external_memory_win32` extension, rather than etext:_KHR
(internal issue 754).

New Extensions:

* `VK_KHR_incremental_present`

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

Change log for March 24, 2017 Vulkan 1.0.45 spec update:

* Bump API patch number and header version number to 45 for this update.
@@ -330,10 +373,10 @@ Other Issues:
(ename:VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME).
* Add new +VK_EXT_SMPTE_2086_metadata+ extension.
* In the <<platformCreateSurface_xlib,Xlib Surface>> section of the
+VK_KHR_xlib_surface+ specification, add language warning users that
`VK_KHR_xlib_surface` specification, add language warning users that
they always need to call code:XinitThreads.
* Use the term "presentable image" (rather than "swapchain image")
consistently in +VK_KHR_swapchain+ and related extensions, and add a
consistently in `VK_KHR_swapchain` and related extensions, and add a
glossary term defining it.
* Relocate the valid usage for samples of
flink:vkGetPhysicalDeviceSparseImageFormatProperties2KHR::pname:pFormatInfo
@@ -877,7 +920,7 @@ Change log for September 6, 2016 Vulkan 1.0.26 spec update:

Github Issues:

* Bring sample code in the +VK_KHR_surface+ and +VK_KHR_swapchain+
* Bring sample code in the `VK_KHR_surface` and `VK_KHR_swapchain`
extension summary appendices up to date, and note they will be replaced
with pointers to the LunarG SDK examples in the future (public issue
279).
@@ -33,8 +33,8 @@ Status

Version

Last Modified Date: 13-Feb-2017
Revision: 36
Last Modified Date: 26-Mar-2017
Revision: 37

Number

@@ -67,7 +67,7 @@ Overview
* shared and packed block layouts
* the already deprecated texturing functions (e.g., texture2D())
* compatibility-mode-only features
* DepthRangeParameters
* gl_DepthRangeParameters and gl_NumSamples
* gl_VertexID and gl_InstanceID

The following features are added:
@@ -1125,6 +1125,8 @@ Changes to Chapter 7 of the OpenGL Shading Language Specification

"const int gl_MaxInputAttachments = 1;"

Remove section 7.4 Built-In Uniform State (there is none in Vulkan).

Changes to Chapter 8 of the OpenGL Shading Language Specification

Add the following ES language to desktop versions of the specification:
@@ -1355,6 +1357,7 @@ Revision History

Rev. Date Author Changes
---- ----------- ------- --------------------------------------------
37 26-Mar-2017 JohnK Fix glslang issue #369: remove gl_NumSamples.
36 13-Feb-2017 JohnK Fix public bug 428: allow anonymous
push_constant blocks.
35 07-Feb-2017 JohnK Add 'offset' and 'align' to all versions
@@ -86,7 +86,7 @@ VERBOSE =
# $(EXTENSIONS))
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
SPECREVISION = 1.0.45
SPECREVISION = 1.0.46
# Spell out RFC2822 format as not all date commands support -R
SPECDATE = $(shell echo `date -u "+%a, %d %b %Y %T %z"`)

@@ -123,11 +123,7 @@ ADOCHTMLEXTS = -r $(CURDIR)/config/katex_replace.rb
KATEXDIR = katex
ADOCHTMLOPTS = $(ADOCHTMLEXTS) -a katexpath=$(KATEXDIR)

# The monkey patch for asciidoctor-pdf fixes issue #259
# (https://github.com/asciidoctor/asciidoctor-pdf/issues/259).
# I've submitted a pull request to fix it, once it goes into a gem release, we'll remove this.
ADOCPDFEXTS = -r asciidoctor-pdf -r asciidoctor-mathematical \
-r $(CURDIR)/config/asciidoctor-pdf-monkeypatch.rb --trace
ADOCPDFEXTS = -r asciidoctor-pdf -r asciidoctor-mathematical
ADOCPDFOPTS = $(ADOCPDFEXTS) -a mathematical-format=svg \
-a imagesoutdir=$(PDFMATHDIR)

@@ -353,15 +353,24 @@ parts you don't use) completely before trying to install.

* Asciidoctor (asciidoctor, version: 1.5.5)
* Coderay (coderay, version 1.1.1)
* Asciidoctor PDF (asciidoctor-pdf, version: 1.5.0.alpha13)
* Asciidoctor PDF (asciidoctor-pdf, version: 1.5.0.alpha15)
* Asciidoctor Mathematical (asciidoctor-mathematical, version 0.2.2)
* https://github.com/asciidoctor/asciidoctor-mathematical#dependencies[Dependencies
for asciidoctor-mathematical] (There are a lot of these!)
* KaTeX distribution (version 0.7.0 from https://github.com/Khan/KaTeX .
This is cached under `doc/specs/vulkan/katex/`, and need not be
installed from github.

Only the `asciidoctor` and `coderay` gems is needed if you don't intend to
.Note
[NOTE]
====
Asciidoctor-pdf versions before `1.5.0.alpha15` have issues with multi-page
valid usage blocks, in that the background only renders for the first page.
`alpha.15` fixes this issue (as well as a few others); do not use prior
versions.
====

Only the `asciidoctor` and `coderay` gems are needed if you don't intend to
build PDF versions of the spec and supporting documents.

[NOTE]
@@ -172,3 +172,6 @@ We should probably add some.
* Revision 5, 2017-01-31 (Baldur Karlsson)
- Moved definition of ename:VkDebugReportObjectTypeEXT from debug marker
chapter

* Revision 6, 2017-01-31 (Baldur Karlsson)
- Added VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
@@ -0,0 +1,115 @@
// Copyright (c) 2014-2017 The Khronos Group Inc.
// Copyright notice at https://www.khronos.org/registry/speccopyright.html

[[VK_KHR_incremental_present]]
== VK_KHR_incremental_present

*Name String*::
+VK_KHR_incremental_present+
*Extension Type*::
Device extension
*Registered Extension Number*::
85
*Last Modified Date*::
2016-11-02
*Revision*::
1
*IP Status*::
No known IP claims.
*Dependencies*::
- This extension is written against version 1.0 of the Vulkan API.
- Requires +VK_KHR_swapchain+ (revision 68).
*Contributors*::
- Ian Elliott, Google
- Jesse Hall, Google
- Alon Or-bach, Samsung
- James Jones, NVIDIA
- Daniel Rakos, AMD
- Ray Smith, ARM
- Mika Isojarvi, Google
- Jeff Juliano, NVIDIA
- Jeff Bolz, NVIDIA
*Contacts*::
- Ian Elliott, Google

This device extension extends slink:vkQueuePresentKHR, from the
+VK_KHR_swapchain+ extension, allowing an application to specify a list of
rectangular, modified regions of each image to present.
This should be used in situations where an application is only changing a
small portion of the presentable images within a swapchain, since it enables
the presentation engine to avoid wasting time presenting parts of the
surface that haven't changed.

This extension is leveraged from the +EGL_KHR_swap_buffers_with_damage+
extension.

=== New Object Types

None.

=== New Enum Constants

* Extending ename:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR

=== New Enums

None.

=== New Structures

* slink:VkRectLayerKHR
* slink:VkPresentRegionKHR
* slink:VkPresentRegionsKHR

=== New Functions

None.

=== Examples

None.

=== Issues

1) How should we handle steroescopic-3D swapchains? We need to add a layer
for each rectangle.
One approach is to create another struct that contains the slink:VkRect2D
plus layer, and have slink:VkPresentRegionsKHR point to an array of that
struct.
Another approach is to have two parallel arrays, pRectangles and pLayers,
where pRectangles[i] and pLayers[i] must be used together.
Which approach should we use, and if the array of a new structure, what
should that be called?

*RESOLVED*: Create a new structure, which is a slink:VkRect2D plus a layer,
and will be called slink:VkRectLayerKHR.

2) Where is the origin of the slink:VkRectLayerKHR?

*RESOLVED*: The upper left corner of the presentable image(s) of the
swapchain, per the definition of framebuffer coordinates.

3) Does the rectangular region, slink:VkRectLayerKHR, specify pixels of the
swapchain's image(s), or of the surface?

*RESOLVED*: Of the image(s).
Some presentation engines may scale the pixels of a swapchain's image(s) to
the size of the surface.
The size of the swapchain's image(s) will be consistent, where the size of
the surface may vary over time.

4) What if all of the rectangles for a given swapchain contain a width
and/or height of zero?

*RESOLVED*: The application is indicating that no pixels changed since the
last present.
The presentation engine may use such a hint and not update any pixels for
the swapchain.
However, all other semantics of flink:vkQueuePresentKHR must still be
honored, including waiting for semaphores to signal.

=== Version History

* Revision 1, 2016-11-02 (Ian Elliott)
- Internal revisions
@@ -82,6 +82,10 @@ ifdef::VK_KHR_get_physical_device_properties2[]
include::VK_KHR_get_physical_device_properties2.txt[]
endif::VK_KHR_get_physical_device_properties2[]

ifdef::VK_KHR_incremental_present[]
include::VK_KHR_incremental_present.txt[]
endif::VK_KHR_incremental_present[]

ifdef::VK_KHR_maintenance1[]
include::VK_KHR_maintenance1.txt[]
endif::VK_KHR_maintenance1[]
@@ -292,7 +296,7 @@ endif::VK_IMG_filter_cubic[]
// :leveloffset: 1


// == MoltenVK +MVK+ Vendor Extensions
// == MoltenVK `MVK` Vendor Extensions
//
// :leveloffset: 2

@@ -195,6 +195,10 @@ include::../api/enums/VkDebugReportObjectTypeEXT.txt[]
sname:VkObjectTableNVX.
* ename:VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT is a
sname:VkIndirectCommandsLayoutNVX.
ifdef::VK_KHR_descriptor_update_template[]
* ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT is
a sname:VkDescriptorUpdateTemplateKHR.
endif::VK_KHR_descriptor_update_template[]

[NOTE]
.Note

0 comments on commit f985a50

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