Commit Graph

19 Commits

Author SHA1 Message Date
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 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 eaea7d2709 Change log for September 6, 2016 Vulkan 1.0.26 spec update:
* Bump API patch number and header version number to 26 for this update.

Github Issues:

  * Bring sample code in the +VK_KHR_surface+ and +VK_KHR_swapchain+
    extension summary appendices up to date, and note they will be replaced
    with pointers to the LunarG SDK examples in the future (public issue
    279).
  * Add a new <<fundamentals-commandsyntax-results-lifetime,Lifetime of
    Retrieved Results>> section specifying that ftext:vkGet* and
    ftext:VkEnumerate* results are invariant unless otherwise specified, and
    specify behavior for individual commands which are not invariant (public
    issue 280).
  * Remove conflicting definition of
    slink:VkDisplayPlaneCapabilitiesKHR::pname:maxSrcPosition and clean up
    language of the remaining definition (public issue 351).
  * Fix many minor spelling errors and add rules to the style guide to
    prevent recurrences (public issue 352).

Internal Issues:

  * Remove redundant descriptions of the etext:VK_USE_PLATFORM_* macros from
    the <<wsi,Window System Integration>> chapter in favor of the
    description in the <<boilerplate-wsi-header,Window System-Specific
    Header Control>> appendix (internal issue 6).
  * Replace misleading 'can: be destroyed when not X' with more correct
    'must: not be destroyed while X' in the
    <<fundamentals-objectmodel-lifetime,Object Lifetime>> section. Disallow
    destroying a pipeline layout while a command buffer using it is
    recording (internal issue 241).
  * Clarify that ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT is valid for
    all images used as attachments in elink:VkImageUsageFlagBits and the
    slink:VkImageLayout validity language (internal issue 320).
  * Note that <<extended-functionality-layers,Layers>> may wrap object
    handles, but that this is a generally discouraged. A link to additional
    information in the documentation for layer authors is provided (issue
    398)
  * Replace the mustnot: and shouldnot: macros with equivalent must: not and
    should: not to get rid of non-English words while still highlighting
    normative language (internal issue 407).
  * Disallow creating multisampled images with
    ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT in the slink:VkImageLayout
    validity language and the <<features-supported-sample-counts,Supported
    Sample Counts>> section (internal issue 445).
  * Fix typo so that flink:vkCmdDrawIndexedIndirect is defined in terms of
    flink:vkCmdDrawIndexed rather than flink:vkCmdDrawIndirect (internal
    issue 446).
  * Reorganize the per-extension information sections to all be in the
    <<extensions,Layers & Extensions>> appendix. Also fix a typo in
    +VK_IMG_filter_cubic+ which incorrectly identified it as a +KHR+
    extension (internal issue 461).

Other Issues:

  * Use asciidoc markup instead of latexmath to simplify diagrams in the
    <<features-formats-non-packed,byte mapping tables>> for color formats.
  * Fix a markup problem with the wildcarded enumerant names in a NOTE in
    the <<textures-texel-replacement,Texel Replacement>> section.
  * Fix missing attributes in the XML interface for
    elink:VkExternalMemoryHandleTypeFlagBitsNV and
    elink:VkExternalMemoryFeatureFlagBitsNV (KhronosGroup/Vulkan-Hpp issue
    #25)
  * Cleanup reference page builds so only core pages are built for releases.
2016-09-06 06:17:27 -07:00
Jon Leech 85184f305a Change log for August 26, 2016 Vulkan 1.0.25 spec update:
* 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:
2016-08-28 03:47:19 -07:00
Jon Leech 2dd2b3579b Change log for August 12, 2016 Vulkan 1.0.24 spec update:
* Bump API patch number and header version number to 24 for this update.

Github Issues:

  * Fix type mismatch in swapchain image equivalency table (public issue
    289).
  * Fix a copy-and-paste error in the description of
    flink:vkGetSwapchainImagesKHR::pname:pSwapchainImages, that said it
    was an array of ``sname:VkSwapchainImageKHR structures'' instead of
    an array of ``sname:VkImage handles'' (public issue 292).
  * Specify that ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT is only valid
    for ename:VK_IMAGE_TYPE_2D images (public issue 293).
  * Add a valid usage statement to flink:vkCmdExecuteCommands saying
    that when called outside a render pass instance, the secondary
    command buffers must not have been created with the
    ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT (public issue
    297).
  * Fix description of +VK_NO_STDINT_H+ in the
    <<boilerplate-platform-macros,platform macros>> section (public
    issue 314).

Internal Issues:

  * Normalize the language for the remaining built-in variables in the
    <<interfaces-builtin-variables,Built-In Variables>> section. Fix
    code:FrontFacing and code:HelperInvocation, as they should be of
    code:boolean type rather than code:integer (internal issue 323).
  * Clarify that when ename:VK_WHOLE_SIZE is used for a buffer
    descriptor range, the effective range must still be within the max
    buffer range (internal issue 426).
  * Clarify that command buffers and descriptor sets are allocated
    rather than created. Also clarify when the recording state of a
    command buffer is relevant (internal issue 434).
2016-08-12 04:25:36 -07:00
Jon Leech 7f7686d7f2 Change log for August 5, 2016 Vulkan 1.0.23 spec update:
* Bump API patch number and header version number to 23 for this update.

Github Issues:

  * Add explicit valid value attributes to pname:sType members in vk.xml
    (public issue 34).
  * Clarify usage of flink:vkGetInstanceProcAddr and
    flink:vkGetDeviceProcAddr (public issue 225).
  * Fix a copy-and-paste error in the description of
    pname:pSwapchainImageCount saying that it was the count of ``format
    pairs'' instead of ``swapchain images'' (public issue 292).
  * flink:vkCmdExecuteCommandBuffers requires all command buffers to be
    allocated from command pools created for the same queue family (public
    issue 296).
  * Remove bogus +optional+ attribute for
    flink:vkEnumerateDeviceLayerProperties::pname:physicalDevice from vk.xml
    (public issue 301).
  * Clean up the <<resources-image-views-compatibility,image and image view
    compatibility table>> reference and contents. Use full enumerant names.
    Refer to pname:layerCount in the ``view parameters'' column instead of
    pname:arrayLayers. Require N >= 1 for the cube array subview row, not
    just arrayLayers >= 6 N (public issue 304).
  * Modify description of <<resources-memory-aliasing,memory aliasing>> to
    be consistent with the description of
    <<resources-bufferimagegranularity,buffer image granularity>> (public
    issue 307).

Internal Issues:

  * Describe remaining +vk_platform.h+ macros in the <<boilerplate,API
    Boilerplate>> appendix (internal issue 6).
  * Clarify
    <<features-features-robustBufferAccess,pname:robustBufferAccess>>
    feature behavior; what memory can be accessed, how bounds checking is
    performed, and allowing for vectorization (internal issue 332).
  * Document markup for automatic extraction of reference pages from the
    spec sources in the style guide (internal issue 395).
  * Allow flink:vkCreateDisplayModeKHR to return
    ename:VK_ERROR_INITIALIZAION_FAILED_KHR if the user requests mode
    parameters that the specified display does not support (internal issue
    411).
  * Remove atomic counters (atomic_uint style) from KHR_vulkan_glsl, and
    more clearly remove the subroutine keyword alongside it (internal issue
    421).
  * Clarify behavior of flink:vkCmdBindDescriptorSets for descriptor sets
    not contained in the layout (internal issue 427).

Other Commits:

  * Change the order in which members of sname:VkAttachmentDescription and
    sname:VkPipelineInputAssemblyStateCreateInfo are described to match
    their order in the structures.
2016-08-05 05:11:02 -07:00
Jon Leech 1ca0ea1ef0 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.
2016-07-23 03:15:48 -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
Jon Leech e2d981c029 Change log for July 10, 2016 Vulkan 1.0.20 spec update:
* 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).
2016-07-10 18:13:41 -07:00
Jon Leech eb9997129d Change log for June 24, 2016 Vulkan 1.0.18 spec update:
* Bump API patch number and header version number to 18 for this
    update.

Github Issues:

  * Added "queue operation" terminology, and modified spec to actually
    use this terminology (public issue 155). The act of submitting a
    piece of work to a queue now generates "operations" for the queue to
    execute, including operations to wait on/signal semaphores and
    fences. Synchronization waits on these operations, making execution
    dependency chains more obvious for semaphores and fences (though
    additional work is still needed here). These changes include:
  ** Overview of "queue submission" commands in chapter
     <<devsandqueues-submission>>.
  ** Updated descriptions for fence and semaphore waits and signals in
     the synchronization chapter <<synchronization-semaphores-waiting>>,
     <<synchronization-semaphores-signaling>> and
     <<synchronization-fences-waiting>>.
  ** Clarifications to semaphore and fence operation within queue
     submission functions.
  ** New glossary terms.
  ** Moved device idle and queue wait idle to synchronization chapter in
     order to describe them in terms of other synchronization
     primitives.
  ** Clarifications to semaphore and fence operation allowed removal of
     the "implicit ordering guarantees" section, as this information is
     now wholly covered where these primitives are described.
  *** The "host writes" section of this is still there for now - in its
      own section. This could probably be merged into other sections
      later.
  *** Modified fundamentals chapter on queue ordering to make sense in
      context of the new changes, and avoid duplication.
      <<fundamentals-queueoperation>>
  * Added "aspect" and "component" definitions to the glossary, and made
    sure these terms are referenced correctly (public issue 163).
  * Update valid usage for ftext:vkGet*ProcAddr to only include
    conditions that must be met to get a valid result. In particular,
    it's okay to call flink:vkGetDeviceProcAddr with any string and will
    get a code:NULL if that string is not a core Vulkan function or an
    enabled extension function (addresses but does not fully close
    public issue 214).
  * Change the WSI extension dependencies to refer to version 1.0 of the
    Vulkan API, instead of the pre-1.0-release internal revisions
    numbers (public issue 238).
  * Specified that <<interfaces-fragmentoutput,undeclared fragment
    shader outputs>> result in undefined values input to the blending
    unit or color attachment (public issue 240).

Internal Issues:

  * Better documented that the registry XML "optional" tag for values
    only applies when that value is the size of an array (internal issue
    335).
  * Add a stronger definition for the valid usages of
    VkSpecializationMapEntry.size in the
    <<pipelines-specialization-constants,Specialization Constants>>
    section (internal issue 345).
  * Change code:OpName to code:OpDecorate (along with appropriate
    syntax) for vertex shader built-ins (internal issue 368).
  * Add missing ref pages (those which are not currently stubs) to
    apispec.txt for the single-page version of the ref pages (internal
    issue 378).

Other Commits:

  * Fix example in the <<descriptorsets,Descriptor Sets>> section to use
    M, N, and I, describing set, binding, and index, consistently
    throughout the example code.
2016-06-23 03:18:00 -07:00
Jon Leech 31018cf088 Change log for June 17, 2016 Vulkan 1.0.17 spec update:
* Bump API patch number and header version number to 17 for this
    update.

Github Issues:

  * Update description of vertex shader reuse in
    <<shaders-vertex-execution>> (public issue 106).
  * Simplify validity language around pname:ppEnabledExtensionNames and
    pname:ppEnabledLayerNames (in the <<initialization-instances>> and
    <<devsandqueues-device-creation>> sections) (public issue 214).
  * Add missing validity rule to flink:vkCmdBeginRenderPass requiring
    compatibility between slink:VkAttachmentDescription pname:initalLayout
    members and the corresponding attached framebuffer images (public issue
    233).
  * Fix Unicode arrows appearing in output instead of relational operators
    (public issue 239).
  * Correctly describe the required number of elements for
    code:TessLevelInner and code:TessLevelOuter arrays in the
    <<interfaces-builtin-variables,Built-In Variables>> section as two and
    four, respectively, instead of the other way around, and refer to this
    section from the <<tessellation,Tessellation>> chapter (public issue
    246).

Internal Issues:

  * Document deprecation of ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR in the
    VK_KHR_surface extension branch, and of
    ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT in the
    VK_EXT_debug_report branch (internal issue 328).
  * Added language to define what a valid usage statement is and should be,
    with a note about some apparent weirdnesses this might entail (internal
    issue 357).

Other Commits:

  * Added missing ename:VK_ERROR_DEVICE_LOST error to
    flink:vkQueueBindSparse.
2016-06-17 15:39:39 -07:00
Jon Leech 2656f45933 Change log for May 13, 2016 Vulkan 1.0.13 spec update:
* Bump API patch number and header version number to 13 for this
    update.

Github Issues:

  * Improve the description of ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the
    VK_KHR_surface extension (public issue 174).
  * Clarify use of etext:*_SIMULTANEOUS_USE_BIT for secondary command
    buffers (public issue 182).
  * Fix typos in VK_KHR_wayland_surface extension where code:wl_device was
    used instead of code:wl_display (public issue 193).
  * Replaced {apiname} with ``Vulkan'' in XML validity statements (public
    issue 199).
  * Fix dead links for WSI handle types (public issue 200).
	*** N.b. this needs to be done in WSI branches as well ***
  * Use "signaled" instead of "signalled" spelling everywhere (public issue
    201).
	*** N.b. this needs to be done in WSI branches as well ***
  * Move readme.pdf target directory for XML schema documentation into the
    target generation directory, instead of leaving it checked into the spec
    source tree (public issue 203).
	*** N.b. need to add generated PDF to registry index/1.0 page
  * Fix duplicate 'which which' typo in description of
    elink:VkCommandPoolResetFlagBits (public issue 204).
  * Move the <<Programmable Primitive Shading>> section up one level, out of
    the <<drawing-primitive-topologies,Primitive Topologies>> section
    (public issue 209).

Internal Issues:

  * Clarify in the <<pipelines-cache,Pipeline Cache>> section that
    implementations should not manage the size of pipeline cache (internal
    issue 192).
  * Deprecate the concept of device layers and associated commands (internal
    issue 255).
  * Remove ename:VK_INCOMPLETE from the list of possible result codes of
    flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR (internal issue 314).
  * Add missing std140/std430 rule: the base alignment of a member following
    a structure is a multiple of the structure's base alignment (internal
    issue 321).
  * Fixes naming of the single elink:VkColorSpaceKHR enum from
    ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR to
    ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR in XML/header and the
    VK_KHR_swapchain and VK_KHR_surface extensions to match the style of the
    typename (space and color are two words, not one) (internal issue 322).
  * Make it clear that code:LocalInvocationID should only be applied to an
    input variable and normalize the language describing
    code:LocalInvocationID to the language for other compute shader
    variables in the <<interfaces-builtin-variables,Built-in Variables>>
    section, and add normative language (internal issue 323).
  * Clarify in the <<fundamentals-returncodes,Return Codes>> section that
    the result pointer may be modified for specific commands, even if a
    runtime error is returned (internal issue 324).
2016-05-13 17:01:59 -07:00
Jon Leech 75bbb5f4d5 Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
    update.

Github Issues:

  * Change valid usage statements intended to be "sub-points" to
    be actual sub-points (public issue 66).
  * Replace double negation in description of
    slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
    merge 142).
  * Cleanup minor typos in spec, ref pages and XML, including those
    proposed in public pull requests 144, 150, 151, 167, 168, 181, and
    186.
  * Use *strict subset* in describing the partial order of memory
    property types for slink:VkMemoryType, and update the style guide
    accordingly (public issue 190).
  * Fix various "a image" -> "an image" typos (public issue 191).
  * Note in the <<fundamentals-validusage,Valid Usage>> and
    <<extensions-interactions,Extension Interactions>> sections that
    structures defined by extensions which may be passed in structure
    chains using the ptext:pNext member must: include initial
    ptext:sType and ptext:pNext members (public issue 192).

Internal Issues:

  * Remove duplicate language from the description of the pname:fence
    parameter to flink:vkQueueSubmit and improve validity language
    (internal issue 91).
  * Added documentation for "optional" attribute to XML readme.tex/pdf
    (internal issue 149).
  * Clarify the host-side data validity rules and behavior of
    flink:vkFlushMappedMemoryRanges and
    flink:vkInvalidateMappedMemoryRanges (internal issue 266).

Other Commits:

  * Added clarification to flink:vkCmdFillBuffer regarding the use of
    ename:VK_WHOLE_SIZE.
  * Fixed and documented implementation of "validextensionstructs"
    attribute. in XML processing scripts and readme.tex/pdf.
  * Add missing validity statements to flink:vkResetEvent and
    flink:vkCmdResetEvent.
  * Fix validity for the
    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
    Correct all the draw/dispatch commands to mention optimally tiled
    images as well as linear tiled images, and say image VIEWS instead
    of images. Add validity statement to flink:vkCmdBlitImage
  * Replace the {apiname} macro with hardcoded "Vulkan", now that we've
    committed to that name.
  * Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 14:53:46 +02:00
Jon Leech 6db51e9241 Change log for April 22, 2016 Vulkan 1.0.11 spec update:
* 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.
2016-04-21 01:08:38 -07:00
Jon Leech 3b32b240f6 Change log for April 15, 2016 Vulkan 1.0.10 spec update:
* Bump API patch number and header version number to 10 for this
    update.

Github Issues:

  * Slightly tweak the <<memory-allocation,Host Memory>> allocator language
    so that an application wrapping the standard C alloc/free/realloc
    functions is still correct - the previous language was too strong with
    regards to freeing memory. Also made certain scenarios clearer - an
    implementation may now continue without error if an allocation failed
    and it is able to continue correctly (public issue 21).
  * Require that etext:VK_*_CREATE_SPARSE_BINDING_BIT is set when the
    corresponding etext:VK_*_CREATE_SPARSE_RESIDENCY_BIT is used, in the
    <<sparsememory-miptail,Mip Tail Regions>> section and related commands
    flink:vkCreateBuffer and flink:vkCreateImage (public issue 84).
  * Update the <<features,Features, Limits, and Formats>> chapter to clarify
    interactions between optional features and dynamic state for the
    pname:depthBiasClamp and pname:wideLines features (public issue 89).
  * Describe the code:WorkgroupSize builtin in the
    <<interfaces-builtin-variables,Built-In Variables>> section, and update
    the <<compute-shaders,Compute Shaders>> section to further clarify how
    to set the number of workgroups to execute in a compute shader (public
    issue 145).
  * Use the term *image subresource* everywhere instead of *subresource*,
    except for the special case of *host-accessible subresource*, which may
    be either an image subresource or buffer range (public issue 120)
  * Add a note to the <<features,Features, Limits, and Formats>> section
    about extensibility of structures (Public issue 165).
  * Fix return code flink:vkAcquireNextImageKHR when the timeout parameter
    is 0 to ename:VK_NOT_READY instead of ename:VK_TIMEOUT (public issue
    170).
  * Fix typo in slink:VkLayerProperties::pname:apiVersion field (public
    issue 172).

Internal Issues:

  * Fix a few minor internally-detected typos.
  * Minor formatting tweaks to pseudocode in the <<resources,Resource
    Creation>> chapter (internal issue 179).
  * Fix typo in the definition of point sampling for
    elink:VkCullModeFlagBits (internal issue 268).
2016-04-14 01:58:49 -07:00
Jon Leech 8c3c9b4c85 Change log for March 25, 2016 Vulkan 1.0.7 spec update:
* Bump API patch number and header version number to 7 for this
    update.

Github Issues:

  * Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
    aliasing issues (public issue 14).

  * Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
    validity language (public issue 33).

  * Add stub reference pages so xrefs to not-yet-written pages don't
    generate 404 errors. However, the actual content of these pages
    still needs to be filled in as time allows (public issue 44, but
    does not close that issue out).

  * Remove incorrect validity statement for
    flink:vkGetImageSparseMemoryRequirements (public issue 85).

  * Reword the
    <<features-limits-bufferImageGranularity,bufferImageGranularity>>
    feature in terms of "aliasing", and clarify that it applies to
    bindings in the same memory object (public issue 90).

  * Clarify the relationship of the slink:VkPhysicalDeviceLimits
    pname:maxViewportDimensions and pname:viewportBoundsRange limits
    (public issue 92).

  * Specify sparse unbound texture replacement in the
    <<textures-texel-replacement,Texel Replacement>> section
    independently of robust buffer access language (public issue 100).

  * Add the <<fundamentals-architecture-model,Architecture Model>>
    section to explain architecture constraints Vulkan has chosen to
    accept in order to enable portable and performant code (public issue
    122).

  * State that an object must not be destroyed until *all* (not *any*)
    uses of that object have completed (public issue 123).

  * Minor editorial cleanup (public issues 129, 134, 146, 148).

  * Add validity language for layer and extension names to
    slink:VkDeviceCreateInfo matching that used for
    slink:VkInstanceCreateInfo (public issue 130).

  * Clean up terminology for the case when the bits set in one bitmask
    are a subset of the bits set in another bitmask (public issue 138).

  * Document that input attachments are UniformConstant not Input, in
    the <<interfaces-inputattachment,Fragment Input Attachment
    Interface>> section (public glslang bug 169).

Internal Issues:

  * Add max enum values to "flag bits" enums (internal issue #136).

  * Clarify language around the various uses of the term "block" in the
    <<appendix-compressedtex-bc,Block Compressed Image Formats>> section
    (internal issue #202).

  * Removed "expand" dependency from <enums> groups in vk.xml and added
    auto-generation code in the scripts to infer it instead, to ensure
    consistency. This caused renaming of sname:VkColorSpaceKHR and
    sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
    tokens are metadata, not part of the API, and the Vulkan WG is OK
    with this change. This change adds ranges to two additional enums
    that were missing them due to not defining the "expand" attribute
    (internal issue 217).

  * Tweak makefile to generate ref page nroff (.3) files in the right
    output directory, working around an a2x limitation (internal issue
    223).

Other Commits:

  * Add validity requirements for flink:vkCmdCopyQueryPoolResults
    pname:dstBuffer parameter.

  * Fix ref page build to generate .3 targets in the right output
    directory.
2016-03-25 02:25:04 -07:00
Jon Leech 7380aee56b Change log for March 4, 2016 Vulkan 1.0.5 spec update:
* Bump API patch number to 5 for this update.

Github Issues:
  * Correctly describe slink:VkPhysicalDeviceProperties pname:deviceName
    member as a string, not a pointer to a string. Also one typo fix for
    "hetereogeneous" (public issue 4).
  * Replace maynot: macro with may: not, and "may: or maynot:" with
    "may:" (public issue 4).
  * Clarify that redundantly setting the state of a fence or event has
    no effect (public issue 4).
  * Minor fixes to ref pages to track descriptions of memory bits that
    changed in the core spec. Fix name of a member in the description of
    sname:sname:VkPipelineMultisampleStateCreateInfo (public issues 8,
    13).
  * Remove redundant validity statement for
    sname:VkGraphicsPipelineCreateInfo::pname:stageCount (public issue
    14).
  * Fix typos in chapters 7-9 (public issue 14).
  * Clarify the example demonstrating the behavior of
    code:OpMemoryBarrier in the
    &lt;&lt;shaders-execution-memory-ordering,shader memory acces
    ordering>> section (public issue 16).
  * Specify that freeing mapped memory implicitly unmaps the memory in
    the description of flink:vkFreeMemory (public issue 17).
  * Forbid allocation callbacks from calling into the API in the
    &lt;&lt;memory-allocation,memory allocation>> section (public issue
    20).
  * Add missing validity rules about size being greater than 0 and
    offset being less than size of object. Fix
    flink:VkMappedMemoryRange's misinterpretation of offset (public
    issues 27, 31).
  * Add validity rule disallowing overlapping source/destination
    descriptors in flink:VkCopyDescriptorSet (public issue 32).
  * Clarify that array and matrix stride has to be a multiple of the
    base alignment of the array or matrix in the
    &lt;&lt;interfaces-resources-layout,Offset and Stride Assignment>>
    section (public issue 38).
  * Correct parenthesis floor nesting error in equation for
    &lt;&lt;textures-RGB-sexp,RGB to shared exponent conversion>>.
    Clarify case of when exp' is forced to 0, avoiding log2(0) undefined
    problem (public issue 40).
  * Remove redundant statement from the code:FragDepth description in
    the &lt;&lt;interfaces-builtin-variables,Built-In Variables>>
    section (public issue 47).
  * Define the clamping of the
    &lt;&lt;textures-level-of-detail-operation,bias added to the scale
    factor>> by linking to the slink:VkPhysicalDevice feature
    pname:maxSamplerLodBias (public issue 64).
  * Fix typo "optimal linear resources" and clarify the set of resources
    &lt;&lt;features-limits-bufferImageGranularity,the
    pname:bufferImageGranularity resource>> applies to (public issue
    67).
  * Replace 'descriptor accessed by a pipeline' language for
    sname:VkDescriptorSetAllocateInfo with more precise phrasing about
    binding a descriptor set before a command that invokes work using
    that set (public issue 69).
  * tstripadj.svg contained an Inkscape tag which caused Firefox and IE
    11 to fail to render it, and was illegal SVG. Generating Plain SVG
    from the Inkscape SVG source fixes this (public issue 70).
  * Fix validity for sname:VkVertexInputBindingDescription and
    sname:VkVertexInputAttributeDescription numbers (public issue 72).

Internal Issues:
  * Clarify the meaning of
    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in
    elink:VkFormatFeatureFlagBits with respect to depth compare
    (internal issue 107).
  * Added a note explaining that ename:VK_QUEUE_TRANSFER_BIT may or may
    not be reported for a queue family that already supports
    ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT as the
    former is a strict subset of the latter ones (internal issue 116).
  * Add validity language for sname:VkDescriptorSetAllocateInfo about
    exceeding the descriptor pool capacity (internal issue 140).
  * Add ename:VK_INCOMPLETE success code for
    flink:vkEnumeratePhysicalDevices query (internal issue 163).

Other Commits:
  * Add the VK_NV_glsl_shader extension definitions to the API.
  * Update GL_KHR_vulkan_glsl with 1) origin_upper_left as default 2)
    specialization array constant semantics.
  * Corrected/updated Data Format Specification date.
2016-03-03 05:06:18 -08:00
Wojciech Nawrocki ce2171b2cb vkCmdDraw.txt: fix typo 2016-02-19 12:07:42 +01:00
Jon Leech d204ac2f69 Vulkan 1.0 branch 1.0 for release 2016-02-16 01:53:44 -08:00