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.
This commit is contained in:
parent
f4c4113d07
commit
1ca0ea1ef0
|
@ -46,6 +46,4 @@ src/spec/diag.txt
|
|||
.DS_Store
|
||||
|
||||
# Auto-generated files
|
||||
src/spec/hostsynctable
|
||||
src/spec/validity
|
||||
src/spec/vulkan-docs
|
||||
# doc/specs/vulkan/*/timeMarker
|
||||
|
|
|
@ -1006,3 +1006,78 @@ Other Commits:
|
|||
APIs.
|
||||
* Update vk_platform.h to handle 32-bit ARMv8 binaries.
|
||||
* Various minor cleanups to the Makefile and build process.
|
||||
|
||||
-----------------------------------------------------
|
||||
|
||||
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.
|
||||
|
|
|
@ -33,8 +33,8 @@ Status
|
|||
|
||||
Version
|
||||
|
||||
Last Modified Date: 12-Apr-2016
|
||||
Revision: 30
|
||||
Last Modified Date: 20-Jul-2016
|
||||
Revision: 31
|
||||
|
||||
Number
|
||||
|
||||
|
@ -79,6 +79,9 @@ Overview
|
|||
* subpass inputs
|
||||
|
||||
The following features are changed:
|
||||
* precision qualifiers (mediump and lowp) will be respected for all
|
||||
versions, not dropped for desktop versions (default precision for
|
||||
desktop versions is highp for all types)
|
||||
* gl_FragColor will no longer indicate an implicit broadcast
|
||||
* arrays of opaque uniforms take only one binding number for
|
||||
the entire object, not one per array element
|
||||
|
@ -374,19 +377,21 @@ Overview
|
|||
|
||||
Non-fragment stage:
|
||||
|
||||
in/out gl_PerVertex {
|
||||
in/out gl_PerVertex { // some subset of these members will be used
|
||||
gl_Position
|
||||
gl_PointSize
|
||||
gl_ClipDistance
|
||||
gl_CullDistance
|
||||
} (name of block is for debug only)
|
||||
} // name of block is for debug only
|
||||
|
||||
There is at most one input and one output block per stage in SPIR-V.
|
||||
The subset and order of members will match between stages sharing an
|
||||
interface.
|
||||
|
||||
Mapping of precision qualifiers:
|
||||
|
||||
lowp -> RelaxedPrecision, on variable and operation
|
||||
mediump -> RelaxedPrecision, on variable and operation
|
||||
lowp -> RelaxedPrecision, on storage variable and operation
|
||||
mediump -> RelaxedPrecision, on storage variable and operation
|
||||
highp -> 32-bit, same as int or float
|
||||
|
||||
portability tool/mode -> OpQuantizeToF16
|
||||
|
@ -560,11 +565,16 @@ Changes to Chapter 4 of the OpenGL Shading Language Specification
|
|||
samplerShadow | a handle for accessing state describing how to
|
||||
| sample a depth texture with comparison"
|
||||
|
||||
|
||||
|
||||
Remove "structure member selection" from 4.1.7 and instead add a sentence
|
||||
"Opaque types cannot be declared or nested in a structure (struct)."
|
||||
|
||||
Modify subsection 4.1.3 Integers, for desktop versions of GLSL, to say:
|
||||
|
||||
"Highp unsigned integers have exactly 32 bits of precision. Highp
|
||||
signed integers use 32 bits, including a sign bit, in two's complement
|
||||
form. Mediump and lowp integers are as defined by the RelaxedPrecision
|
||||
decoration in SPIR-V."
|
||||
|
||||
Add a subsection to 4.1.7 Opaque Types:
|
||||
|
||||
"4.1.7.x Texture, *sampler*, and *samplerShadow* Types
|
||||
|
@ -598,6 +608,12 @@ Changes to Chapter 4 of the OpenGL Shading Language Specification
|
|||
"Subpass input types are only available in fragment shaders. It is a
|
||||
compile-time error to use them in any other stage."
|
||||
|
||||
Add to section 4.1.7.3 Atomic Counters:
|
||||
|
||||
"It is an error to declare an atomic type with a different precision or
|
||||
to specify the default precision for an atomic type to be lowp or
|
||||
mediump."
|
||||
|
||||
Change section 4.3.3 Constant Expressions:
|
||||
|
||||
Add a new very first sentence to this section:
|
||||
|
@ -870,6 +886,50 @@ Changes to Chapter 4 of the OpenGL Shading Language Specification
|
|||
"However, when push_constant is declared, the default layout of the
|
||||
buffer will be std430. There is no method to globally set this default."
|
||||
|
||||
Remove the following preamble from section 4.7, which exists for desktop
|
||||
versions, but not ES versions. Removal:
|
||||
|
||||
"Precision qualifiers are added for code portability with OpenGL ES, not
|
||||
for functionality. They have the same syntax as in OpenGL ES, as
|
||||
described below, but they have no semantic meaning, which includes no
|
||||
effect on the precision used to store or operate on variables.
|
||||
|
||||
"If an extension adds in the same semantics and functionality in the
|
||||
OpenGL ES 2.0 specification for precision qualifiers, then the extension
|
||||
is allowed to reuse the keywords below for that purpose.
|
||||
|
||||
"For the purposes of determining if an output from one shader stage
|
||||
matches an input of the next stage, the precision qualifier need not
|
||||
match."
|
||||
|
||||
Add:
|
||||
|
||||
"For interface matching, uniform variables and uniform and buffer block
|
||||
members must have the same precision qualification. For matching *out*
|
||||
variables or block members to *in* variables and block members, the
|
||||
precision qualification does not have to match.
|
||||
|
||||
"Global variables declared in different compilation units linked into the
|
||||
same shader stage must be declared with the same precision qualification."
|
||||
|
||||
More generally, all versions will follow OpenGL ES semantic rules for
|
||||
precision qualifiers.
|
||||
|
||||
Section 4.7.2 Precision Qualifiers (desktop only)
|
||||
|
||||
Replace the table saying "none" for all precisions with this statement:
|
||||
|
||||
"Mediump and lowp floating-point values have the precision defined by
|
||||
the RelaxedPrecision decoration in SPIR-V."
|
||||
|
||||
Section 4.7.4 Default Precision Qualifiers:
|
||||
|
||||
For desktop versions, replace the last three paragraphs that state the
|
||||
default precisions with the following instead:
|
||||
|
||||
"All stages have default precision qualification of highp for all types
|
||||
that accept precision qualifiers."
|
||||
|
||||
Changes to Chapter 5 of the OpenGL Shading Language Specification
|
||||
|
||||
Add a new subsection at the end of section 5.4 "Constructors":
|
||||
|
@ -1003,6 +1063,77 @@ Changes to Chapter 7 of the OpenGL Shading Language Specification
|
|||
|
||||
Changes to Chapter 8 of the OpenGL Shading Language Specification
|
||||
|
||||
Add the following ES language to desktop versions of the specification:
|
||||
|
||||
"The operation of a built-in function can have a different precision
|
||||
qualification than the precision qualification of the resulting value.
|
||||
These two precision qualifications are established as follows.
|
||||
|
||||
"The precision qualification of the operation of a built-in function is
|
||||
based on the precision qualification of its input arguments and formal
|
||||
parameters: When a formal parameter specifies a precision qualifier,
|
||||
that is used, otherwise, the precision qualification of the calling
|
||||
argument is used. The highest precision of these will be the precision
|
||||
qualification of the operation of the built-in function. Generally,
|
||||
this is applied across all arguments to a built-in function, with the
|
||||
exceptions being:
|
||||
- bitfieldExtract and bitfieldInsert ignore the 'offset' and 'bits'
|
||||
arguments.
|
||||
- interpolateAt* functions only look at the 'interpolant' argument.
|
||||
|
||||
"The precision qualification of the result of a built-in function is
|
||||
determined in one of the following ways:
|
||||
|
||||
- For the texture sampling, image load, and image store functions,
|
||||
the precision of the return type matches the precision of the
|
||||
sampler type:
|
||||
uniform lowp sampler2D sampler;
|
||||
highp vec2 coord;
|
||||
...
|
||||
lowp vec4 col = texture (sampler, coord); // texture() returns lowp
|
||||
|
||||
Otherwise:
|
||||
|
||||
- For prototypes that do not specify a resulting precision qualifier,
|
||||
the precision will be the same as the precision of the operation.
|
||||
(As defined earlier.)
|
||||
|
||||
- For prototypes that do specify a resulting precision qualifier,
|
||||
the specified precision qualifier is the precision qualification of
|
||||
the result."
|
||||
|
||||
Add precision qualifiers to the following in desktop versions:
|
||||
|
||||
|
||||
genIType floatBitsToInt (highp genFType value)
|
||||
genUType floatBitsToUint(highp genFType value)
|
||||
genFType intBitsToFloat (highp genIType value)
|
||||
genFType uintBitsToFloat(highp genUType value)
|
||||
|
||||
genFType frexp(highp genFType x, out highp genIType exp)
|
||||
genFType ldexp(highp genFType x, in highp genIType exp)
|
||||
|
||||
highp uint packSnorm2x16(vec2 v)
|
||||
vec2 unpackSnorm2x16(highp uint p)
|
||||
highp uint packUnorm2x16(vec2 v)
|
||||
vec2 unpackUnorm2x16(highp uint p)
|
||||
vec2 unpackHalf2x16(highp uint v)
|
||||
vec4 unpackUnorm4x8(highp uint v)
|
||||
vec4 unpackSnorm4x8(highp uint v)
|
||||
|
||||
genIType bitfieldReverse(highp genIType value)
|
||||
genUType bitfieldReverse(highp genUType value)
|
||||
genIType findMSB(highp genIType value)
|
||||
genIType findMSB(highp genUType value)
|
||||
genUType uaddCarry(highp genUType x, highp genUType y,
|
||||
out lowp genUType carry)
|
||||
genUType usubBorrow(highp genUType x, highp genUType y,
|
||||
out lowp genUType borrow)
|
||||
void umulExtended(highp genUType x, highp genUType y,
|
||||
out highp genUType msb, out highp genUType lsb)
|
||||
void imulExtended(highp genIType x, highp genIType y,
|
||||
out highp genIType msb, out highp genIType lsb)
|
||||
|
||||
Add a section
|
||||
|
||||
"8.X Subpass Functions
|
||||
|
@ -1155,6 +1286,7 @@ Revision History
|
|||
|
||||
Rev. Date Author Changes
|
||||
---- ----------- ------- --------------------------------------------
|
||||
31 20-Jul-2016 JohnK Have desktop versions respect mediump/lowp
|
||||
30 12-Apr-2016 JohnK Restrict spec-const operations to non-float
|
||||
29 5-Apr-2016 JohnK Clarify disallowance of spec-const arrays in
|
||||
initializers
|
||||
|
|
|
@ -6,12 +6,15 @@
|
|||
# Default targets:
|
||||
# - XHTML, XHTML chunked, and PDF specs ('allspecs')
|
||||
# - HTML single-document reference pages ('manhtml' and 'manpdf')
|
||||
# - HTML and nroff separate reference pages ('manpages' and 'manhtmlpages')
|
||||
# - HTML separate reference pages ('manpages' and 'manhtmlpages')
|
||||
# - Validator scripts ('allchecks')
|
||||
#
|
||||
# The 'html' target is deprecated but still supported, for now. It uses
|
||||
# a different toolchain than XHTML/PDF outputs, isn't quite compatible,
|
||||
# and will not be published, but is faster to generate for quick tests.
|
||||
#
|
||||
# Other targets:
|
||||
# - Nroff (Unix 'man' format) separate reference pages ('manpages').
|
||||
|
||||
all: alldocs allchecks
|
||||
|
||||
|
@ -19,42 +22,46 @@ alldocs: allspecs allman
|
|||
|
||||
allspecs: xhtml chunked pdf styleguide
|
||||
|
||||
allman: manhtml manpdf manpages manhtmlpages
|
||||
allman: manhtml manpdf manhtmlpages
|
||||
|
||||
allchecks: checkinc checklinks
|
||||
|
||||
# Note that the := assignments below are immediate, not deferred, and
|
||||
# are therefore order-dependent in the Makefile
|
||||
|
||||
QUIET?=@
|
||||
QUIET ?= @
|
||||
PYTHON ?= python3
|
||||
ASCIIDOC ?= asciidoc.py
|
||||
A2X ?= a2x.py
|
||||
DBLATEX ?= dblatex
|
||||
A2X ?= a2x.py
|
||||
DBLATEX ?= dblatex
|
||||
XSLTPROC ?= xsltproc
|
||||
# DBLATEXPREFIX can be overriden by setting it as an environment variable,
|
||||
# if not installed in the standard location on your distribution
|
||||
DBLATEXPREFIX ?= /etc/asciidoc/dblatex
|
||||
RM=rm -f
|
||||
RMRF=rm -rf
|
||||
MKDIR=mkdir -p
|
||||
CP=cp
|
||||
ECHO:=echo
|
||||
RM = rm -f
|
||||
RMRF = rm -rf
|
||||
MKDIR = mkdir -p
|
||||
CP = cp
|
||||
ECHO = echo
|
||||
|
||||
# Target directories for output files
|
||||
# HTMLDIR - 'html' target
|
||||
# XHTMLDIR - 'xhtml' target
|
||||
# CHUNKDIR - 'chunked' target
|
||||
# PDFDIR - 'pdf' target
|
||||
# CHECKDIR - 'allchecks' target
|
||||
OUTDIR := ../../../out/1.0
|
||||
HTMLDIR := $(OUTDIR)/html
|
||||
XHTMLDIR := $(OUTDIR)/xhtml
|
||||
PDFDIR := $(OUTDIR)/pdf
|
||||
CHECKDIR := $(OUTDIR)/checks
|
||||
STYLEXHTMLDIR := $(OUTDIR)/style
|
||||
# STYLEXHTMLDIR - 'styleguide' target
|
||||
OUTDIR := ../../../out/1.0
|
||||
HTMLDIR := $(OUTDIR)/html
|
||||
XHTMLDIR := $(OUTDIR)/xhtml
|
||||
CHUNKDIR := $(OUTDIR)/chunked
|
||||
PDFDIR := $(OUTDIR)/pdf
|
||||
CHECKDIR := $(OUTDIR)/checks
|
||||
# Images used in the API spec
|
||||
IMAGEPATH :=images
|
||||
ICONPATH :=$(IMAGEPATH)/icons
|
||||
PDFXSL :=config/vkspec-dblatex.xsl
|
||||
PDFSTY :=config/vkspec-dblatex.sty
|
||||
PYTHON ?= python3
|
||||
ICONPATH :=$(IMAGEPATH)/icons
|
||||
PDFXSL :=config/vkspec-dblatex.xsl
|
||||
PDFSTY :=config/vkspec-dblatex.sty
|
||||
|
||||
# Set VERBOSE to -v to see what asciidoc is doing.
|
||||
# Set KEEP to -d to retain intermediate dblatex files
|
||||
|
@ -67,7 +74,7 @@ KEEP =
|
|||
# ATTRIBOPTS sets the api revision and enables MathJax generation
|
||||
# CONFIG Vulkan-specific Asciidoc macros. File used depends on target.
|
||||
# ADOCOPTS options for asciidoc->HTML output
|
||||
# ADOCPDFOPTS options for asciidoc->PDF output via dblatex (not using a2x)
|
||||
# ADOCDBOPTS options for asciidoc->XHTML or PDF output via docbook (not using a2x)
|
||||
# A2XOPTS options for a2x->{HTML,PDF} output
|
||||
XMLLINT = --no-xmllint
|
||||
NOTEOPTS = -a editing-notes -a implementation-guide
|
||||
|
@ -75,17 +82,26 @@ ATTRIBOPTS = -a apirevision="$(SPECREVISION)" -a mathjax
|
|||
CONFIG = config/vkspec.conf
|
||||
ADOCOPTS = $(ATTRIBOPTS) $(NOTEOPTS) -f config/mathjax-asciidoc.conf \
|
||||
-f $(CONFIG) $(VERBOSE)
|
||||
ADOCPDFOPTS= $(ATTRIBOPTS) $(NOTEOPTS) -f config/mathjax-docbook.conf \
|
||||
ADOCDBOPTS = $(ATTRIBOPTS) $(NOTEOPTS) -f config/mathjax-docbook.conf \
|
||||
-f $(CONFIG) $(VERBOSE)
|
||||
A2XOPTS = $(ATTRIBOPTS) $(NOTEOPTS) \
|
||||
--asciidoc-opts="-f config/mathjax-docbook.conf -f $(CONFIG)" \
|
||||
--xsltproc-opts="--param generate.consistent.ids 1" \
|
||||
$(XMLLINT) $(VERBOSE) --icons
|
||||
|
||||
# All the options except the first are taken from a2x
|
||||
XSLTOPTS = \
|
||||
--param generate.consistent.ids 1 \
|
||||
--stringparam callout.graphics 1 \
|
||||
--stringparam navig.graphics 1 \
|
||||
--stringparam admon.textlabel 0 \
|
||||
--stringparam admon.graphics 1
|
||||
|
||||
# XSL customizing Asciibook XSL to pass through equations and add
|
||||
# MathJax. This varies depending on target type.
|
||||
XHTMLXSL = config/docbook-xsl/xhtml.xsl
|
||||
CHUNKEDXSL = config/docbook-xsl/chunked.xsl
|
||||
XHTMLXSL = config/docbook-xsl/xhtml.xsl
|
||||
CHUNKXSL = config/docbook-xsl/chunked.xsl
|
||||
MANPAGEXSL = config/docbook-xsl/manpage.xsl
|
||||
|
||||
# dblatex options passed two ways, directly to dblatex and via a2x.
|
||||
DBLATEXOPTS := $(KEEP) -V -T db2latex -I. -I images -I images/icons -s $(DBLATEXPREFIX)/asciidoc-dblatex.sty
|
||||
|
@ -94,15 +110,16 @@ A2XDBLATEXOPTS := --dblatex-opts='$(DBLATEXOPTS)'
|
|||
# Misc. files to clean up (see 'checkinc' target below)
|
||||
DIRT = $(SPECVERSION)
|
||||
|
||||
.PHONY: directories $(MANHTMLDIR) $(MANPAGEDIR)
|
||||
.PHONY: directories
|
||||
|
||||
# Images and icons that are used in or referenced by targets.
|
||||
# For some targets they must be copied to output directories.
|
||||
ICONFILES := $(wildcard $(ICONPATH)/*.png)
|
||||
PNGFILES := $(ICONFILES) $(wildcard $(IMAGEPATH)/*.png)
|
||||
# Don't use vulkantexture0.svg as a source SVG file, PNG is available
|
||||
SVGFILES := $(filter-out $(IMAGEPATH)/vulkantexture0.svg,$(wildcard $(IMAGEPATH)/*.svg))
|
||||
PDFFILES := $(SVGFILES:.svg=.pdf)
|
||||
# Misc. directories and files that need to be copied into output directory
|
||||
WEBIMAGES := $(SVGFILES:%=$(HTMLDIR)/%) $(PNGFILES:%=$(HTMLDIR)/%)
|
||||
|
||||
# File suffix for image targets for HTML and PDF Builds - Asciidoc {svgtype} attribute
|
||||
SVGTYPEHTML := svg
|
||||
SVGTYPEPDF := pdf
|
||||
|
@ -111,58 +128,72 @@ TOPDOC := vkspec.txt
|
|||
# Files making up sections of the API spec. The wildcard expression
|
||||
# should work in extension branches to pull in those files as well.
|
||||
CHAPTERS := $(wildcard chapters/[A-Za-z]*.txt appendices/[A-Za-z]*.txt chapters/*/[A-Za-z]*.txt appendices/*/[A-Za-z]*.txt)
|
||||
INCLUDES := $(wildcard protos/*.txt structs/*.txt flags/*.txt enums/*.txt funcpointers/*.txt validity/structs/*.txt validity/protos/*.txt)
|
||||
GENINCLUDE = $(wildcard api/*/[A-Za-z]*.txt validity/*/[A-Za-z]*.txt hostsynctable/*.txt)
|
||||
GENDEPENDS = api/timeMarker validity/timeMarker hostsynctable/timeMarker
|
||||
# All non-format-specific dependencies
|
||||
COMMONDOCS := $(CHAPTERS) $(INCLUDES)
|
||||
COMMONDOCS = $(CHAPTERS) $(GENINCLUDE) $(GENDEPENDS)
|
||||
# A generated included file with the spec version, date, and git commit
|
||||
SPECVERSION = specversion.txt
|
||||
SPECREVISION = 1.0.21
|
||||
SPECREVISION = 1.0.22
|
||||
SPECREMARK =
|
||||
|
||||
# Spec targets
|
||||
# There is some complexity to try and avoid short virtual targets like 'html'
|
||||
# causing specs to *always* be regenerated.
|
||||
|
||||
html: $(HTMLDIR)/vkspec.html $(TOPDOC) $(COMMONDOCS) $(WEBIMAGES)
|
||||
html: $(HTMLDIR)/vkspec.html $(TOPDOC) $(COMMONDOCS)
|
||||
|
||||
$(HTMLDIR)/vkspec.html: $(CONFIG) $(SPECVERSION) $(TOPDOC) $(COMMONDOCS) $(WEBIMAGES)
|
||||
$(QUIET)if test ! -d $(HTMLDIR) ; then $(MKDIR) $(HTMLDIR) ; fi
|
||||
$(HTMLDIR)/vkspec.html: $(CONFIG) $(SPECVERSION) $(TOPDOC) $(COMMONDOCS)
|
||||
$(QUIET)$(MKDIR) $(HTMLDIR)/images/icons
|
||||
$(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) \
|
||||
-o $(HTMLDIR)/vkspec.html -a svgpdf=$(SVGTYPEHTML) $(TOPDOC)
|
||||
# Copy resource files in explicitly
|
||||
$(QUIET)$(CP) $(SVGFILES) $(PNGFILES) $(HTMLDIR)/images
|
||||
$(QUIET)$(CP) $(ICONFILES) $(HTMLDIR)/images/icons
|
||||
|
||||
xhtml: $(XHTMLDIR)/vkspec.html $(TOPDOC) $(COMMONDOCS)
|
||||
|
||||
$(XHTMLDIR)/vkspec.html: $(CONFIG) $(SPECVERSION) $(TOPDOC) $(COMMONDOCS)
|
||||
$(QUIET)if test ! -d $(XHTMLDIR) ; then $(MKDIR) $(XHTMLDIR) ; fi
|
||||
$(QUIET)$(A2X) $(A2XOPTS) -f xhtml $(TOPDOC) \
|
||||
--xsl-file=$(XHTMLXSL) \
|
||||
-a toc2 -a toclevels=2 --destination-dir=$(XHTMLDIR) \
|
||||
-a svgpdf=$(SVGTYPEHTML)
|
||||
$(QUIET)$(MKDIR) $(XHTMLDIR)/images/icons $(XHTMLDIR)/config
|
||||
$(QUIET)$(ASCIIDOC) --backend docbook $(ADOCDBOPTS) \
|
||||
-a a2x-format=xhtml -a svgpdf=$(SVGTYPEHTML) \
|
||||
-o $(XHTMLDIR)/vkspec.xml $(TOPDOC)
|
||||
$(QUIET)$(XSLTPROC) $(XSLTOPTS) -o $@ $(XHTMLXSL) \
|
||||
$(XHTMLDIR)/vkspec.xml
|
||||
# Copy resource files in explicitly
|
||||
$(QUIET)$(CP) config/vkspec-xhtml.css $(XHTMLDIR)/config/
|
||||
$(QUIET)$(CP) $(SVGFILES) $(PNGFILES) $(XHTMLDIR)/images
|
||||
$(QUIET)$(CP) $(ICONFILES) $(XHTMLDIR)/images/icons
|
||||
$(QUIET)$(RM) $(XHTMLDIR)/vkspec.xml
|
||||
|
||||
chunked: $(OUTDIR)/vkspec.chunked/index.html $(TOPDOC) $(COMMONDOCS)
|
||||
chunked: $(CHUNKDIR)/index.html $(TOPDOC) $(COMMONDOCS)
|
||||
|
||||
$(OUTDIR)/vkspec.chunked/index.html: $(CONFIG) $(SPECVERSION) $(TOPDOC) $(COMMONDOCS)
|
||||
$(QUIET)if test ! -d $(OUTDIR)/chunked ; then $(MKDIR) $(OUTDIR) ; fi
|
||||
$(QUIET)$(A2X) $(A2XOPTS) -f chunked $(TOPDOC) \
|
||||
--xsl-file=$(CHUNKEDXSL) \
|
||||
-a toc2 -a toclevels=2 --destination-dir=$(OUTDIR) \
|
||||
-a svgpdf=$(SVGTYPEHTML)
|
||||
$(CHUNKDIR)/index.html: $(CONFIG) $(SPECVERSION) $(TOPDOC) $(COMMONDOCS)
|
||||
$(QUIET)$(MKDIR) $(CHUNKDIR)/images/icons $(CHUNKDIR)/config
|
||||
$(QUIET)$(ASCIIDOC) --backend docbook $(ADOCDBOPTS) \
|
||||
-a a2x-format=chunked -a svgpdf=$(SVGTYPEHTML) \
|
||||
-o $(CHUNKDIR)/vkspec.xml $(TOPDOC)
|
||||
$(QUIET)$(XSLTPROC) $(XSLTOPTS) \
|
||||
--stringparam base.dir $(CHUNKDIR)/ \
|
||||
-o $@ $(CHUNKXSL) $(CHUNKDIR)/vkspec.xml
|
||||
# Copy resource files in explicitly
|
||||
$(QUIET)$(CP) config/vkspec-xhtml.css $(CHUNKDIR)/config/
|
||||
$(QUIET)$(CP) $(SVGFILES) $(PNGFILES) $(CHUNKDIR)/images
|
||||
$(QUIET)$(CP) $(ICONFILES) $(CHUNKDIR)/images/icons
|
||||
$(QUIET)$(RM) $(CHUNKDIR)/vkspec.xml
|
||||
|
||||
pdf: $(PDFDIR)/vkspec.pdf
|
||||
|
||||
$(PDFDIR)/vkspec.pdf: $(PDFXSL) $(PDFSTY) $(PDFDIR)/vkspec.xml
|
||||
$(PDFDIR)/vkspec.pdf: $(CONFIG) $(SPECVERSION) $(TOPDOC) $(COMMONDOCS) $(PDFFILES)
|
||||
$(QUIET)$(MKDIR) $(PDFDIR)
|
||||
$(QUIET)$(ASCIIDOC) --backend docbook $(ADOCDBOPTS) \
|
||||
-a a2x-format=pdf -a svgpdf=pdf \
|
||||
-o $(PDFDIR)/vkspec.xml $(TOPDOC)
|
||||
$(QUIET)$(DBLATEX) -b pdftex $(DBLATEXOPTS) \
|
||||
-p "$(DBLATEXPREFIX)/asciidoc-dblatex.xsl" \
|
||||
-p $(PDFXSL) -s $(PDFSTY) \
|
||||
$(PDFDIR)/vkspec.xml -O $(PDFDIR)
|
||||
|
||||
$(PDFDIR)/vkspec.xml: $(CONFIG) $(SPECVERSION) $(TOPDOC) $(COMMONDOCS) $(PDFDIR) $(PDFFILES)
|
||||
$(QUIET)$(ASCIIDOC) --backend docbook $(ADOCPDFOPTS) \
|
||||
-a a2x-format=pdf -a svgpdf=pdf \
|
||||
--out-file $(PDFDIR)/vkspec.xml $(TOPDOC)
|
||||
|
||||
$(PDFDIR):
|
||||
$(QUIET)if test ! -d $(PDFDIR) ; then $(MKDIR) $(PDFDIR) ; fi
|
||||
-o $@ $(PDFDIR)/vkspec.xml
|
||||
$(QUIET)$(RM) $(PDFDIR)/vkspec.xml
|
||||
|
||||
# Generate Asciidoc attributes for spec version / date
|
||||
GITHEAD := ../../../.git/logs/HEAD
|
||||
|
@ -192,36 +223,30 @@ STYLEFILES = $(wildcard style/[A-Za-z]*.txt)
|
|||
|
||||
styleguide: $(OUTDIR)/styleguide.html
|
||||
|
||||
$(OUTDIR)/styleguide.html: $(CONFIG) $(SPECVERSION) $(STYLESRC) $(STYLEFILES)
|
||||
$(OUTDIR)/styleguide.html: $(CONFIG) $(SPECVERSION) $(STYLESRC) $(STYLEFILES) $(GENINCLUDE) $(GENDEPENDS)
|
||||
$(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) \
|
||||
-o $@ -a svgpdf=$(SVGTYPEHTML) \
|
||||
$(STYLESRC)
|
||||
|
||||
clean: clean_html clean_pdf clean_chunked clean_checks clean_dirt clean_man
|
||||
|
||||
clean_man:
|
||||
$(RM) $(MANHTML)
|
||||
$(RMRF) $(MANHTMLDIR)
|
||||
$(RM) $(MANPAGES)
|
||||
$(RMRF) $(MANPAGEDIR)
|
||||
clean: clean_html clean_pdf clean_man clean_checks clean_generated clean_dirt
|
||||
|
||||
clean_html:
|
||||
$(QUIET)$(RMRF) $(HTMLDIR) $(XHTMLDIR) $(STYLEXHTMLDIR)
|
||||
$(QUIET)$(RMRF) $(HTMLDIR) $(XHTMLDIR) $(CHUNKDIR)
|
||||
$(QUIET)$(RM) $(OUTDIR)/apispec.html $(OUTDIR)/styleguide.html
|
||||
|
||||
clean_pdf:
|
||||
$(QUIET)$(RM) \
|
||||
$(PDFDIR)/vkspec.pdf \
|
||||
$(PDFDIR)/vkspec.xml \
|
||||
$(OUTDIR)/apispec.pdf \
|
||||
$(OUTDIR)/apispec.xml
|
||||
$(QUIET)$(RM) $(PDFDIR)/vkspec.pdf $(OUTDIR)/apispec.pdf
|
||||
|
||||
clean_chunked:
|
||||
$(QUIET)$(RMRF) $(OUTDIR)/vkspec.chunked
|
||||
clean_man:
|
||||
$(QUIET)$(RMRF) $(MANHTMLDIR)
|
||||
$(QUIET)$(RMRF) $(MANPAGEDIR)
|
||||
|
||||
clean_checks:
|
||||
$(QUIET)$(RMRF) $(CHECKDIR)
|
||||
|
||||
clean_generated:
|
||||
$(QUIET)$(RMRF) api/* hostsynctable/* validity/* vkapi.py
|
||||
|
||||
clean_dirt:
|
||||
$(QUIET)$(RM) $(DIRT)
|
||||
|
||||
|
@ -238,18 +263,7 @@ WSISOURCES := $(wildcard $(MANDIR)/*KHR.txt)
|
|||
EXTSOURCES := $(wildcard $(MANDIR)/*EXT.txt)
|
||||
CORESOURCES := $(filter-out $(WSISOURCES) $(EXTSOURCES) $(MANDIR)/vkman.css,$(wildcard $(MANDIR)/[Vv][Kk]* $(MANDIR)/PFN*txt))
|
||||
MANSOURCES := $(CORESOURCES) $(WSISOURCES) $(EXTSOURCES)
|
||||
|
||||
MANCOPYRIGHT:= $(MANDIR)/khronoscopyright.txt $(MANDIR)/footer.txt
|
||||
MANPAGEDIR := $(OUTDIR)/man/$(MANSECTION)
|
||||
MANPAGES := $(MANSOURCES:$(MANDIR)/%.txt=$(MANPAGEDIR)/%.$(MANSECTION))
|
||||
MANHTMLDIR := $(OUTDIR)/man/html
|
||||
MANHTML := $(MANSOURCES:$(MANDIR)/%.txt=$(MANHTMLDIR)/%.html)
|
||||
|
||||
manpagesall: manpages manhtmlpages
|
||||
|
||||
manpages: $(MANPAGEDIR) $(MANPAGES)
|
||||
|
||||
manhtmlpages: $(MANHTMLDIR) $(MANHTML)
|
||||
|
||||
# Automatic generation of ref pages. Needs to have a proper dependency
|
||||
# causing the man page sources to be generated by running genRef (once),
|
||||
|
@ -260,56 +274,62 @@ man/apispec.txt: $(CHAPTERS) genRef.py reflib.py vkapi.py
|
|||
|
||||
# These dependencies don't take into account include directives
|
||||
|
||||
$(MANPAGEDIR)/%.$(MANSECTION): $(MANDIR)/%.$(MANSECTION)
|
||||
$(QUIET)mv $< $@
|
||||
# These targets are Unix 'man' nroff source, and are essentially useless
|
||||
# since the ref pages contain both LaTeX math equations and images.
|
||||
|
||||
$(MANDIR)/%.$(MANSECTION): CONFIG=config/manpages.conf
|
||||
MANPAGEDIR := $(OUTDIR)/man/$(MANSECTION)
|
||||
MANPAGES := $(MANSOURCES:$(MANDIR)/%.txt=$(MANPAGEDIR)/%.$(MANSECTION))
|
||||
|
||||
$(MANDIR)/%.$(MANSECTION): $(MANDIR)/%.txt $(MANCOPYRIGHT) config/manpages.conf
|
||||
$(QUIET)$(ECHO) Building $@
|
||||
$(QUIET)$(A2X) -d manpage -f manpage --asciidoc-opts "-f config/manpages.conf" $(A2XOPTS) $<
|
||||
manpages: $(MANPAGES)
|
||||
|
||||
$(MANPAGEDIR)/%.$(MANSECTION): CONFIG=config/manpages.conf
|
||||
|
||||
$(MANPAGEDIR)/%.$(MANSECTION): $(MANDIR)/%.txt $(MANCOPYRIGHT) config/manpages.conf $(GENINCLUDE) $(GENDEPENDS)
|
||||
$(QUIET)$(MKDIR) $(MANPAGEDIR)
|
||||
$(QUIET)$(ASCIIDOC) --backend docbook $(ADOCDBOPTS) --doctype manpage \
|
||||
-a a2x-format=manpage -a svgpdf=$(SVGTYPEHTML) \
|
||||
-o $@.xml $<
|
||||
$(QUIET)$(XSLTPROC) $(XSLTOPTS) -o $@ $(MANPAGEXSL) $@.xml
|
||||
$(QUIET)$(RM) $@.xml
|
||||
|
||||
# These targets are HTML ref pages
|
||||
|
||||
MANHTMLDIR := $(OUTDIR)/man/html
|
||||
MANHTML := $(MANSOURCES:$(MANDIR)/%.txt=$(MANHTMLDIR)/%.html)
|
||||
|
||||
manhtmlpages: $(MANHTML)
|
||||
|
||||
$(MANHTMLDIR)/%.html: CONFIG=config/manpages.conf
|
||||
|
||||
$(MANHTMLDIR)/%.html: $(MANDIR)/%.txt $(MANCOPYRIGHT) config/manpages.conf
|
||||
$(QUIET)$(ECHO) Building $@
|
||||
$(MANHTMLDIR)/%.html: $(MANDIR)/%.txt $(MANCOPYRIGHT) config/manpages.conf $(GENINCLUDE) $(GENDEPENDS)
|
||||
$(QUIET)$(MKDIR) $(MANHTMLDIR)
|
||||
$(QUIET)$(ASCIIDOC) -b html5 -d manpage $(ADOCOPTS) \
|
||||
-a themedir=$(CURDIR)/config -a theme=vkman \
|
||||
-o $@ -a svgpdf=$(SVGTYPEHTML) $<
|
||||
|
||||
$(MANHTMLDIR):
|
||||
$(QUIET)$(MKDIR) $@
|
||||
|
||||
$(MANPAGEDIR):
|
||||
$(QUIET)$(MKDIR) $@
|
||||
|
||||
# Man page targets for HTML and PDF single-file documents
|
||||
# These targets are HTML and PDF single-file versions of the ref pages
|
||||
|
||||
manpdf: $(OUTDIR)/apispec.pdf
|
||||
|
||||
manhtml: $(OUTDIR)/apispec.html
|
||||
|
||||
$(OUTDIR)/apispec.pdf: $(PDFXSL) $(PDFSTY) $(OUTDIR)/apispec.xml
|
||||
$(OUTDIR)/apispec.pdf: $(CONFIG) $(SPECVERSION) man/apispec.txt $(MANSOURCES) $(MANCOPYRIGHT) $(PDFXSL) $(PDFSTY) $(GENINCLUDE) $(GENDEPENDS)
|
||||
$(QUIET)$(MKDIR) $(OUTDIR)
|
||||
$(QUIET)$(ASCIIDOC) --backend docbook $(ADOCDBOPTS) \
|
||||
-a a2x-format=pdf -a svgpdf=pdf \
|
||||
-o $(OUTDIR)/apispec.xml man/apispec.txt
|
||||
$(QUIET)$(DBLATEX) -b pdftex $(DBLATEXOPTS) \
|
||||
-p "$(DBLATEXPREFIX)/asciidoc-dblatex.xsl" \
|
||||
-p $(PDFXSL) -s $(PDFSTY) \
|
||||
$(OUTDIR)/apispec.xml -O $(OUTDIR)
|
||||
-o $(OUTDIR) $(OUTDIR)/apispec.xml
|
||||
$(QUIET)$(RM) $(OUTDIR)/apispec.xml
|
||||
|
||||
$(OUTDIR)/apispec.xml: $(CONFIG) $(SPECVERSION) man/apispec.txt $(MANSOURCES) $(MANCOPYRIGHT) $(PDFXSL) $(PDFSTY)
|
||||
$(QUIET)$(ASCIIDOC) --backend docbook $(ADOCPDFOPTS) \
|
||||
-a a2x-format=pdf -a svgpdf=pdf \
|
||||
-o $@ man/apispec.txt
|
||||
|
||||
$(OUTDIR)/apispec.html: $(CONFIG) $(SPECVERSION) man/apispec.txt $(MANSOURCES) $(MANCOPYRIGHT) $(SVGFILES)
|
||||
$(QUIET)if test ! -d $(OUTDIR) ; then $(MKDIR) $(OUTDIR) ; fi
|
||||
$(OUTDIR)/apispec.html: $(CONFIG) $(SPECVERSION) man/apispec.txt $(MANSOURCES) $(MANCOPYRIGHT) $(SVGFILES) $(GENINCLUDE) $(GENDEPENDS)
|
||||
$(QUIET)$(MKDIR) $(OUTDIR)
|
||||
$(QUIET)$(ASCIIDOC) -b html5 -d book $(ADOCOPTS) \
|
||||
-a themedir=$(CURDIR)/config -a theme=vkspec-xhtml \
|
||||
-o $@ -a svgpdf=$(SVGTYPEHTML) man/apispec.txt
|
||||
|
||||
$(HTMLDIR)/images/%: images/%
|
||||
$(QUIET)$(MKDIR) $(@D)
|
||||
$(QUIET)$(CP) $< $@
|
||||
|
||||
# Automated (though heuristic) checks of consistency in the spec and
|
||||
# ref page sources
|
||||
|
||||
|
@ -328,7 +348,7 @@ INSPEC = $(CHECKDIR)/inspec
|
|||
NOTINSPEC = $(CHECKDIR)/notInSpec.txt
|
||||
checkinc:
|
||||
$(QUIET)if test ! -d $(CHECKDIR) ; then $(MKDIR) $(CHECKDIR) ; fi
|
||||
$(QUIET)ls $(INCLUDES) | sort > $(ACTUAL)
|
||||
$(QUIET)ls $(GENINCLUDE) | sort > $(ACTUAL)
|
||||
$(QUIET)cat $(CHAPTERS) | \
|
||||
egrep '^include::\.\./' | tr -d '[]' | \
|
||||
sed -e 's#^include::\.\./##g' | sort > $(INCFILES)
|
||||
|
@ -347,13 +367,54 @@ checkinc:
|
|||
# Generates files in $(CHECKDIR):
|
||||
# specErrs.txt - errors & warnings in API spec
|
||||
# manErrs.txt - errors & warnings in man pages
|
||||
checklinks:
|
||||
checklinks: vkapi.py
|
||||
$(QUIET)if test ! -d $(CHECKDIR) ; then $(MKDIR) $(CHECKDIR) ; fi
|
||||
$(QUIET)echo "Generating link checks for spec (specErrs.txt) and man pages (manErrs.txt)"
|
||||
$(QUIET)$(PYTHON) checkLinks.py -follow man/[Vv][Kk]*.txt > $(CHECKDIR)/manErrs.txt
|
||||
$(QUIET)$(PYTHON) checkLinks.py -follow $(CHAPTERS) > $(CHECKDIR)/specErrs.txt
|
||||
|
||||
# Targets generated from the XML and registry processing scripts
|
||||
# vkapi.py - Python encoding of the registry
|
||||
# api/timeMarker - proxy for 'apiincludes' - API include files under api/*/*.txt
|
||||
# hostsynctable/timeMarker - proxy for host sync table include files under hostsynctable/*.txt
|
||||
# validity/timeMarker - proxy for API validity include files under validity/*/*.txt
|
||||
#
|
||||
# EXTLIST specifies the extensions that will be included in these
|
||||
# targets. This will differ in different extension branches, although
|
||||
# all will include the VK_KHR_sampler_mirror_clamp_to_edge extension.
|
||||
# Each extension should be specified as a separate -extension option.
|
||||
|
||||
EXTLIST = -extension VK_KHR_sampler_mirror_clamp_to_edge
|
||||
REGISTRY = ../../../src/spec
|
||||
VKXML = $(REGISTRY)/vk.xml
|
||||
GENVK = $(REGISTRY)/genvk.py
|
||||
GENVKOPTS= $(EXTLIST) -registry $(VKXML)
|
||||
|
||||
vkapi.py: $(VKXML) $(GENVK)
|
||||
$(PYTHON) $(GENVK) $(GENVKOPTS) -o . vkapi.py
|
||||
|
||||
apiinc: api/timeMarker
|
||||
|
||||
api/timeMarker: $(VKXML) $(GENVK)
|
||||
$(QUIET)$(MKDIR) api
|
||||
$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o api apiinc
|
||||
|
||||
hostsyncinc: hostsynctable/timeMarker
|
||||
|
||||
hostsynctable/timeMarker: $(VKXML) $(GENVK)
|
||||
$(QUIET)$(MKDIR) hostsynctable
|
||||
$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o hostsynctable hostsyncinc
|
||||
|
||||
validinc: validity/timeMarker
|
||||
|
||||
validity/timeMarker: $(VKXML) $(GENVK)
|
||||
$(QUIET)$(MKDIR) validity
|
||||
$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o validity validinc
|
||||
|
||||
# Debugging aid - generate all files from registry XML
|
||||
generated: vkapi.py api/timeMarker hostsynctable/timeMarker validity/timeMarker
|
||||
|
||||
# README file with build instructions
|
||||
README.html: $(CONFIG) $(SPECVERSION) README.txt
|
||||
README.html: $(CONFIG) $(SPECVERSION) README.adoc
|
||||
$(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) \
|
||||
-o $@ README.txt
|
||||
-o $@ README.adoc
|
||||
|
|
|
@ -36,7 +36,7 @@ non-Windows environments.
|
|||
|
||||
or equivalently:
|
||||
|
||||
$ make xhtml chunked pdf manhtml manpdf manpages manhtmlpages checkinc checklinks
|
||||
$ make xhtml chunked pdf manhtml manpdf manhtmlpages checkinc checklinks
|
||||
|
||||
This will generate a variety of targets under +$(OUTDIR)+ (by default,
|
||||
+../../../out/1.0+). The checked-in file +$(OUTDIR)/index.html+ links to
|
||||
|
@ -50,7 +50,6 @@ them all, or they can individually be found as follows:
|
|||
** +manhtml+ - Single-file HTML in +$(OUTDIR)/apispec.html+
|
||||
** +manpdf+ - Single-file PDF in +$(OUTDIR)/apispec.html+
|
||||
** +manhtmlpages+ - File-per-entry-point HTML in +$(OUTDIR)/man/html/*+
|
||||
** +manpages+ - File-per-entry-point nroff source in +$(OUTDIR)/man/3/*+
|
||||
* Validator output:
|
||||
** +checkinc+ - List of commands, structs, etc. missing from the API spec in
|
||||
+$(OUTDIR)/checks/notInSpec.txt+
|
||||
|
@ -71,6 +70,12 @@ the standard +/etc/asciidoc/dblatex+ directory, set the environment variable
|
|||
+asciidoc-dblatex.xsl+ and +asciidoc-dblatex.sty+ files installed with
|
||||
asciidoc).
|
||||
|
||||
The +manpages+ target is deprecated, as the resulting Unix man pages have
|
||||
issues with content like embedded latexmath: constructs, but is still
|
||||
available for third parties wishing to generate them:
|
||||
|
||||
* +manpages+ - File-per-entry-point nroff source in +$(OUTDIR)/man/3/*+
|
||||
|
||||
|
||||
[[building-test]]
|
||||
=== Alternate and Test Builds ===
|
|
@ -797,35 +797,6 @@ asciidoc.install();
|
|||
<div class="sect1">
|
||||
<h2 id="intro">Introduction</h2>
|
||||
<div class="sectionbody">
|
||||
<div class="paragraph"><p><a href="http://www.khronos.org/">http://www.khronos.org/</a></p></div>
|
||||
<div class="paragraph"><p><code><a href="#www.khronos.org">www.khronos.org</a></code></p></div>
|
||||
<div class="paragraph"><p><code><a href="#out/apispec.pdf">out/apispec.pdf</a></code></p></div>
|
||||
<div class="ulist"><ul>
|
||||
<li>
|
||||
<p>
|
||||
link\:{path}/apispec.html#vkWaitForFences
|
||||
</p>
|
||||
<div class="ulist"><ul>
|
||||
<li>
|
||||
<p>
|
||||
link:../vulkan/out/apispec.html#vkWaitForFences
|
||||
</p>
|
||||
</li>
|
||||
</ul></div>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
link\:{path}/apispec.html#vkWaitForFences\[Relpath\]
|
||||
</p>
|
||||
<div class="ulist"><ul>
|
||||
<li>
|
||||
<p>
|
||||
<code><a href="#../vulkan/out/apispec.html#vkWaitForFences">../vulkan/out/apispec.html#vkWaitForFences</a></code>
|
||||
</p>
|
||||
</li>
|
||||
</ul></div>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="paragraph"><p>This README describes important stuff for getting the Vulkan API
|
||||
specification and reference pages building properly.</p></div>
|
||||
</div>
|
||||
|
@ -848,7 +819,7 @@ non-Windows environments.</p></div>
|
|||
<div class="paragraph"><p>or equivalently:</p></div>
|
||||
<div class="literalblock">
|
||||
<div class="content monospaced">
|
||||
<pre>$ make xhtml chunked pdf manhtml manpdf manpages manhtmlpages checkinc checklinks</pre>
|
||||
<pre>$ make xhtml chunked pdf manhtml manpdf manhtmlpages checkinc checklinks</pre>
|
||||
</div></div>
|
||||
<div class="paragraph"><p>This will generate a variety of targets under <span class="monospaced">$(OUTDIR)</span> (by default,
|
||||
<span class="monospaced">../../../out/1.0</span>). The checked-in file <span class="monospaced">$(OUTDIR)/index.html</span> links to
|
||||
|
@ -896,11 +867,6 @@ Reference pages:
|
|||
<span class="monospaced">manhtmlpages</span> - File-per-entry-point HTML in <span class="monospaced">$(OUTDIR)/man/html/*</span>
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
<span class="monospaced">manpages</span> - File-per-entry-point nroff source in <span class="monospaced">$(OUTDIR)/man/3/*</span>
|
||||
</p>
|
||||
</li>
|
||||
</ul></div>
|
||||
</li>
|
||||
<li>
|
||||
|
@ -936,6 +902,16 @@ the standard <span class="monospaced">/etc/asciidoc/dblatex</span> directory, se
|
|||
<span class="monospaced">DBLATEXPREFIX</span> to the path to that directory (the one containing the
|
||||
<span class="monospaced">asciidoc-dblatex.xsl</span> and <span class="monospaced">asciidoc-dblatex.sty</span> files installed with
|
||||
asciidoc).</p></div>
|
||||
<div class="paragraph"><p>The <span class="monospaced">manpages</span> target is deprecated, as the resulting Unix man pages have
|
||||
issues with content like embedded latexmath: constructs, but is still
|
||||
available for third parties wishing to generate them:</p></div>
|
||||
<div class="ulist"><ul>
|
||||
<li>
|
||||
<p>
|
||||
<span class="monospaced">manpages</span> - File-per-entry-point nroff source in <span class="monospaced">$(OUTDIR)/man/3/*</span>
|
||||
</p>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="sect2">
|
||||
<h3 id="building-test">Alternate and Test Builds</h3>
|
||||
<div class="paragraph"><p>If you are just testing asciidoc formatting, macros, stylesheets, etc.,
|
||||
|
@ -1310,7 +1286,7 @@ Devel/git (2.5.1-1) - Needed for updating specversion.txt
|
|||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Last updated
|
||||
2016-07-14 03:33:23 PDT
|
||||
2016-07-21 01:40:18 PDT
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
See README.html (asciidoc source in README.txt) for instructions and
|
||||
See README.html (asciidoc source in README.adoc) for instructions and
|
||||
notes about building the spec. Unfortunately gitlab won't render HTML or
|
||||
Asciidoc in its web view page, so this README.md is of limited utility.
|
||||
|
|
|
@ -8,7 +8,7 @@ ifdef::doctype-manpage[]
|
|||
endif::doctype-manpage[]
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
|
||||
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
|
||||
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
|
||||
#else
|
||||
#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
|
|
@ -8,6 +8,6 @@ ifdef::doctype-manpage[]
|
|||
endif::doctype-manpage[]
|
||||
------------------------------------------------------------------------------
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 21
|
||||
#define VK_HEADER_VERSION 22
|
||||
|
||||
------------------------------------------------------------------------------
|
|
@ -25,5 +25,6 @@ typedef enum VkResult {
|
|||
VK_ERROR_INCOMPATIBLE_DRIVER = -9,
|
||||
VK_ERROR_TOO_MANY_OBJECTS = -10,
|
||||
VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
|
||||
VK_ERROR_FRAGMENTED_POOL = -12,
|
||||
} VkResult;
|
||||
------------------------------------------------------------------------------
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue