Vulkan-Docs/genRelease
Jon Leech 5300d9f05e Change log for April 15, 2018 Vulkan 1.1.73 spec update:
* Update release number to 73.

Github Issues:

  * Refine swapchain association with surface for slink:VkSwapchainKHR, with
    matching valid usage statements for slink:VkSwapchainCreateInfoKHR and
    discussion following the <<swapchain-wsi-image-create-info>> table
    (public issue 637).
  * Re-remove several valid usage statements from slink:VkImageCreateInfo
    that had previously been removed at the time that
    ename:VK_IMAGE_CREATE_EXTENDED_USAGE_BIT was introduced. These
    statements had incorrectly been restored due to an glitch while merging
    from the old `1.0` branch to the current `master` branch (public issue
    683).

Internal Issues:

  * Fix reference page generation and configure build to generate reference
    pages 1.1 with all extensions, rather than core only, as was the case
    for the 1.0 ref pages (internal issues 484, 1056, 1205).
  * Require that
    slink:VkMemoryDedicatedRequirements::pname:prefersDedicateAllocation is
    ename:VK_TRUE when
    slink:VkMemoryDedicatedRequirements::pname:requiresDedicateAllocation is
    ename:VK_TRUE (internal issue 1222).
  * Fix Ruby extension code so `diff_html` Makefile target works (internal
    issue 1230).
  * Update `genRelease` script to generate 1.1 + all extensions reference
    pages - but not the single-page HTML / PDF versions, which are even
    larger than the API spec (internal issue 1245).

Other Issues:

  * Add missing attributes to `vk.xml` for `VK_ANDROID_native_buffer`.
  * Specify that the slink:VkAttachmentDescription::pname:format member is
    the format of the image *view* that will be used for the attachment.
  * Use core sname:VkPhysicalDeviceFeatures2 in the `structextends` `vk.xml`
    attribute for sname:VkPhysicalDeviceDescriptorIndexingFeaturesEXT and
    sname:VkPhysicalDeviceDescriptorIndexingPropertiesEXT, rather than the
    KHR equivalent it was promoted from.
  * Fix the "`Fragment Input Attachment Interface`" glossary entry to match
    the specification body.
  * Clarify the interaction of sRGB images used as storage or texel buffers
    with <<textures-output-format-conversion, Texel Output Format
    Conversion>>.
  * Moved three valid usage statements from
    slink:VkRenderPassMultiviewCreateInfo up to
    slink:VkRenderPassCreateInfo, and added a new valid usage statement for
    slink:VkRenderPassInputAttachmentAspectCreateInfo.
  * Added valid usage statements for slink:VkBufferMemoryBarrier and
    slink:VkImageMemoryBarrier reflecting the global requirement that
    "`non-sparse resources must be bound to memory before being recorded to
    command`".

New Extensions:
2018-04-15 03:32:07 -07:00

145 lines
5.3 KiB
Python
Executable File

#!/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.
# Ensure config/extDependency.py is up-to-date before we import it.
# If it is up to date, 'make' will print a useless warning without '-s'.
import argparse,subprocess,sys
subprocess.check_call(['make', '-s', 'config/extDependency.py'])
# Alter sys.path to import config/extDependency.py.
sys.path = sys.path + [ 'config' ]
from genspec import *
from extDependency import allExts, khrExts
# Eventually, these may be defined by extDependency.py
allVersions = [ 'VK_VERSION_1_0', 'VK_VERSION_1_1' ]
Version1_0 = [ 'VK_VERSION_1_0' ]
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-internal', action='store_true',
help='Generate internal build, not public')
parser.add_argument('-norefpages', action='store_true',
help='Do not generate refpages')
parser.add_argument('-pdf', action='store_true',
help='Always generate PDF outputs')
parser.add_argument('-nov11', action='store_false', dest='v11',
help='Suppress Vulkan 1.1 targets')
parser.add_argument('-v10', action='store_true',
help='Generate Vulkan 1.0 targets')
args = parser.parse_args()
if args.internal:
# For internal build & pseudo-release
repoDir = '/home/tree/git/vulkan'
outDir = '/home/tree/git/vulkan/out'
else:
# For public release
repoDir = '/home/tree/git/Vulkan-Docs'
outDir = '/home/tree/git/registry/vulkan/specs'
# Always build PDF for public releases
args.pdf = True
if args.norefpages:
refPageTargets = ''
else:
# Just generate separate reference pages, not the single-page
# 'manhtml' and 'manpdf' refpage targets.
refPageTargets = ' manhtmlpages'
# refPageTargets += ' manhtml'
# if args.pdf:
# refPageTargets += ' manpdf'
specTargets = ' html'
if args.pdf:
specTargets += ' pdf'
print('echo Info: Building release from', repoDir, 'to', outDir)
print('echo Info: Building spec targets', specTargets)
print('')
# Vulkan 1.1 specs
if args.v11:
# Build ref pages and validusage targets only for 1.1 + all
# extensions
buildBranch('1.1-extensions',
versions = allVersions,
extensions = allExts,
apititle = '(with all registered Vulkan extensions)',
xmlTargets = 'clobber install',
specTargets = specTargets + ' validusage' + refPageTargets,
repoDir = repoDir,
outDir = outDir)
buildBranch('1.1-khr-extensions',
versions = allVersions,
extensions = khrExts,
apititle = '(with KHR extensions)',
xmlTargets = 'clobber install',
specTargets = specTargets,
repoDir = repoDir,
outDir = outDir)
# Build style guide and registry documentation targets only for 1.1
# + no extensions.
buildBranch('1.1',
versions = allVersions,
extensions = None,
apititle = None,
xmlTargets = 'clobber install',
specTargets = specTargets + ' styleguide registry',
repoDir = repoDir,
outDir = outDir,
needRefSources = True)
# Vulkan 1.0 specs. Only build the core spec now that 1.1 is out.
if args.v10:
# buildBranch('1.0-extensions',
# versions = Version1_0,
# extensions = allExts,
# apititle = '(with all registered Vulkan extensions)',
# xmlTargets = 'clobber install',
# specTargets = specTargets,
# repoDir = repoDir,
# outDir = outDir)
#
# buildBranch('1.0-wsi_extensions',
# versions = Version1_0,
# extensions = khrExts,
# apititle = '(with KHR extensions)',
# xmlTargets = 'clobber install',
# specTargets = specTargets,
# repoDir = repoDir,
# outDir = outDir)
buildBranch('1.0',
versions = Version1_0,
extensions = None,
apititle = None,
xmlTargets = 'clobber install',
specTargets = specTargets,
repoDir = repoDir,
outDir = outDir)
else:
print('echo Info: Not building 1.0 specs yet')
print('echo Info: post-generation cleanup')
createTags(releaseNum(), buildOnFriday())