2016-07-01 02:34:54 +00:00
|
|
|
#!/usr/bin/python3
|
2016-09-17 04:22:17 +00:00
|
|
|
#
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
# Copyright (c) 2016-2017 The Khronos Group Inc.
|
2016-09-17 04:22:17 +00:00
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
2016-07-01 02:34:54 +00:00
|
|
|
|
|
|
|
import time
|
|
|
|
from datetime import timedelta, date
|
|
|
|
|
|
|
|
# This script builds a full release package including XHTML and PDF
|
2016-08-28 10:47:19 +00:00
|
|
|
# versions of the specification, including an optional list of
|
|
|
|
# extensions. Other files in the release directory are removed,
|
|
|
|
#including man pages, XHTML chunked, HTML, validity output, etc.
|
|
|
|
|
|
|
|
# The current branch must be fully committed and up to date when the
|
|
|
|
# script is run, with no outstanding un-added / un-committed files.
|
|
|
|
# After completing the build, suggestions for creating tags are made.
|
|
|
|
|
2016-11-12 11:23:34 +00:00
|
|
|
# Return the Vulkan release number, used for tags
|
|
|
|
def releaseNum():
|
|
|
|
return '$REVISION'
|
|
|
|
|
2016-07-01 02:34:54 +00:00
|
|
|
# Return a date for the current, or upcoming if not already, Friday,
|
|
|
|
# which is when releases happen
|
|
|
|
def buildOnFriday():
|
|
|
|
today = date.today()
|
|
|
|
friday = today + timedelta((4 - today.weekday()) % 7)
|
|
|
|
return friday
|
|
|
|
|
2016-08-28 10:47:19 +00:00
|
|
|
# label = textual label to use for target being generated
|
|
|
|
# extensions = list of extension names to include
|
2016-07-01 02:34:54 +00:00
|
|
|
# outdir = directory to generate specs in
|
2016-08-28 10:47:19 +00:00
|
|
|
# apititle = extra title to apply to the specification
|
2016-07-01 02:34:54 +00:00
|
|
|
# xmlDir = directory containing registry XML
|
|
|
|
# xmlTargets = targets to build in src/spec/
|
|
|
|
# specDir = directory containing spec source & Makefile
|
|
|
|
# specTargets = targets to build in doc/specs/vulkan/
|
|
|
|
# miscSrc = path to copy misc files from, if non-None
|
|
|
|
# miscDst = path to copy misc files to, if non-None
|
2016-10-01 08:36:38 +00:00
|
|
|
# needRefSources = True if ref pages must be extracted from the spec sources
|
2016-08-28 10:47:19 +00:00
|
|
|
def buildRelease(label, extensions, outdir,
|
|
|
|
apititle,
|
2016-07-01 02:34:54 +00:00
|
|
|
xmlDir, xmlTargets,
|
|
|
|
specDir, specTargets,
|
2016-10-01 08:36:38 +00:00
|
|
|
miscSrc = None, miscDst = None, needRefSources = False):
|
Change log for May 20, 2017 Vulkan 1.0.50 spec update:
* Bump API patch number and header version number to 50 for this update.
Github Issues:
* Fix numerous minor issues with the VK_EXT_debug_report extension (public
issues 478, 483, 486, 489, 490).
Internal Issues:
* Update flink:vkAllocateDescriptorSets to specify conditions under which
to return ename:VK_ERROR_FRAGMENTED_POOL or
ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
out-of-host/out-of-device-memory, and improve the
<<fundamentals-errorcodes, description of those errors (internal issue
654).
* Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
a single semaphore, and how to deal with that when multiple physical
devices in a logical device need to wait on it (internal issue 730).
* Improve description of pname:pNext chains of
slink:VkPhysicalDeviceImageFormatInfo2KHR and
slink:VkImageFormatProperties2KHR (internal issue 814).
* Clean up math markup issues in the <<textures, Image Operations>>
chapter (internal issue 818).
* Update validusage target to use more robust code for preprocessing, by
making direct use of Asciidoctor's preprocessor. Added uniqueItems check
to JSON vu schema and add clean_validusage target (internal issue 826).
* Update style guide to prohibit writing non-self-contained (on a single
bullet point) Valid Usage statements, and modify offending Valid Usage
statements in the Specification to match, to assist with automatic
extraction for the validation layers (internal issue 828).
* Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
of the `VK_EXT_validation_flags` extension, to selectively disable
shader validation.
* Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
* Modify reflow.py script to place VUID tag anchors standalone on a line
following their corresponding bullet point, and reflow the spec text
accordingly (this had been pending since the initial tag deployment).
New Extensions:
* `VK_AMD_texture_gather_bias_lod`
2017-05-21 00:00:50 +00:00
|
|
|
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** VK_KHX_device_group
** VK_KHX_device_group_creation
** VK_KHX_external_memory
** VK_KHX_external_memory_capabilities
** VK_KHX_external_memory_fd
** VK_KHX_external_memory_win32
** VK_KHX_external_semaphore
** VK_KHX_external_semaphore_capabilities
** VK_KHX_external_semaphore_fd
** VK_KHX_external_semaphore_win32
** VK_KHX_multiview
** VK_KHX_win32_keyed_mutex
** VK_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
print('echo Info: Generating target=' + label,
|
2016-07-01 02:34:54 +00:00
|
|
|
'outdir=' + outdir)
|
2016-08-28 10:47:19 +00:00
|
|
|
|
|
|
|
outarg = 'OUTDIR=' + outdir
|
|
|
|
|
|
|
|
if (extensions != None and len(extensions) > 0):
|
|
|
|
extarg = 'EXTENSIONS="' + ' '.join(extensions) + '"'
|
|
|
|
else:
|
|
|
|
extarg = ''
|
|
|
|
|
|
|
|
if (apititle != None):
|
|
|
|
titlearg = 'APITITLE="' + apititle + '"'
|
|
|
|
else:
|
|
|
|
titlearg = ''
|
2016-07-01 02:34:54 +00:00
|
|
|
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
# print('echo Info: Cleaning spec in', outdir)
|
|
|
|
print('(cd ', outdir, '&& rm -rf',
|
Change log for January 23, 2017 Vulkan 1.0.39 spec update:
* Bump API patch number and header version number to 39 for this update.
Github Issues:
* Clarified that only accesses via the specified buffer/image subresource
ranges are included in the access scopes (public issue 306).
* Add missing valid usage statements for flink:vkCreateComputePipelines
and flink:vkCreateGraphicsPipelines (public issue 427).
Internal Issues:
* Add a Note to the <<invariance,Invariance>> appendix about a difference
between OpenGL and Vulkan with regards to how primitives derived from
offsets are handled (internal issue 355).
* Add the +<<VK_KHR_get_physical_device_properties2>>+,
+<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
extensions (internal issue 448).
* Add the +<<VK_EXT_shader_subgroup_vote>>+ and
+<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
* Update the texture level-of-detail equation in the
<<textures-scale-factor,Scale Factor Operation>> section to better
approximate the ellipse major and minor axes (internal issue 547).
* Forbid non-explicitly allowed uses of interface decorations in the
introduction to the <<interfaces,Shader Interfaces>> chapter (internal
issue 607).
* Replace use of MathJax with KaTeX, for improved load-time performance as
well as avoiding the scrolling-and-scrolling behavior due to MathJax
asynchronous rendering when loading at an anchor inside the spec. This
change also requires moving to HTML5 output for the spec instead of
XHTML, and there is a visible difference in that the chapter navigation
index is now in a scrollable sidebar instead of at the top of the
document. We may or may not retain the nav sidebar based on feedback
(internal issue 613).
* Improve consistency of markup and formatting in extension appendices
(internal issue 631).
Other Issues:
* Add explicit valid usage statements to slink:VkImageCopy requiring that
the source and destination layer ranges be contained in their respective
source and destination images.
* Add valid usage language for swapchain of flink:vkAcquireNextImage. If
the swapchain has been replaced, then it should not be passed to
flink:vkAcquireNextImage.
* Add a valid usage statement to flink:vkCreateImageView, that the image
must have been created with an appropriate usage bit set.
* Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
* Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
to account for the multiple viewport feature. If the feature is not
enabled, the parameters for these functions have required values that
are defined in the <<features-features-multiViewport,multiple
viewports>> section of the spec but were not reflected in the valid
usage text for these functions.
* Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
color spaces.
2017-01-18 04:11:25 +00:00
|
|
|
'html chunked pdf',
|
Change log for July 22, 2016 Vulkan 1.0.22 spec update:
* Bump API patch number and header version number to 22 for this update.
Github Issues:
* Translate the subpass self-dependency language into concrete
validity statements, and added a validity statement about the
restrictions on layout parameters (public issue 267).
* Add validity requirement that
slink:VkAttachmentDescription::pname:finalLayout and
slink:VkAttachmentReference::pname:layout must not be
ename:VK_IMAGE_LAYOUT_UNDEFINED or
ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
* Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
layouts are used. Make language consistent with other attachment
arrays (public issue 270).
* Changed 64-bit definition for
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
+vk.xml+ and the resulting +vulkan.h+ (public issue 282).
* Add missing error return code for
flink:vkEnumerateInstanceExtensionProperties and
flink:vkEnumerateDeviceExtensionProperties (public issue 285)
* Fix several cases of stext::VkStructName.memberName markup to
stext::VkStructName::pname:memberName, to match other usage in the
spec, and describe this markup in the style guide (public issue
286).
* Modified validity language generation script to avoid redundant
common ancestor language if covered by generic parent language, and
used `Both' instead of `Each' when appropriate (public issue 288).
Internal Issues:
* Add language about behavior of flink:vkAllocateDescriptorSets when
allocation fails due to fragmentation, a new error
ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
(internal issue 309).
* For the features of code:PointSize, code:ClipDistance, and
code:CullDistance, the SPIR-V capability is required to be declared
on use (read or write) rather than on decoration (internal issue
359).
* Have desktop versions of GLSL respect precision qualification
(code:mediump and code:lowp) when compiling for Vulkan. These will
get translated to SPIR-V's code:RelaxedPrecision decoration as they
do with OpenGL ES versions of GLSL (ESSL). The default precision of
all types is code:highp when using a desktop version (internal issue
360).
* Add validity statement for slink:VkImageCreateInfo specifying that
multisampled images must be two-dimensional, optimally tiled, and
with a single mipmap level (internal issue 369).
* Add validity statements to slink:VkImageViewCreateInfo disallowing
creation of images or image views with no supported features. Made
some slink:VkImageViewCreateInfo validity statements more precise
and consistent. Added a Note to the <<features,features>> chapter
about formats with no features (internal issue 371).
* Remove +manpages+ from default build targets. Nroff outputs
containing imbedded latexmath will not render properly. Fixing this
is a lot of work for limited use cases (internal issue 401).
Other Commits:
* Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
statement to be based on attachment indices rather than the number
of cleared attachments
(Vulkan-LoaderAndValidationLayers/issues/601).
* Convert registry documentation from LaTeX to asciidoc source and
rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
* Fix lack of Oxford commas in validity language.
* Lots of cleanup of generator scripts and Makefiles to move extension
list for generator into the script arguments instead of the body of
genvk.py, and express better dependencies between XML, scripts, and
generated files.
2016-07-23 10:15:48 +00:00
|
|
|
'man config checks',
|
|
|
|
'vkspec.html styleguide.html apispec.html apispec.pdf registry.html',
|
|
|
|
')')
|
|
|
|
|
|
|
|
# print('echo Info: Generating headers and spec include files')
|
2016-07-01 02:34:54 +00:00
|
|
|
print('cd', xmlDir)
|
2016-08-28 10:47:19 +00:00
|
|
|
print('make', outarg, xmlTargets)
|
2016-07-01 02:34:54 +00:00
|
|
|
|
2016-10-01 08:36:38 +00:00
|
|
|
# print('echo Info: Generating ref pages sources and spec targets')
|
2016-07-01 02:34:54 +00:00
|
|
|
print('cd', specDir)
|
2016-08-28 10:47:19 +00:00
|
|
|
print('make', outarg, 'clean')
|
2016-10-01 08:36:38 +00:00
|
|
|
# This is a temporary workaround for a dependency bug - if any of the
|
|
|
|
# specTargets require ref page sources, and they aren't already present
|
|
|
|
# at the time the make is invoked, that target will not be built.
|
|
|
|
if needRefSources:
|
|
|
|
print('make', outarg, extarg, 'man/apispec.txt')
|
|
|
|
# Now make the actual targets.
|
|
|
|
print('make -O -k -j 8',
|
2016-08-28 10:47:19 +00:00
|
|
|
outarg,
|
|
|
|
extarg,
|
|
|
|
titlearg,
|
|
|
|
'NOTEOPTS="-a implementation-guide"',
|
2016-07-01 02:34:54 +00:00
|
|
|
specTargets)
|
|
|
|
|
|
|
|
if (miscSrc != None and miscDst != None):
|
Change log for February 27, 2017 Vulkan 1.0.42 spec update:
* Bump API patch number and header version number to 42 for this update
(the first anniversary edition).
Github Issues:
* Changed asciidoctor macros so cross-page links in the standalone
reference pages function properly (public issue 462).
Internal Issues:
* Clarified host visibility discussion for slink:VkMemoryType,
flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
<<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
section, removing duplicated information and adding a central definition
in the access types section (internal issue 552).
* Change description of
slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
return an array of values, not structures (internal issue 699).
New Extensions:
* Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
the experimental status of `KHX` extensions.
* Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
release at GDC:
** VK_KHR_descriptor_update_template
** VK_KHR_push_descriptor
** VK_KHX_device_group
** VK_KHX_device_group_creation
** VK_KHX_external_memory
** VK_KHX_external_memory_capabilities
** VK_KHX_external_memory_fd
** VK_KHX_external_memory_win32
** VK_KHX_external_semaphore
** VK_KHX_external_semaphore_capabilities
** VK_KHX_external_semaphore_fd
** VK_KHX_external_semaphore_win32
** VK_KHX_multiview
** VK_KHX_win32_keyed_mutex
** VK_EXT_discard_rectangles
** VK_MVK_ios_surface
** VK_MVK_macos_surface
** VK_NVX_multiview_per_view_attributes
** VK_NV_clip_space_w_scaling
** VK_NV_geometry_shader_passthrough
** VK_NV_sample_mask_override_coverage
** VK_NV_viewport_array2
** VK_NV_viewport_swizzle
* Add new GLSL vendor extensions to support new builtin variables:
** GL_EXT_device_group
** GL_EXT_multiview
2017-02-27 06:54:26 +00:00
|
|
|
print('mkdir -p', miscDst)
|
2016-07-01 02:34:54 +00:00
|
|
|
print('cp', miscSrc + '/*.txt', miscDst + '/')
|
|
|
|
|
2016-10-01 08:36:38 +00:00
|
|
|
print('')
|
2016-07-01 02:34:54 +00:00
|
|
|
|
2016-08-28 10:47:19 +00:00
|
|
|
# Build all target documents
|
2016-07-01 02:34:54 +00:00
|
|
|
# repoDir = path to the Vulkan git repo containing the specs
|
2016-08-28 10:47:19 +00:00
|
|
|
# outDir = path to the output base directory in which targets are generated
|
2016-10-01 08:36:38 +00:00
|
|
|
def buildBranch(targetDir, extensions, apititle,
|
|
|
|
xmlTargets, specTargets,
|
Change log for May 20, 2017 Vulkan 1.0.50 spec update:
* Bump API patch number and header version number to 50 for this update.
Github Issues:
* Fix numerous minor issues with the VK_EXT_debug_report extension (public
issues 478, 483, 486, 489, 490).
Internal Issues:
* Update flink:vkAllocateDescriptorSets to specify conditions under which
to return ename:VK_ERROR_FRAGMENTED_POOL or
ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
out-of-host/out-of-device-memory, and improve the
<<fundamentals-errorcodes, description of those errors (internal issue
654).
* Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
a single semaphore, and how to deal with that when multiple physical
devices in a logical device need to wait on it (internal issue 730).
* Improve description of pname:pNext chains of
slink:VkPhysicalDeviceImageFormatInfo2KHR and
slink:VkImageFormatProperties2KHR (internal issue 814).
* Clean up math markup issues in the <<textures, Image Operations>>
chapter (internal issue 818).
* Update validusage target to use more robust code for preprocessing, by
making direct use of Asciidoctor's preprocessor. Added uniqueItems check
to JSON vu schema and add clean_validusage target (internal issue 826).
* Update style guide to prohibit writing non-self-contained (on a single
bullet point) Valid Usage statements, and modify offending Valid Usage
statements in the Specification to match, to assist with automatic
extraction for the validation layers (internal issue 828).
* Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
of the `VK_EXT_validation_flags` extension, to selectively disable
shader validation.
* Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
* Modify reflow.py script to place VUID tag anchors standalone on a line
following their corresponding bullet point, and reflow the spec text
accordingly (this had been pending since the initial tag deployment).
New Extensions:
* `VK_AMD_texture_gather_bias_lod`
2017-05-21 00:00:50 +00:00
|
|
|
repoDir, outDir,
|
|
|
|
needRefSources = False):
|
|
|
|
|
2016-07-01 02:34:54 +00:00
|
|
|
# Directory with vk.xml and generation tools
|
|
|
|
xmlDir = repoDir + '/src/spec'
|
|
|
|
# Directory with spec sources
|
|
|
|
specDir = repoDir + '/doc/specs/vulkan'
|
|
|
|
# Src/dst directories with misc. GLSL extension specs
|
|
|
|
miscSrc = repoDir + '/doc/specs/misc'
|
|
|
|
miscDst = outDir + '/misc'
|
|
|
|
|
2016-08-28 10:47:19 +00:00
|
|
|
buildRelease(targetDir, extensions, outDir + '/' + targetDir,
|
|
|
|
apititle,
|
2016-07-01 02:34:54 +00:00
|
|
|
xmlDir, xmlTargets, specDir, specTargets,
|
2016-10-01 08:36:38 +00:00
|
|
|
miscSrc, miscDst, needRefSources)
|
2016-07-01 02:34:54 +00:00
|
|
|
|
|
|
|
# Commands to tag the git branches
|
2016-11-12 11:23:34 +00:00
|
|
|
# releaseNum = release number of this spec update, to tag the tree with
|
|
|
|
# tagdate = date (used to be used to tag the tree with)
|
|
|
|
def createTags(releaseNum, tagdate):
|
2016-07-01 02:34:54 +00:00
|
|
|
# Tag date in YYYYMMDD format
|
|
|
|
now = tagdate.strftime('%Y%m%d')
|
|
|
|
|
2016-08-28 10:47:19 +00:00
|
|
|
print('echo To tag the spec branch for this release, execute the command:')
|
2016-11-12 11:23:34 +00:00
|
|
|
print('echo git tag -a -m \\"Tag Vulkan API specification for 1.0.' +
|
|
|
|
releaseNum, 'release\\"', 'v1.0.' + releaseNum + '-core')
|
|
|
|
#print('echo git tag -a -m \\"Tag Vulkan API specification for', now,
|
|
|
|
# 'release\\"', 'v1.0-core-' + now)
|
2016-07-01 02:34:54 +00:00
|
|
|
|