// Copyright 2017-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_uniform_buffer_standard_layout.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2019-01-25
*Interactions and External Dependencies*::
  - Promoted to Vulkan 1.2 Core
*Contributors*::
  - Graeme Leese, Broadcom
  - Jeff Bolz, NVIDIA
  - Tobias Hector, AMD
  - Jason Ekstrand, Intel
  - Neil Henning, AMD

=== Description

This extension enables tighter array and struct packing to be used with
uniform buffers.

It modifies the alignment rules for uniform buffers, allowing for tighter
packing of arrays and structures.
This allows, for example, the std430 layout, as defined in
https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.60.pdf[GLSL]
to be supported in uniform buffers.

=== Promotion to Vulkan 1.2

All functionality in this extension is included in core Vulkan 1.2, with the
KHR suffix omitted.
The original type, enum and command names are still available as aliases of
the core functionality.

include::{generated}/interfaces/VK_KHR_uniform_buffer_standard_layout.txt[]

=== Version History

  * Revision 1, 2019-01-25 (Graeme Leese)
    - Initial draft
