* Bump API patch number and header version number to 34 for this update.
Github Issues:
* Allow vkUpdateDescriptorSets overflow to skip empty bindings. Clarify
that unused bindings have a descriptorCount of zero. Improve some valid
usage for vkUpdateDescriptorSets (public issue 256).
* Require that slink:VkImageSubresourceRange always define a non-empty
range of the resource (public issue 303).
* Added valid usage for slink:VkPresentInfoKHR on the layout of presented
images (public issue 397).
Internal Issues:
* Add dependency in src/spec/Makefile so specversion.txt is regenerated
when needed (internal issue 462).
* Shorten the table of contents in the single-page ref page HTML output.
Still working on the PDF (internal issue 536).
* Bump API patch number and header version number to 33 for this update.
Github Issues:
* Added implicit external synchronization parameters to
vkBegin/EndCommandBuffer, and fixed missing command pool host
synchronization from per-command lists (public issue 398).
* Started using git tags including the spec release number, such as
'v1.0.32-core', instead of tags including the date of release, such as
'v1.0-core-20161025' (public issue 405).
Internal Issues:
* Add validity constraint for
slink:VkImportMemoryWin32HandleInfoNV::pname:handle (internal issue
#480).
* Add scripts to compare two Vulkan HTML specifications, derived from W3
htmldiff service (internal issue 525).
* Relax requirement that memoryTypeBits can't depend on format, to allow
it to differ only for depth/stencil formats (internal issue 544).
* Add a new generator script to create a simple extension loader for
Vulkan based on +vk.xml+ (internal issue 558).
* Add the overlooked requirement that buffer and image memory
alignment requirements must be a power of two in the
<<resources-association,Resource Memory Association>> section
(internal issue 569).
Other Issues:
* Add a naming rule to the style guide for members of extension structures
defining array lengths which are the same as array lengths of the core
structure they are chained from.
* Add a new generator to create a simple extension loader in
+src/ext_loader/vulkan_ext.[ch]+ from +vk.xml+. This code can be
included in your project, and is expected to be packaged in the Vulkan
SDK provided by LunarG in the future.
* Bump API patch number and header version number to 25 for this update.
* Structurally change the specification so that multiple extensions are
included in the +1.0+ git branch, and specifications will include or not
include those extensions at build time based on options passed to the
Makefile. See +doc/specs/vulkan/README.html+ and the ``Layers and
Extensions'' section of the ``Vulkan Documentation and Extensions''
document for more information on this change.
* Register and publish new extensions in the single-branch form:
** +VK_NV_external_memory_capabilities+
** +VK_NV_external_memory+
** +VK_NV_external_memory_win32+
** +VK_NV_win32_keyed_mutex+
Github Issues:
* Clarify description of GetInstanceProcAddr and GetDeviceProcAddr (public
issue 212).
* Add SPIR-V <<textures-operation-validation, instruction validation>> for
single-sampled images (public issue 316).
* Fix spelling of ``tesselation'' in a few places and note it as an
exception to the American spelling rules convention (public issue
327).
* Fix Makefile to create output directory for ``styleguide''
target (public issue 329).
* Fix numerous minor issues with incorrectly tags on enumerant names and
table titles (public issue 330).
* Generate specversion.txt date in UTC time and RFC 2822 format
(public issue 335).
* Convert link to the SPIR-V Specification for
flink:VkShaderModuleCreateInfo into an internal link to the normative
reference (public issue 336).
* Add ename:VK_ERROR_OUT_OF_MEMORY error code to
flink:vkCreateDebugReportCallbackEXT (public issue 337).
Internal Issues:
* Update style guide regarding use of code:NULL and dname:VK_NULL_HANDLE
(internal issue 393).
* Change the definition of latexmath:[$q$] in the
<<textures-image-level-selection,texture image level selection>> section
to be the index of the maximum defined level for the view, not the
number of levels in the view (internal issue 406).
* Allow developers to override dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE
with their own binary-compatible definition (internal issue 439).
* Fix +vk_platform.h+ conditional logic causing compile failure with some
Android compilers (internal issue 441).
* Implement the single-branch model as described above (internal issue
461).
Other Issues:
* 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.
* Bump API patch number and header version number to 20 for this
update.
Github Issues:
* Replaced existing reference pages by text automatically extracted
from the specification source, or generated from vk.xml in some
cases. This isn't a complete solution for the reference pages, but
puts them in a much better state. The ref pages (only) are now
placed under a CC BY open source license, which is more current than
the obsolete license previously used.
Further improvements to the pages should not edit them directly, but
instead concentrate on the specification source from which the ref
pages are being extracted (public issues 44, 55, 160; internal issue
389).
* Bump API patch number and header version number to 11 for this
update.
Github Issues:
* Clarify the WSI extension language by switching from the fuzzier
"ownership" language to more-consistent "acquire" language (public
issue 117).
* Clarify that memory barriers apply to all commands in the dependency
chains in the flink:vkGetRenderAreaGranularity command and the
<<synchronization-execution-and-memory-dependencies,Execution And
Memory Dependencies>> section (public issue 132).
* Clarify that a queue family is a set of queues in the
<<fundamentals-execmodel,Execution Model>> section (public issue
166).
* Removed requirement from valid usage language that
VkPresentInfoKHR::waitSemaphoreCount must be greater than 0 (public
issue 171).
* Fix broken internal links, describe structures consistently, use
consistent style for SPIR-V codewords, and tag normative terms that
were missing asciidoc tags (public issue 183 and ancillary
markup/normative language fixes).
* Fix typos for slink:VkPhysicalDeviceLimits member names in
slink:VkImageCreateInfo validity language (public issue 184).
Internal Issues:
* Document that the requested patch version number specified as part
of slink:VkApplicationInfo::pname:apiVersion is ignored when
creating an instance (internal issue 176).
* Clarify handling of extension structs in the
<<fundamentals-validusageValid Usage>> section (internal issue 254).
* Update required slink:VkImageFormatProperties::pname:maxMipLevels to
be limited to the maximum allowed mipmap pyramid size corresponding
to the actual maximum supported size for the format (internal issue
256).
* Modify the <<features-extentperimagetype,Allowed Extent Values Based
On Image Type>> section so the allowed maximum extent is the maximum
image dimension supported for each dimension of the type of texture
being queried (internal issue 257).
* Clarify in the <<spirvenv-module-validation,Validation Rules within
a Module>> section that at least one of the code:LocalSize execution
mode or code:WorkgroupSize decoration is required for each compute
shader entry point in a shader module (internal issue 279).
* Add validity rules for formats in flink:vkCmdClearColorImage and
flink:vkCmdClearDepthStencilImage (internal issue 283).
* Clarify that slink:VkImageFormatProperties::pname:maxResourceSize is
an upper bound, and that it may not be possible to create an image
anywhere near that size (internal issue 284).
Other Commits:
* Fix various minor markup errors reported by validation scripts.
* Change copyright from Khronos Free Use License to Apache 2.0 license
on relevant script/XML/header files. This does not affect the
specification source copyright.
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.