Commit Graph

9 Commits

Author SHA1 Message Date
Jon Leech 3e4bee3d11 Change log for March 10, 2017 Vulkan 1.0.43 spec update:
* Bump API patch number and header version number to 43 for this update.

Github Issues:

  * Make clearer that color write mask is applied regardless of whether
    blending is enabled, by referring to the
    <<framebuffer-color-write-mask,Color Write Mask>> section (public issue
    241).
  * Fix public issue 414:
  ** Added two new command buffer states (invalid, pending), and an explicit
     "command buffer lifecycle" section to explain them.
  ** Replaced "pending execution" with "in the pending state".
  ** Replaced a bunch of "this will invalidate the command buffer" language
     with "this will move the command buffer to the invalid state", and added
     validation language for what state those command buffers should be in.
  ** Added additional validation language about what state a command buffer
     should be in for various commands that affect it.
  ** Added invalidation language to destroy commands in the lifetimes section
     of fundamentals.
  ** Added command buffers to list of objects which must not be deleted
     whilst a (primary) command buffer is in the recording or pending state.
  * Update `GL_KHR_vulkan_glsl` extension to allow anonymous push constant
    blocks (public issue 428).

Internal Issues:

  * Document rules about extension interactions in the style guide (internal
    issue 579).
  * Require ename:VK_PRESENT_MODE_MAILBOX_KHR support in queries of surfaces
    created with flink:vkCreateWaylandSurfaceKHR using the
    VK_KHR_wayland_surface extension (internal issue 666).
  * Remove Valid Usage constraints for flink:vkAllocateDescriptorSets when
    the `VK_KHR_maintainance1` extension is present (internal issue 686).
  * Remove undocumented KHX-variants of vkGetPhysicalDeviceProperties2KHR
    and vkGetPhysicalDeviceImageFormatProperties2KHR from the
    <<VK_KHX_external_memory_capabilities>> and
    <<VK_KHX_external_semaphore_capabilities>> extensions.

New Extensions:

  * `VK_EXT_hdr_metadata`
  * `VK_GOOGLE_display_timing`
2017-03-10 17:39:29 -08:00
Jon Leech e29a51b231 Change log for February 17, 2017 Vulkan 1.0.41 spec update:
* Bump API patch number and header version number to 41 for this update.

Github Issues:

  * Made all uses of `NULL` vs. code:VK_NULL_HANDLE consistent (public issue
    276).
  * Clarify render pass compatibility in different usage scenarios (public
    issues 303 and 304).
  * Add valid usage statements to slink:VkFramebufferCreateInfo requiring
    that the width, height, and number of layers of the framebuffer all be
    nonzero (public issue 432).
  * Allow `offset` and `align` in any GLSL version for the
    `GL_KHR_vulkan_glsl` extension (public issue 435).
  * Specify lifetime of string objects passed to the
    tlink:PFN_vkDebugReportCallbackEXT user callback in the
    +VK_EXT_debug_report+ extension (public issue 446).
  * Fix inter-page links in multi-file reference pages (public issue 454).

Internal Issues:

  * Update valid usage language for slink:VkImageCreateInfo to disallow
    creating images that have ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
    set without other attachment usage bits
    (ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
    ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, or
    ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) (internal issue 540).
  * Disable `VK_EXT_swapchain_colorspace` extension until internal issues
    640 and 661 are mutually resolved.
  * Allow alternative mipmap level selection when [eq]#lambda == 0.5# during
    texture <<textures-image-level-selection,Image Level(s) Selection>>
    (internal issue 680).

Other Issues:

  * Add a clarification to the style guide that the extension revision
    number is treated as a patch number, so that changes to published
    extensions should only include bug fixes and spec clarifications.
2017-02-17 03:57:46 -08:00
Jon Leech 82e0f83d43 Change log for February 10, 2017 Vulkan 1.0.40 spec update:
* Bump API patch number and header version number to 40 for this update.
  * There is a major build change in this release. We are now using the
    Ruby-based ``asciidoctor'' implementation, rather than the Python-based
    ``asciidoc'' implementation, to process the specification. While the
    actual specification markup changes were minimal, this requires a new
    set of build tools and a very different installation process, especially
    because we now use an experimental direct-to-PDF backend for Asciidoctor
    instead of Docbook->dblatex->PDF. It is no longer possible to build the
    Specification using asciidoc. See doc/specs/vulkan/README.adoc
    for some guidance on installing the new toolchain components.
  * There are some minor rendering issues in the PDF output due to teething
    problems with the asciidoctor toolchain, especially with mathematical
    equations. We are aware of these and working on them.

Github Issues:

  * Updated sample code for the <<sparsememory-examples-basic,sparse
    resource binding example>> (public issue 97).
  * Modify line and point clipping behavior in the
    <<vertexpostproc-clipping, Primitive Clipping>> section to allow for
    pop-free behavior. The ability to check for which behavior is
    implemented may be added a future feature or extension (public issue
    113).
  * Unify the discussions of implicit ordering throughout the spec, in
    particular in the new sections <<drawing-primitive-order, Primitive
    Order>>, <<primrast-order, Rasterization Order>>, and
    <<synchronization-implicit, Implicit Synchronization Guarantees>>; the
    discussion of <<synchronization-submission-order, submission order>>;
    and references elsewhere to these sections (public issue 133).
  * Clarify \<\<descriptorsets-compatibility,Pipeline Layout Compatibility>>
    language and introduce the term ``identically defined'' (public issue
    164).
  * Add a dependency to the +VK_EXT_debug_marker+ extension that's needed to
    reuse the object type enum from +VK_EXT_debug_report+, and moves the
    definition of that enum into +VK_EXT_debug_report+ where it should be
    (public issue 409).
  * Remove redundant valid usage statement from slink:VkImageBlit (public
    issue 421).
  * Update GL_KHR_vulkan_glsl to allow the ternary operator to result in a
    specialization constant (public issue 424).
  * Fix valid usage for flink:VkPipelineShaderStageCreateInfo (public issue
    426).
  * Correct typo in New Objects list for <<VK_EXT_debug_report>> (public
    issue 447).

Internal Issues:

  * Moved to asciidoctor for spec builds (internal issue 121).
  * Update style guide to describe where to put new extensions-specific
    asciidoc files, and what to name them (internal issue 626).
  * Add src/spec/indexExt.py to autogenerate registry index entries linking
    into the 1.0-extensions specification, instead of maintaining the index
    manually. (internal issue 642).
  * Autogenerate extension dependencies and lists of all extensions and all
    KHR extensions from the "supported" attributes in +vk.xml+. Execute
    +make config/extDependency.sh+ from +doc/specs/vulkan+ when a supported
    extension is added to vk.xml, to regenerate the dependency script. The
    consequence is that specifying a single extension to the +makeExt+
    script will automatically enable all extensions it depends on as well,
    and that the +makeAllExts+ and +makeKHR+ scripts do not need to be
    updated when a new extension is supported (internal issue 648).
  * Put extension appendices all at the same asciidoc section level, so KHR
    WSI extensions show up in the HTML index (internal issue 648).

Other Issues:

  * Imbed images in the generated HTML specs instead of loading them from
    the images/ directory.
  * Fix missing EXT in extension name
    (ename:VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME).
  * Add new +VK_EXT_SMPTE_2086_metadata+ extension.
  * In the <<platformCreateSurface_xlib,Xlib Surface>> section of the
    +VK_KHR_xlib_surface+ specification, add language warning users that
    they always need to call code:XinitThreads.
  * Use the term "presentable image" (rather than "swapchain image")
    consistently in +VK_KHR_swapchain+ and related extensions, and add a
    glossary term defining it.
  * Relocate the valid usage for samples of
    flink:vkGetPhysicalDeviceSparseImageFormatProperties2KHR::pname:pFormatInfo
    to be below the flink:VkPhysicalDeviceSparseImageFormatInfo2KHR
    structure.
2017-02-10 20:37:39 -08:00
Jon Leech ca4abe0d34 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-17 20:11:25 -08:00
Jon Leech 6cdc56d0d7 Change log for November 11, 2016 Vulkan 1.0.33 spec update:
* 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.
2016-11-12 03:23:34 -08:00
Jon Leech 348990517c Change log for September 30, 2016 Vulkan 1.0.29 spec update:
* Bump API patch number and header version number to 29 for this update.

Github Issues:

  * Remove redundant constraint on
    slink:VkCommandBufferInheritanceInfo::pname:queryFlags (public issue
    224).
  * Fix typo and remove link in Note in the
    <<extended-functionality-instance-extensions-and-devices, Instance
    Extensions and Device Extensions>> section (public issue 359).
  * Fix erroneous validation statement for the pname:layout member of
    slink:VkComputePipelineCreateInfo (public issue 362).

Internal Issues:

  * Restore long figure captions using asciidoc sidebar blocks, due to
    restrictions of asciidoc syntax (internal issue 101).
  * Replace most latexmath equations with comparable markup in straight
    asciidoc, which significantly improves time required to fully load and
    process the HTML forms of the Specification. There are known minor font
    and alignment inconsistencies with MathJax and PDF rendering of
    latexmath equations. Please do not file github issues about these. We
    are aware of the inconsistencies and will make refinements over time,
    while the performance improvements are compelling in at least some major
    browsers (internal issue 313).
  * Move handcoded validity statements from +vk.xml+ into the Specification
    body, easing work in the single-branch model. Specify the distinction
    between these explicit statements, and the implicit validity statements
    inferred from vk.xml. Validity statements now appear in two blocks for
    each command and structure - handcoded "Valid Usage" and the implicit
    "Valid Usage (Implicit)" (internal issue 392).
  * Add the +returnedonly="false"+ attribute to WSI output structures,
    removing incorrectly generated implicit validity statements for
    slink:VkDisplayPropertiesKHR, slink:VkDisplayPlanePropertiesKHR,
    slink:VkDisplayModePropertiesKHR, slink:VkDisplayPlaneCapabilitiesKHR,
    slink:VkSurfaceCapabilitiesKHR, and slink:VkSurfaceFormatKHR structures
    (internal issue 486).
  * Update slink:VkImageLayout to require the
    ename:VK_IMAGE_USAGE_SAMPLED_BIT be set for sampled depth/stencil images
    (internal issue 487).
  * Use an explicit format specifier string for the date command invocation
    in the +Makefile+ instead of the shorthand -R option, which doesn't work
    on BSD and MaxOS X date commands (internal issue 500).

Other Issues:

  * Use the terms ``allocation scope'' and ``extension scope'' instead of
    just ``scope'', and add them to the glossary.
2016-09-30 21:13:37 -07:00
Jon Leech 95dd2f34c5 Change log for September 23, 2016 Vulkan 1.0.28 spec update:
* Bump API patch number and header version number to 28 for this update.

Github Issues:

  * Minor spelling and typography cleanup, add definitions of
    ename:VK_FALSE and ename:VK_TRUE as just what their names say
    (public issues 220, 318, 325, 365; internal issues 451, 496)
  * Clarify that the pname:maxDescriptorSet limits in the
    <<features-limits-required,Required Limits>> table are n *
    maxPerStage limit (where n=number of supported stages) (public issue
    254).
  * Minor cleanup to <<boilerplate-platform-macros,Platform-Specific
    Macro Definitions>> appendix (public issue 314).
  * Add valid usage statement to slink:VkPipelineLayoutCreateInfo
    disallowing multiple push constant ranges for the same shader stage
    (public issue 340).
  * Clarify the elink:VkSharingMode description of what executing the
    "same" barriers means in case of ownership transfer (public issue
    347).
  * Rename copyright.txt and add COPYING.md to try and reduce confusion
    about applicable copyrights (public issue 350).
  * Extend the table in the <<boilerplate-wsi-header, Window System-Specific
    Header Control>> section to describe the external headers included when
    each etext:VK_USE_PLATFORM_* macro is defined (public issue 376).

Internal Issues:

  * Add "Revision History" to the PDF outputs following the table of
    contents, to match HTML outputs (internal issue 43).
  * Clarified that flink:vkMapMemory may fail due to virtual address
    space limitations (internal issue 346).
  * Add +refBody+ comment markup for ref page autoextraction when required
    (internal issue 400).
  * Document proper use of "mipmap" and "mip" in the style guide API
    naming rules, matching the spelling rules (internal issue 471).
  * Tweak the <<extensions,Layers and Extensions>> appendix to note that
    the Specification may be built with arbitrary combinations of
    extensions (internal issue 483).
  * Remove incorrect statement allowing
    slink:VkClearAttachment::pname:colorAttachment to be >=
    slink:VkSubpassDescription::pname:colorAttachmentCount (internal
    issue 488).
  * The <<features-limits-viewportboundsrange,viewportBoundsRange>> is
    expressed in terms of the pname:maxViewportDimensions but this is
    actually two values. Clarify that it's based on the larger of the two
    (if they differ) (internal issue 499).

Other Issues:

  * Reflowed text of the entire spec using the 'reflow' Makefile gater,
    to (hopefully) reduce future internal git churn as edits are made
    and extensions added in return for one-time pain. This has no
    perceptible change on the spec outputs but considerable changes on
    the asciidoc source (internal issue 367).
2016-09-24 01:54:47 -07:00
Jon Leech ef053e7c82 Change log for September 16, 2016 Vulkan 1.0.27 spec update:
* Bump API patch number and header version number to 27 for this update.

Github Issues:

  * Weaken flink:vkGetPipelineCacheData invariance conditions; previous
    conditions were stronger than agreed and can't be guaranteed (public
    issue 280).
  * Add link to "Vulkan Loader Specification and Architecture Overview"
    document to Normative References section (public issue 359).

Internal Issues:

  * Be more clear in the <<interfaces-resources-layout-std140, uniform
    buffer layout>> section that block offsets can be out of order
    (internal issue 396).
  * Document that extension authors should add support for their extensions
    to the validation layers (internal issue 398).
  * Clarify that the valid range of depth clear values should be limited
    to the 0..1 range and that copies to depth aspect must also be in this
    range (internal issue 412).
  * Specify ``a'' vs. ``an'' use in the style guide (internal issue 432).
  * Increase the maximum pname:nonCoherentAtomSize value in the
    <<features-limits-required,Required Limits>> section from 128 to 256
    (internal issue 435).
  * Fix vk_platform.h for compiler errors on some Android platforms
    (internal issue 441).
  * Clarify that slink:VkPhysicalDeviceFeatures::pname:pEnabledFeatures ==
    `NULL` disables all features, including the "required" feature
    pname:robustBufferAccess (internal issue 479).

Other Issues:

  * Expand style guide and make it more self-consistent.
  * Use ISO 8601 date format everywhere.
  * Emphasise the correct way of using
    slink:VkSurfaceCapabilitiesKHR::pname:maxImageCount.
  * Added +VK_EXT_validation_flags+ extension for validation flag mechanism.
  * Fix an <<credits,author credit>> to include their current employer.
2016-09-16 21:22:17 -07:00
Jon Leech f4c4113d07 Change log for July 15, 2016 Vulkan 1.0.21 spec update:
* Bump API patch number and header version number to 21 for this update.

Github Issues:

  * Clarify how <<features-supported-sample-counts,sample count queries>>
    relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
    185).
  * Clarify in the <<interfaces-iointerfaces,Shader Input and Output
    Interfaces>> section that shader output variables have undefined values
    until the shader writes to them (public issue 240).
  * Specify the implicit value of image parameters that cannot be set in
    slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
    pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
    (public issue 243).
  * Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
    VK_KHR_swapchain extension (public issue 276).

Internal Issues:

  * Clarify that presenting an image to a display surface swapchain applies
    the display surface's mode, and that destroying a display surface
    swapchain may reset the display's mode, in the VK_KHR_display_swapchain
    extension (internal issue 247).
  * Better describe what a slink:VkSurfaceKHR is, and that creating one does
    not set a mode, in the VK_KHR_display extension. This is a round-about
    way of pointing out that mode setting is not covered by the extension,
    but rather is performed as a side effect of presentation (internal issue
    247).
  * Add more valid usage statements to flink:vkQueuePresentKHR command when
    the VK_KHR_display_swapchain extension is present (internal issue
    247).
  * Add more includes to the VK_KHR_swapchain extension to better document
    interactions with VK_KHR_display_swapchain (internal issue 247).
  * Clarify restrictions on location aliasing in the
    <<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
    370).
  * Add mathematical description of blitting to flink:vkCmdBlitImage, and
    link it to the <<textures,Image Operations>> chapter. Use mathematical
    notation for ranges of texel coordinates in the <<textures,Image
    Operations>> chapter. Fixed miscellaneous validity statements for
    flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).

Other Commits:

  * Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
    ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
    tessellation shaders are used.
  * Expand the style guide into a formal "Procedures and Conventions"
    document. Add a API Naming Conventions section, move most of the API
    Specification Appendix C (Layers and Extensions) content into the new
    document, and define the resulting procedures as mandatory (where
    relevant). This more clearly separates use vs. specification of Vulkan
    APIs.
  * Update vk_platform.h to handle 32-bit ARMv8 binaries.
  * Various minor cleanups to the Makefile and build process.
2016-07-15 19:05:43 -07:00