Vulkan-Docs/doc/specs/vulkan/images
Jon Leech ce60b9c887 Change log for March 7, 2018 Vulkan 1.1.70 spec update:
* Vulkan 1.1 initial release. Bump API patch number and header version
    number to 70 for this update. The patch number will be used for both
    Vulkan 1.1 and Vulkan 1.0 updates, and continues to increment
    continuously from the previous Vulkan 1.0.69 update.

    NOTE: We are not publishing an updated 1.0.70 specification, or 1.1
    reference pages, along with 1.1.70. There are still minor issues to work
    out with those build targets. However, we will soon generate all three
    types of documents as part of the regular spec update cycle.

    NOTE: The GitHub KhronosGroup/Vulkan-Docs repository now maintains the
    current specification in the `master` branch. The `1.0` branch is out of
    date and will not be maintained, since we will be generating both 1.1
    and 1.0 specifications from the `master` branch in the future.

Github Issues:

  * Clarify how mapped memory ranges are flushed in
    flink:vkFlushMappedMemoryRanges (public issue 127).
  * Specify that <<synchronization-pipeline-stages, Pipeline Stages>> are a
    list of tasks that each command performs, rather than necessarily being
    discrete pieces of hardware that one task flows through. Add a
    "`synchronization command`" pipeline type which all synchronization
    command execute (it's just TOP + BOTTOM), with an explanatory note
    (public issue 554).

Internal Issues:

  * Regenerate all images used in the spec in Inkscape with a consistent
    look-and-feel, and adjust image size attributes so they're all legible,
    and not too large with respect to the spec body text (internal issue
    701).
  * Document in the <<extensions,extensions>> appendix and in the style
    guide that `KHX` extensions are no longer supported or used in the
    Vulkan 1.1 timeframe (internal issue 714).
  * Remove the leftover equations_temp directory after PDF build completes
    (internal issue 925).
  * Update the <<credits, Credits (Informative)>> appendix to include
    contributors to Vulkan 1.1, and to list them according to the API
    version(s) they contributed to (internal issue 987).
  * Add a NOTE to the introduction explaining that interfaces defined by
    extensions which were promoted to Vulkan 1.1 are now expressed as
    aliases of the Vulkan 1.1 type (internal issue 991).
  * Instrument spec source conditionals so spec can be built with 1.1
    features, extensions promoted to 1.1, or both (internal issues 992,
    998).
  * Modify the XML schema and tools to support explicit aliasing of types,
    structures, and commands, and use this to express the promotion of 1.0
    extensions to 1.1 core features, by making the extension interfaces
    aliases of the core features they were promoted to. Mark up promoted
    interfaces to allow still generating 1.0 + extension specifications
    (internal issue 991).
  * Platform names, along with corresponding preprocessor symbols to enable
    extensions specific to those platforms, are now reserved in vk.xml using
    the <platform> tag. Update the registry schema and schema specification
    to match (internal issue 1011).
  * Updated the <<textures-texel-replacement, Texel Replacement>> section to
    clarify that reads from invalid texels for image resources result in
    undefined values (internal issue 1014).
  * Modify description of patch version so it continues to increment across
    minor version changes (internal issue 1033).
  * Clarify and unify language describing physical device-level core and
    extension functionality in the <<fundamentals-validusage-extensions,
    Valid Usage for Extensions>>, <<fundamentals-validusage-versions, Valid
    Usage for Newer Core Versions>>, <<initialization-functionpointers
    Command Function Pointers>>, <<initialization-phys-dev-extensions,
    Extending Physical Device From Device Extensions>>
    <<extended-functionality-instance-extensions-and-devices, Instance
    Extensions and Device Extensions>> sections and for
    flink:vkGetPhysicalDeviceImageFormatProperties2. This documents that
    instance-level functionality is tied to the loader, and independent of
    the ICD; physical device-level functionality is tied to the ICD, and
    associated with device extensions; physical devices are treated more
    uniformly between core and extensions; and instance and physical
    versions can be different (internal issue 1048).
  * Updated the <<commandbuffers-lifecycle, Command Buffer Lifecycle>>
    section to clarify the ability for pending command buffers to transition
    to the invalid state after submission, and add a command buffer
    lifecycle diagram (internal issue 1050).
  * Clarify that some flink:VkDescriptorUpdateTemplateCreateInfo parameters
    are ignored when push descriptors are not supported (internal issue
    1054).
  * Specify that flink:vkCreateImage will return an error if the image is
    too large, in a NOTE in the slink:VkImageFormatProperties description
    (internal issue 1078).
  * Remove near-duplicate NOTEs about when to query function pointers
    dynamically in the <<initialization, Initialization>> chapter and
    replace by extending the NOTE in the <<fundamentals-abi, Application
    Binary Interface>> section (internal issue 1085).
  * Restore missing references to "`Sparse Resource Features`" in the
    flink:VkBufferCreateFlagBits description (internal issue 1086).
  * Tidy up definitions of descriptor types in the `GL_KHR_vulkan_glsl`
    specification, the <<descriptorsets, Resource Descriptors>> section and
    its subsections, and the <<interfaces-resources-descset, Descriptor Set
    Interface>> for consistency, reduction of duplicate information, and
    removal of GLSL correspondance/examples (internal issue 1090).
  * Correctly describe code:PrimitiveId as an Input for tessellation control
    and evaluation shaders, not an Output (internal issue 1109).
  * Relax the requirements on chroma offsets for nearest filtering in
    <<textures-implict-reconstruction, Implicit Reconstruction>> (internal
    issue 1116).

Other Issues:

  * Clarify the intended relationship between specification language and
    certain terms defined in the Khronos Intellectual Property Rights
    policy. Specific changes include:
  ** Rewrote IP/Copyright preamble and introduction to better agree with
     normative language both as laid out in the introduction, and the
     Khronos IPR policy.
  ** Added notion of fully informative sections, which are now tagged with
     "`(Informative)`" in their titles.
  ** Removed non-normative uses of the phrase "`not required`"
  ** Clarified the distinction between terms "`optional`" and "`not
     required:`" as they relate to the IPR Policy, and updated specification
     text to use terms consistent with the intent.
  ** Reduced additions to RFC 2119, and ensured the specification agreed
     with the leaner language.
  ** Removed the terms "`hardware`", "`software`", "`CPU`", and "`GPU`" from
     normative text.
  ** Moved several paragraphs that should not have been normative to
     informative notes.
  ** Clarified a number of definitions in the Glossary.
  ** Updated the document writing guide to match new terminology changes.
  * Explicitly state in the <<fundamentals-objectmodel-lifetime-acquire,
    application memory lifetime>> language that that for objects other than
    descriptor sets, a slink:VkDescriptorSetLayout object used in the
    creation of another object (such as slink:VkPipelineLayout or
    slink:VkDescriptorUpdateTemplateKHR) is only in use during the creation
    of that object and can be safely destroyed afterwards.
  * Updated the <<textures-scale-factor, Scale Factor Operation>> section to
    use the ratio of anisotropy, rather than the integer sample rate, to
    perform the LOD calculation. The spec still allows use of the sample
    rate as the value used to calculate the LOD, but no longer requires it.
  * Update `vulkan_ext.c` to include all platform-related definitions from
    the Vulkan platform headers, following the split of the headers into
    platform-specific and non-platform-specific files.
  * Fix bogus anchor name in the <<commandbuffers, Command Buffers>> chapter
    which accidentally duplicated an anchor in the pipelines chapter. There
    were no reference to this anchor, fortunately.
  * Add valid usage statement for slink:VkWriteDescriptorSet and
    slink:VkCopyDescriptorSet requiring that the slink:VkDescriptorSetLayout
    used to allocate the source and destination sets must not have been
    destroyed at the time flink:vkUpdateDescriptorSets is called.
  * Document mapping of subgroup barrier functions to SPIR-V, and clarify a
    place where subgroupBarrier sounds like it's execution-only in the
    standalone `GL_KHR_shader_subgroup` specification.
  * Use an HTML stylesheet derived from the Asciidoctor `colony` theme, with
    the default Arial font family replaced by the sans-serif Noto font
    family.
  * Numerous minor updates to README.adoc, build scripts, Makefiles, and
    registry and style guide specifications to support Vulkan 1.1 outputs,
    use them as defaults, and remove mention of `KHX` extensions, which are
    no longer supported.

New Extensions:

  * `VK_EXT_vertex_attrib_divisor`
2018-03-07 04:18:52 -08:00
..
README.adoc Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
base_image_sample_grid.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
chromasamples_420_xcosited_ycosited.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
chromasamples_420_xcosited_ymidpoint.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
chromasamples_420_xmidpoint_ycosited.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
chromasamples_420_xmidpoint_ymidpoint.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
chromasamples_422_cosited.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
chromasamples_422_midpoint.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
commandbuffer_lifecycle.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
fragment_mask.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
innerquad.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
innertri.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
lineadj.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
non_strict_lines.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
pipeline.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
sparseimage.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
sparseimage_alignedmipsize.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
sparseimage_alignedmipsize_singlemiptail.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
sparseimage_multiaspect.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
sparseimage_singlemiptail.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
tessparam.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
tessparamUL.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
triadj.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
triangles.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
tstripadj.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
vulkantexture0.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
vulkantexture1.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00
vulkantexture2.svg Change log for March 7, 2018 Vulkan 1.1.70 spec update: 2018-03-07 04:18:52 -08:00

README.adoc

= Diagrams

Diagrams in this folder have been created with Inkscape, using a restricted
color palette (white, black, 50% gray and pure red), one choice of dotted
vs. solid lines, and only two text sizes (8 and 12) using the generic
"sans serif" font family.

If adding any new diagrams, please try to maintain consistency with the rest
of these diagrams in order to aid consistency and readability of the Vulkan
specification.
Inkscape does not need to be used, but is recommended as a powerful free
tool for generating vector diagrams, and is known to generate diagrams
compatible with the rest of the Vulkan toolchain.
If using other tools, please ensure that the diagram renders correctly in
popular browsers and in the PDF generation path for the specification.


== UTF-8 Characters

At the moment, the PDF conversion path only supports the Windows-1252
character set, as we are currently using the standard fonts built into every
PDF viewer - such that we don't have to embed a different font.
Unfortunately these only support Windows-1252, which is a highly limited
character set.

As such, characters not in that set will not display properly when present
in an SVG, and will fire a warning when building the PDF.
Luckily, Inkscape has an "Object to path" function built in, which will
convert text to a raw path, allowing these characters to be supported.

Please ensure that you build the PDF before submitting any new images,
particularly with non-standard characters, in order to catch such errors.