// GENERATED FILE - DO NOT EDIT.
// Generated by gen_vk_internal_shaders.py.
//
// Copyright 2018 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// shaders/gen/ImageCopy.frag.00000005.inc:
//   Pre-generated shader for the ANGLE Vulkan back-end.

#pragma once
constexpr uint8_t kImageCopy_frag_00000005[] = {
    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x85,0x96,0xfd,0x4b,0x9d,0x65,
    0x18,0xc7,0x9f,0x73,0x9e,0xf3,0xe2,0x34,0x5f,0xa6,0x6e,0xe6,0xc8,0xd5,0x5e,0x84,
    0xc2,0xa5,0x07,0xb2,0x65,0xda,0x06,0xb6,0x6c,0xcd,0xdc,0xdc,0xa6,0x50,0xb4,0x91,
    0x5b,0x29,0x35,0x65,0x6b,0x63,0xfd,0x66,0x4d,0x89,0xbd,0x94,0x12,0xb2,0xa2,0x14,
    0x4a,0x7f,0x28,0x65,0x41,0xc5,0x7e,0x8a,0x88,0xb6,0x61,0x5b,0xb5,0xbf,0x28,0x7a,
    0x81,0xa0,0xfb,0xba,0xcf,0xe7,0x1a,0xdf,0x0e,0xc5,0x0e,0xdc,0x3c,0xcf,0xfd,0xbd,
    0xde,0xbe,0xdf,0xeb,0xbe,0xee,0x87,0x93,0x66,0x77,0x14,0x93,0x24,0x93,0x54,0x27,
    0x55,0xc9,0xdd,0xa4,0xfc,0xdb,0x98,0x64,0x03,0x92,0x24,0x35,0x49,0x21,0x3e,0xf7,
    0x0f,0x8d,0x0c,0x75,0x9e,0x7f,0x7b,0xbc,0xb3,0xfb,0xc9,0x92,0xd9,0xeb,0x92,0x34,
    0xfa,0x99,0xad,0x3e,0x29,0x26,0xb9,0xf0,0xb4,0x75,0xfa,0xe4,0xa9,0x33,0x86,0xd7,
    0x86,0xf5,0x55,0x58,0x0d,0xc1,0xcf,0xf0,0xa2,0xe5,0x08,0x6f,0xb5,0x31,0xa7,0xc5,
    0x24,0xc9,0x0b,0x49,0x3e,0x69,0xa2,0xde,0x0e,0x9e,0x8e,0x65,0xc0,0xaa,0x04,0xcb,
    0x82,0x35,0x08,0x96,0x82,0x35,0x0b,0x96,0x03,0x7b,0x50,0xb0,0x3c,0xd8,0x43,0x82,
    0x15,0xc0,0x1e,0x11,0xac,0x08,0xb6,0x53,0xb0,0x2a,0xb0,0x47,0x05,0xdb,0x00,0xb6,
    0x4b,0xb0,0x6a,0xb0,0x92,0x60,0x35,0x60,0xdd,0x82,0x3d,0x00,0xd6,0x23,0x58,0x2d,
    0xd8,0x33,0xb1,0x4f,0xe9,0x3d,0xbd,0xd6,0xb3,0x7d,0xe1,0xb9,0x9d,0xfe,0xf8,0x7e,
    0x9b,0xec,0xad,0xcf,0x5b,0xd9,0x37,0x85,0xa8,0x6c,0xb4,0xa7,0xb1,0x37,0xf6,0xbe,
    0x29,0xf8,0x14,0xd0,0x69,0x7d,0x6d,0x09,0xfb,0x22,0xfa,0xcd,0xbe,0x39,0x78,0x56,
    0x63,0x37,0x5b,0x0d,0x5a,0x72,0x11,0xcb,0x45,0xbe,0x19,0xb4,0xf4,0xb1,0xaf,0x95,
    0x5c,0x75,0xf8,0x7b,0xad,0x46,0x72,0x25,0x91,0x57,0xc3,0xbd,0xbe,0x7a,0x4d,0x5b,
    0x8d,0xf7,0x59,0xee,0x63,0xf5,0x9b,0xe9,0x77,0x13,0xf5,0x9b,0x63,0x9d,0x32,0xd6,
    0x81,0xb6,0xcd,0xf0,0x31,0xff,0x16,0x6c,0x45,0xb1,0xb7,0x89,0x9e,0xad,0xd8,0x1b,
    0xe3,0xdc,0x64,0x63,0x2f,0x3b,0xe0,0xed,0x7d,0xf6,0xb8,0x0e,0x66,0xc7,0xf7,0xbb,
    0xd1,0x6e,0xba,0xf7,0xc2,0xd3,0xf2,0xb6,0x86,0x8c,0xfd,0xec,0x33,0xc9,0xbf,0x7f,
    0xbe,0xb7,0xda,0xcf,0xf2,0xde,0x8f,0x16,0xdb,0xef,0xab,0xa8,0x39,0x50,0xb1,0x1f,
    0xa4,0xb7,0x16,0xff,0x22,0xdc,0x0b,0x62,0x1f,0x66,0x6f,0x9c,0x5e,0xe6,0x3d,0x15,
    0xfb,0x89,0x8a,0x5e,0x4c,0x33,0xd3,0xbe,0xbf,0x5c,0xd1,0xcb,0xab,0xcc,0xa8,0xd5,
    0xbb,0x46,0xae,0xbd,0xf0,0xbd,0xc6,0xbd,0x4e,0x63,0x2f,0xf2,0x91,0x57,0x0e,0xbe,
    0x86,0xfd,0x11,0x10,0xeb,0xd7,0x1e,0xe6,0xa8,0x9e,0x7e,0x0d,0x07,0x06,0x75,0xdc,
    0xdd,0x7a,0x96,0xf7,0xe6,0x0c,0xf3,0xb8,0x11,0x7b,0x7f,0xc8,0xd0,0xc2,0xfd,0xdd,
    0xc4,0xd9,0xee,0xc1,0xa7,0x15,0xfc,0xbd,0xe0,0x63,0xfb,0x2d,0xc4,0xb5,0x12,0x67,
    0x67,0xfb,0x30,0x71,0x6d,0xc4,0xf9,0x3c,0x1a,0xfe,0x75,0xf0,0xd9,0x26,0xf7,0xde,
    0xce,0xfb,0xf7,0xc0,0xbc,0x1d,0x3e,0x7f,0x05,0x7f,0xbf,0xff,0xed,0xe8,0xb1,0xf7,
    0x23,0x21,0xae,0xc0,0x37,0x60,0x0b,0xbe,0x17,0xe8,0xd7,0x63,0xe0,0x47,0xc3,0xce,
    0x38,0x7d,0x03,0xe6,0x7e,0x7f,0x86,0x1c,0x9e,0xcb,0x9e,0xbf,0x05,0x2f,0xf3,0xbb,
    0x81,0x4f,0x9e,0x98,0x9d,0xa2,0x61,0x17,0x1a,0x3a,0x44,0xc3,0xe3,0xe0,0xae,0xa1,
    0x13,0xcc,0x35,0x94,0x44,0x83,0xd9,0xba,0xf8,0x16,0x59,0xdd,0x2e,0xd1,0xf0,0x04,
    0xb5,0x33,0xa2,0xa1,0x1b,0xdc,0x35,0x5c,0x07,0x73,0x3f,0xd3,0xe0,0xb9,0x4a,0xa2,
    0xe1,0x26,0x3e,0xed,0xc4,0x74,0x89,0x86,0xa7,0xd0,0xb0,0x5b,0x34,0xf4,0x80,0xbb,
    0x86,0xa7,0xc1,0x5c,0x43,0x9f,0x68,0x30,0x5b,0x6f,0x9c,0xbb,0x72,0xdd,0x5e,0xe6,
    0xa8,0x18,0xf3,0x95,0x6b,0xdf,0x94,0xfb,0x65,0x1c,0xdd,0xb7,0x4f,0x38,0xde,0xc2,
    0xaf,0x44,0x5c,0x2f,0x7c,0xec,0x0e,0x3e,0xc7,0xfd,0xf3,0x99,0x7b,0x1e,0xce,0x03,
    0x32,0x73,0xfb,0xc1,0x67,0x99,0xb9,0x03,0x60,0xb7,0x88,0xb3,0x3b,0x39,0x44,0xdc,
    0x20,0x71,0xd6,0xd3,0x83,0xe0,0x63,0x21,0xca,0xee,0xcf,0x21,0xea,0x1d,0xe0,0x3e,
    0x1f,0x94,0x5e,0x1d,0x26,0x7e,0x58,0x7a,0x75,0x04,0xdc,0x7b,0x75,0x14,0xcc,0x7b,
    0x35,0x2a,0xbd,0x32,0xdb,0x48,0xac,0x55,0xd6,0x3f,0x22,0xe7,0xfd,0x12,0xb5,0xd3,
    0x98,0xbf,0x2a,0x7e,0x23,0x5e,0x01,0x3b,0x24,0xf7,0x30,0x1b,0xeb,0x15,0xa2,0xfd,
    0x18,0x71,0xbe,0x2e,0x86,0x5c,0x86,0x1f,0x27,0xf6,0x58,0xcc,0xb5,0x21,0xea,0x7a,
    0x95,0x3c,0xc7,0xf9,0x16,0xe4,0xe5,0x1b,0x64,0x67,0x32,0x0a,0xa7,0x31,0xd1,0x7b,
    0x12,0xbd,0x27,0x44,0xef,0x6b,0xe0,0xae,0xf7,0x75,0x30,0xd7,0x3b,0x21,0x7a,0xcd,
    0x36,0x1e,0xd6,0x04,0xb9,0xc7,0x45,0xef,0x1b,0xa2,0xf7,0x5b,0x72,0xbd,0x09,0x3e,
    0x00,0x27,0x8f,0x9b,0x60,0x4e,0xcc,0xe7,0x14,0x35,0xc7,0xf0,0x1f,0xa7,0xee,0x94,
    0xd4,0x35,0x9f,0xc9,0xb0,0xa6,0x88,0x9f,0x94,0xba,0xa7,0xff,0xa3,0xcf,0x6f,0xdd,
    0xa7,0xcf,0x67,0x89,0xf3,0x75,0x85,0x3e,0x9f,0x23,0xf6,0xac,0xf4,0xf9,0x3c,0x79,
    0xce,0xfd,0x4f,0x9f,0x9d,0xd3,0x14,0x9a,0x2c,0xe6,0x27,0x62,0x26,0x88,0x9f,0xac,
    0x38,0x93,0x51,0xf1,0x5d,0xe7,0x2c,0x47,0x88,0x9b,0x92,0xf3,0x7a,0x87,0xf3,0x9a,
    0x96,0xf3,0x7a,0x17,0xdc,0xcf,0xeb,0x02,0x98,0x9f,0xd7,0xac,0xf4,0xcd,0x6c,0x33,
    0x61,0x5d,0xa2,0xee,0x8c,0xe8,0xba,0x48,0xed,0x75,0x74,0x15,0xe9,0x91,0xeb,0x9a,
    0x25,0xe6,0x92,0xf0,0xb9,0x02,0x9f,0xcb,0xc2,0xe7,0x7d,0x70,0xe7,0xf3,0x01,0x98,
    0xf3,0x99,0x17,0x3e,0x66,0x9b,0x0b,0x6b,0x81,0xdc,0x73,0x72,0x8e,0x1f,0xc2,0x25,
    0xe5,0x7b,0x68,0x1c,0xbf,0x13,0xdc,0xbf,0x35,0xf3,0xc4,0x2e,0xc8,0x77,0xe0,0x23,
    0x78,0x5d,0x95,0xef,0xc0,0xc7,0xe0,0x77,0xc9,0xff,0x09,0xd8,0xa0,0x70,0xfd,0x14,
    0x7c,0x00,0xae,0x4b,0xc2,0xd5,0x6c,0x8b,0x61,0x2d,0x51,0x6f,0x51,0x78,0x7d,0x4f,
    0xcc,0xba,0x7c,0xa7,0xdd,0x6f,0x49,0xce,0xf6,0x36,0x3e,0x0b,0xc4,0x2c,0x0a,0x9f,
    0xcf,0xe0,0xd3,0x26,0x7c,0x3e,0x07,0x77,0x3e,0x2b,0xc2,0xc7,0x6c,0xcb,0x61,0xad,
    0x50,0x67,0x59,0xf8,0xfc,0x40,0xcc,0x6d,0xce,0xd0,0xf8,0xb8,0xdf,0x8a,0xf0,0xb9,
    0x83,0xcf,0x12,0x31,0xcb,0xc2,0xe7,0x0b,0xf8,0x4c,0x0b,0x9f,0x2f,0xc1,0x9d,0xcf,
    0x9a,0xf0,0x31,0xdb,0x6a,0x58,0x6b,0xd4,0x59,0x15,0x3e,0x3f,0xf2,0xff,0xe1,0x8e,
    0xcc,0x93,0xfb,0xad,0x09,0x9f,0x5f,0xf1,0x59,0x21,0x66,0xb5,0xe2,0x8c,0xe7,0xc5,
    0xf7,0x17,0xe6,0x61,0x8e,0xb8,0xb5,0x8a,0x39,0x9d,0x15,0xdf,0x9f,0x99,0xef,0x19,
    0xe2,0xe6,0xe3,0x7f,0xa9,0x34,0xfe,0x87,0x32,0xdb,0xdf,0xe1,0xd4,0x7a,0xc2,0xfa,
    0x07,0x47,0x90,0xba,0x4c,0x84,0x0d,0x00,0x00
};

// Generated from:
//
// #version 450 core
//
// #extension GL_EXT_samplerless_texture_functions : require
//
// layout(set = 0, binding = 0)uniform itexture2D src;
// layout(location = 0)out ivec4 dst;
//
// layout(push_constant)uniform PushConstants {
//
//     ivec2 srcOffset;
//     ivec2 dstOffset;
//     int srcMip;
//     int srcLayer;
//
//     bool flipX;
//     bool flipY;
//
//     bool premultiplyAlpha;
//     bool unmultiplyAlpha;
//
//     bool dstHasLuminance;
//     bool dstIsAlpha;
//
//     bool srcIsSRGB;
//     bool dstIsSRGB;
//
//     int dstDefaultChannelsMask;
//     bool rotateXY;
// } params;
//
// void main()
// {
//     ivec2 dstSubImageCoords = ivec2(gl_FragCoord . xy)- params . dstOffset;
//
//     ivec2 srcSubImageCoords = dstSubImageCoords;
//
//     if(params . flipX)
//     {
//         srcSubImageCoords . x = - srcSubImageCoords . x;
//     }
//     if(params . flipY)
//     {
//         srcSubImageCoords . y = - srcSubImageCoords . y;
//     }
//     if(params . rotateXY)
//     {
//         srcSubImageCoords . xy = srcSubImageCoords . yx;
//     }
//
//           ivec4 srcValue = texelFetch(src, params . srcOffset + srcSubImageCoords, params . srcMip);
//
//     if(params . premultiplyAlpha)
//     {
//         srcValue . rgb *= srcValue . a;
//     }
//     else if(params . unmultiplyAlpha && srcValue . a > 0)
//     {
//         srcValue . rgb /= srcValue . a;
//     }
//
//            ivec4 dstValue = ivec4(srcValue);
//
//     if(params . dstHasLuminance)
//     {
//         dstValue . rg = dstValue . ra;
//     }
//     else if(params . dstIsAlpha)
//     {
//         dstValue . r = dstValue . a;
//     }
//     else
//     {
//         int defaultChannelsMask = params . dstDefaultChannelsMask;
//         if((defaultChannelsMask & 2)!= 0)
//         {
//             dstValue . g = 0;
//         }
//         if((defaultChannelsMask & 4)!= 0)
//         {
//             dstValue . b = 0;
//         }
//         if((defaultChannelsMask & 8)!= 0)
//         {
//             dstValue . a = 1;
//         }
//     }
//
//     dst = dstValue;
// }
