| // Copyright (c) 2017-2020 Advanced Micro Devices, Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_AMD_texture_gather_bias_lod.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2017-03-21 |
| *IP Status*:: |
| No known IP claims. |
| *Interactions and External Dependencies*:: |
| - This extension requires |
| {spirv}/AMD/SPV_AMD_texture_gather_bias_lod.html[`SPV_AMD_texture_gather_bias_lod`] |
| *Contributors*:: |
| - Dominik Witczak, AMD |
| - Daniel Rakos, AMD |
| - Graham Sellers, AMD |
| - Matthaeus G. Chajdas, AMD |
| - Qun Lin, AMD |
| - Rex Xu, AMD |
| - Timothy Lottes, AMD |
| |
| === Description |
| |
| This extension adds two related features. |
| |
| Firstly, support for the following SPIR-V extension in Vulkan is added: |
| |
| * `SPV_AMD_texture_gather_bias_lod` |
| |
| Secondly, the extension allows the application to query which formats can be |
| used together with the new function prototypes introduced by the SPIR-V |
| extension. |
| |
| include::{generated}/interfaces/VK_AMD_texture_gather_bias_lod.txt[] |
| |
| === New SPIR-V Capabilities |
| |
| * <<spirvenv-capabilities-table-ImageGatherBiasLodAMD, |
| code:ImageGatherBiasLodAMD>> |
| |
| === Examples |
| |
| [source,c++] |
| -------------------------------------- |
| |
| struct VkTextureLODGatherFormatPropertiesAMD |
| { |
| VkStructureType sType; |
| const void* pNext; |
| VkBool32 supportsTextureGatherLODBiasAMD; |
| }; |
| |
| // ---------------------------------------------------------------------------------------- |
| // How to detect if an image format can be used with the new function prototypes. |
| VkPhysicalDeviceImageFormatInfo2 formatInfo; |
| VkImageFormatProperties2 formatProps; |
| VkTextureLODGatherFormatPropertiesAMD textureLODGatherSupport; |
| |
| textureLODGatherSupport.sType = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD; |
| textureLODGatherSupport.pNext = nullptr; |
| |
| formatInfo.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2; |
| formatInfo.pNext = nullptr; |
| formatInfo.format = ...; |
| formatInfo.type = ...; |
| formatInfo.tiling = ...; |
| formatInfo.usage = ...; |
| formatInfo.flags = ...; |
| |
| formatProps.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2; |
| formatProps.pNext = &textureLODGatherSupport; |
| |
| vkGetPhysicalDeviceImageFormatProperties2(physical_device, &formatInfo, &formatProps); |
| |
| if (textureLODGatherSupport.supportsTextureGatherLODBiasAMD == VK_TRUE) |
| { |
| // physical device supports SPV_AMD_texture_gather_bias_lod for the specified |
| // format configuration. |
| } |
| else |
| { |
| // physical device does not support SPV_AMD_texture_gather_bias_lod for the |
| // specified format configuration. |
| } |
| -------------------------------------- |
| |
| === Version History |
| |
| * Revision 1, 2017-03-21 (Dominik Witczak) |
| - Initial draft |