// GENERATED FILE - DO NOT EDIT.
// Generated by gen_vk_internal_shaders.py.
//
// Copyright 2020 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.00000000.inc:
//   Pre-generated shader for the ANGLE Vulkan back-end.

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

// Generated from:
//
// #version 450 core
//
// #extension GL_EXT_samplerless_texture_functions : require
//
// layout(set = 0, binding = 0)uniform texture2D src;
// layout(location = 0)out vec4 dest;
//
// layout(push_constant)uniform PushConstants {
//
//     ivec2 srcOffset;
//     ivec2 destOffset;
//     int srcMip;
//     int srcLayer;
//
//     bool flipX;
//     bool flipY;
//
//     bool premultiplyAlpha;
//     bool unmultiplyAlpha;
//
//     bool destHasLuminance;
//     bool destIsAlpha;
//
//     bool srcIsSRGB;
//     bool destIsSRGB;
//
//     int destDefaultChannelsMask;
//     bool rotateXY;
// } params;
//
// float linearToSRGB(float linear)
// {
//
//     if(linear <= 0.0031308)
//     {
//         return linear * 12.92;
//     }
//     else
//     {
//         return pow(linear,(1.0f / 2.4f))* 1.055f - 0.055f;
//     }
// }
//
// float sRGBToLinear(float sRGB)
// {
//
//     if(sRGB <= 0.04045)
//     {
//         return sRGB / 12.92;
//     }
//     else
//     {
//         return pow((sRGB + 0.055f)/ 1.055f, 2.4f);
//     }
// }
//
// void main()
// {
//     ivec2 destSubImageCoords = ivec2(gl_FragCoord . xy)- params . destOffset;
//
//     ivec2 srcSubImageCoords = destSubImageCoords;
//
//     if(params . flipX)
//     {
//         srcSubImageCoords . x = - srcSubImageCoords . x;
//     }
//     if(params . flipY)
//     {
//         srcSubImageCoords . y = - srcSubImageCoords . y;
//     }
//     if(params . rotateXY)
//     {
//         srcSubImageCoords . xy = srcSubImageCoords . yx;
//     }
//
//           vec4 srcValue = texelFetch(src, params . srcOffset + srcSubImageCoords, params . srcMip);
//
//     if(params . srcIsSRGB)
//     {
//
//         srcValue . r = linearToSRGB(srcValue . r);
//         srcValue . g = linearToSRGB(srcValue . g);
//         srcValue . b = linearToSRGB(srcValue . b);
//     }
//
//     if(params . premultiplyAlpha)
//     {
//         srcValue . rgb *= srcValue . a;
//     }
//     else if(params . unmultiplyAlpha && srcValue . a > 0)
//     {
//         srcValue . rgb /= srcValue . a;
//     }
//
//            vec4 destValue = vec4(srcValue);
//
//     if(params . destIsSRGB)
//     {
//
//         destValue . r = sRGBToLinear(destValue . r);
//         destValue . g = sRGBToLinear(destValue . g);
//         destValue . b = sRGBToLinear(destValue . b);
//     }
//
//     if(params . destHasLuminance)
//     {
//         destValue . rg = destValue . ra;
//     }
//     else if(params . destIsAlpha)
//     {
//         destValue . r = destValue . a;
//     }
//     else
//     {
//         int defaultChannelsMask = params . destDefaultChannelsMask;
//         if((defaultChannelsMask & 2)!= 0)
//         {
//             destValue . g = 0;
//         }
//         if((defaultChannelsMask & 4)!= 0)
//         {
//             destValue . b = 0;
//         }
//         if((defaultChannelsMask & 8)!= 0)
//         {
//             destValue . a = 1;
//         }
//     }
//
//     dest = destValue;
// }
