## C.1. VK_KHR_sampler_mirror_clamp_to_edge

Name String
  VK_KHR_sampler_mirror_clamp_to_edge
Extension Type
  Device extension
Registered Extension Number
  15
Status
  Final
Last Modified Date
  16/02/2016
Revision
  1
Dependencies
  - This extension is written against version 1.0. of the Vulkan API.
Contributors
  - Tobias Hector, Imagination Technologies
Contacts
  - Tobias Hector (tobias.hector@imgtec.com)

VK_KHR_sampler_mirror_clamp_to_edge extends the set of sampler address modes to include an additional mode (`VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE`) that effectively uses a texture map twice as large as the original image in which the additional half of the new image is a mirror image of the original image.

This new mode relaxes the need to generate images whose opposite edges match by using the original image to generate a matching “mirror image”. This mode allows the texture to be mirrored only once in the negative s, t, and r directions.

### C.1.1. New Enum Constants

- Extending `VkSamplerAddressMode`:

  - `VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE`

### C.1.2. Example

Creating a sampler with the new address mode in each dimension

        VkSamplerCreateInfo createInfo =
        {
            VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO // sType
            // Other members set to application-desired values
        };

        createInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
        createInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;
        createInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE;

        VkSampler sampler;
        VkResult result = vkCreateSampler(
            device,
            &createInfo,
            &sampler);

### C.1.3. Version History

- Revision 1, 2016-02-16 (Tobias Hector)

  - Initial draft