// Copyright (c) 2017-2020 Advanced Micro Devices, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

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

=== Other Extension Metadata

*Last Modified Date*::
    2017-08-21
*Interactions and External Dependencies*::
  - This extension requires
    {spirv}/AMD/SPV_AMD_shader_image_load_store_lod.html[`SPV_AMD_shader_image_load_store_lod`]
  - This extension provides API support for
    https://www.khronos.org/registry/OpenGL/extensions/AMD/AMD_shader_image_load_store_lod.txt[`GL_AMD_shader_image_load_store_lod`]
*IP Status*::
    No known IP claims.
*Contributors*::
  - Dominik Witczak, AMD
  - Qun Lin, AMD
  - Rex Xu, AMD

=== Description

This extension adds support for the following SPIR-V extension in Vulkan:

  * {spirv}/AMD/SPV_AMD_shader_image_load_store_lod.html[`SPV_AMD_shader_image_load_store_lod`]

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

=== Version History

  * Revision 1, 2017-08-21 (Dominik Witczak)
    - Initial draft
