mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-21 02:28:07 +00:00
* First public update for Vulkan 1.1. Github Issues: * Refer to standard sparse image block shape format tables explicitly in the <<sparsememory-standard-shapes, Standard Sparse Image Block Shapes>> section (public issue 93). * Add the missing definition of the code:LocalInvocationIndex decoration in the <<interfaces-builtin-variables, Built-In Variables>> section (public issue 532). * Clarify dynamic state definition in the introduction to the <<pipelines, Pipelines>> section and the new <<pipelines-dynamic-state, Dynamic State>> subsection (public issue 620). * Clarified deprecation statement in the `VK_AMD_negative_viewport_height` appendix (public issue 674). * Fix parameter descriptions for flink:vkCreateIndirectCommandsLayoutNVX (public issue 677). Internal Issues: * Remove description of <<primsrast-points, rasterization point size>> being taken from the tessellation control shader, since there are no circumstances under which you can have TCS without TES (internal issue 522). * Define <<copies-images-format-size-compatibility, _size-compatible_ image formats>> for flink:vkCmdCopyImage, add it to the glossary, and use that definition for slink:VkImageViewCreateInfo (internal issue 771). * Change brief descriptions of enumerant names, and of parameters which are enumerants, from "`enum *indicates*`" to "`enum *specifies*`" for consistency, and add a markup style guide rule (internal issue 862). * Clarify how execution dependencies interact with <<synchronization-submission-order, submission order>> at numerous places in the <<renderpass, Render Pass>> and <<synchronization, Synchronization>> chapters (internal issue 1062). * Clarify statement in the <<interfaces-resources-setandbinding, DescriptorSet and Binding Assignment>> section that only interface variables statically used by the entry point used in a pipeline must be present in the descriptor set layout (internal issue 1172). * Flip sparse image diagrams with partially full mip levels vertically, to match graph origins of other image diagrams (internal issue 1176). * Update new SVG diagrams to have consistent style and base font size, increase consistency of primitive topology diagrams, and add a section to the style guide on creating and editing images in a consistent style (internal issue 1177). * Resolve problems with valid usage statement extraction by fixing existing VUID tags for interfaces promoted to version 1.1 and fixing conditional directives around VUID-VkMemoryDedicatedAllocateInfo-image-01797 (internal issue 1184). * Strip `KHR` suffixes from a few interfaces promoted to Vulkan 1.1 that were missed previously (internal issue 1185). * Restrict code:OpImageQuerySizeLod and code:OpImageQueryLevels to only work on code:Image operands with their code:Sampled operand set to 1. In other words, these operations are not defined to work with storage images (internal issue 1193). * Recycle extension slot for extension #82 in `vk.xml`. This extension was never published (internal issue 1195). * Add an issue to the `VK_KHR_maintenance1` appendix noting that zero height viewports are allowed when this extension is enabled (internal issue 1202). * Fix slink:VkDescriptorSetLayoutBinding description so that shader stages always use descriptor bindings, not the other way around (internal issue 1206). * Fix field name for slink:VkInputAttachmentAspectReference::pname:inputAttachmentIndex (internal issue 1210). Other Issues: * Fix a few broken links in the <<versions-1.1, Version 1.1>> appendix. * Replace a few old refBegin/refEnd tags with open block markup around interfaces, and remove old KHX VUID tags that were breaking the valid usage statement extraction. * Fix error codes accidentally tagged as success codes in `vk.xml` for flink:vkGetSwapchainCounterEXT. * Added valid usage statements for ftext:vkBind*Memory2 input structures stext:VkBind*MemoryInfo, and fix a pname:image -> pname:buffer typo in a couple of places. * Fix swapped descriptions of elink:VkDescriptorType enums ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE and ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (reported via tweet). New Extensions: * `VK_ANDROID_external_memory_android_hardware_buffer`
160 lines
5.7 KiB
Python
160 lines
5.7 KiB
Python
#!/usr/bin/python3
|
|
#
|
|
# Copyright (c) 2016-2018 The Khronos Group Inc.
|
|
#
|
|
# 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.
|
|
|
|
import time
|
|
from datetime import timedelta, date
|
|
|
|
# This script builds a full release package including XHTML and PDF
|
|
# 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.
|
|
|
|
# Return the Vulkan release number, used for tags
|
|
def releaseNum():
|
|
return '$REVISION'
|
|
|
|
# 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
|
|
|
|
# label = textual label to use for target being generated
|
|
# versions = list of core API versions to include
|
|
# extensions = list of extension names to include
|
|
# outdir = directory to generate specs in
|
|
# apititle = extra title to apply to the specification
|
|
# 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
|
|
# needRefSources = True if ref pages must be extracted from the spec sources
|
|
def buildRelease(label,
|
|
versions,
|
|
extensions,
|
|
outdir,
|
|
apititle,
|
|
xmlDir, xmlTargets,
|
|
specDir, specTargets,
|
|
miscSrc = None, miscDst = None, needRefSources = False):
|
|
|
|
print('echo Info: Generating target=' + label,
|
|
'outdir=' + outdir)
|
|
|
|
outarg = 'OUTDIR=' + outdir
|
|
|
|
if (versions != None and len(versions) > 0):
|
|
versarg = 'VERSIONS="' + ' '.join(versions) + '"'
|
|
else:
|
|
versarg = ''
|
|
|
|
if (extensions != None and len(extensions) > 0):
|
|
extarg = 'EXTENSIONS="' + ' '.join(extensions) + '"'
|
|
else:
|
|
extarg = ''
|
|
|
|
if (apititle != None):
|
|
titlearg = 'APITITLE="' + apititle + '"'
|
|
else:
|
|
titlearg = ''
|
|
|
|
# print('echo Info: Creating directory and cleaning spec in', outdir)
|
|
print('mkdir -p', outdir)
|
|
print('(cd ', outdir, '&& rm -rf',
|
|
'html chunked pdf',
|
|
'man config checks',
|
|
'vkspec.html styleguide.html apispec.html apispec.pdf registry.html',
|
|
')')
|
|
|
|
# print('echo Info: Generating headers and spec include files')
|
|
print('cd', xmlDir)
|
|
print('make', outarg, xmlTargets)
|
|
|
|
# print('echo Info: Generating ref pages sources and spec targets')
|
|
print('cd', specDir)
|
|
print('make', outarg, 'clean')
|
|
# 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, versarg, extarg, 'man/apispec.txt')
|
|
# Now make the actual targets.
|
|
print('make -O -k -j 8',
|
|
outarg, versarg, extarg, titlearg,
|
|
'NOTEOPTS="-a implementation-guide"',
|
|
specTargets)
|
|
|
|
if (miscSrc != None and miscDst != None):
|
|
print('mkdir -p', miscDst)
|
|
print('cp', miscSrc + '/*.txt', miscDst + '/')
|
|
|
|
print('')
|
|
|
|
# Build all target documents
|
|
# repoDir = path to the Vulkan git repo containing the specs
|
|
# outDir = path to the output base directory in which targets are generated
|
|
def buildBranch(targetDir,
|
|
versions,
|
|
extensions,
|
|
apititle,
|
|
xmlTargets,
|
|
specTargets,
|
|
repoDir,
|
|
outDir,
|
|
needRefSources = False):
|
|
|
|
# Directory with vk.xml and generation tools
|
|
xmlDir = repoDir + '/src/spec'
|
|
# Directory with spec sources
|
|
specDir = repoDir + '/doc/specs/vulkan'
|
|
# Directory containing misc. files to copy to registry.
|
|
# At present there are none, since GLSL extensions have moved to the
|
|
# GLSL repository and are redirected from the Vulkan registy website.
|
|
# These should be relative to repoDir and outDir, respectively
|
|
miscSrc = None
|
|
miscDst = None
|
|
|
|
buildRelease(targetDir,
|
|
versions,
|
|
extensions,
|
|
outDir + '/' + targetDir,
|
|
apititle,
|
|
xmlDir, xmlTargets,
|
|
specDir, specTargets,
|
|
miscSrc, miscDst,
|
|
needRefSources)
|
|
|
|
# Commands to tag the git branches
|
|
# 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):
|
|
# Tag date in YYYYMMDD format
|
|
now = tagdate.strftime('%Y%m%d')
|
|
|
|
print('echo To tag the spec branch for this release, execute the command:')
|
|
print('echo git tag -a -m \\"Tag Vulkan API specification for 1.1.' +
|
|
releaseNum, 'release\\"', 'v1.1.' + releaseNum)
|
|
#print('echo git tag -a -m \\"Tag Vulkan API specification for', now,
|
|
# 'release\\"', 'v1.1-core-' + now)
|
|
|