1// GENERATED FILE - DO NOT EDIT.
2// Generated by gen_vk_internal_shaders.py.
3//
4// Copyright 2018 The ANGLE Project Authors. All rights reserved.
5// Use of this source code is governed by a BSD-style license that can be
6// found in the LICENSE file.
7//
8// shaders/gen/ImageCopy.frag.00000024.inc:
9//   Pre-generated shader for the ANGLE Vulkan back-end.
10
11#pragma once
12constexpr uint8_t kImageCopy_frag_00000024[] = {
13    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x85,0x98,0xf9,0x73,0x54,0x45,
14    0x10,0xc7,0x5f,0x76,0x37,0xbb,0x24,0x5c,0x41,0x22,0x97,0x60,0x25,0x5c,0xa2,0x89,
15    0x21,0x6a,0x20,0x5c,0xcb,0xa9,0x40,0x34,0x5c,0x09,0x28,0x88,0x11,0x82,0xa8,0x80,
16    0x10,0x94,0x44,0x11,0xe4,0x16,0x25,0x51,0x04,0x11,0x0f,0x40,0x05,0x54,0x50,0x01,
17    0x81,0xa8,0x5c,0x02,0x0a,0xca,0xe5,0x01,0xa2,0x02,0x2a,0x08,0xe8,0x4f,0xfe,0x07,
18    0x96,0x47,0x95,0xc7,0xf4,0xf0,0xe9,0x54,0xd7,0x2b,0xd4,0x54,0x4d,0xbd,0xed,0x6f,
19    0xf7,0x74,0x7f,0xfb,0x98,0x79,0xbb,0x89,0x46,0xda,0x25,0x82,0x20,0x25,0x48,0x0f,
20    0xea,0x05,0x3f,0x05,0x97,0xfe,0x9a,0x04,0x11,0x87,0x04,0x41,0xfd,0x20,0xee,0x9f,
21    0x83,0x8a,0x4b,0x8b,0xf3,0x2a,0xab,0x26,0xe6,0x15,0x74,0xc9,0x17,0x7d,0xa3,0x20,
22    0xea,0xed,0x44,0xd7,0x38,0x48,0x04,0x31,0xf7,0x94,0x35,0xad,0x7c,0x72,0x85,0xe0,
23    0x1d,0xdd,0xba,0xe8,0x56,0x86,0xb3,0x13,0x3c,0x21,0x3e,0xdc,0xa7,0x8e,0xde,0xa7,
24    0xec,0x09,0x82,0xc1,0x41,0x6a,0x90,0x4b,0xbc,0x76,0x3c,0x15,0x4b,0x01,0xab,0x67,
25    0xb0,0x08,0x58,0x86,0xc1,0xa2,0x60,0x99,0x06,0x8b,0x81,0xb5,0x30,0x58,0x2a,0x58,
26    0x6b,0x83,0xc5,0xc1,0xb2,0x0c,0x96,0x00,0x6b,0x6f,0xb0,0x7a,0x60,0x9d,0x0c,0x96,
27    0x06,0x96,0x6b,0xb0,0x74,0xb0,0x7c,0x83,0xd5,0x07,0x2b,0x30,0x58,0x03,0xb0,0x6e,
28    0x06,0x6b,0x08,0xd6,0xcb,0xd7,0x29,0x5a,0x97,0xaf,0xd4,0x6c,0xac,0x7b,0xb6,0xa5,
29    0x3e,0x2a,0x67,0x1b,0x59,0xea,0x7c,0x35,0x72,0x53,0xb7,0x2b,0xe2,0xf5,0x51,0x5f,
30    0x1b,0xf9,0xdc,0xcc,0x7d,0x8a,0x93,0x67,0x96,0xb3,0x4f,0x90,0x67,0xdc,0xdb,0xc5,
31    0x7c,0x7e,0x71,0xb0,0x1c,0x27,0xc7,0xe1,0xf3,0xf3,0xb6,0x0e,0xc9,0x4c,0xe7,0xa1,
32    0x91,0xc1,0x9b,0xba,0x55,0xb2,0x67,0x68,0x3f,0x95,0xa5,0xc6,0xdb,0x06,0x95,0x27,
33    0x55,0x6e,0xe5,0x56,0x32,0x7d,0x49,0x1f,0x95,0xa5,0xde,0x6b,0x56,0xb7,0xec,0x7b,
34    0xa5,0x93,0xb3,0xe0,0x20,0xbd,0x6d,0xee,0xe4,0x6c,0xe4,0x08,0xbc,0xda,0xc2,0x21,
35    0x1b,0x7d,0x7b,0x78,0xc5,0xd0,0x77,0x60,0xaf,0xe0,0x3d,0x91,0x3b,0x1a,0x7f,0xd7,
36    0x60,0x2f,0xfe,0x24,0x5e,0x0e,0xfe,0x03,0x5f,0x9f,0x0c,0x5f,0xd3,0x6c,0x96,0x72,
37    0xc9,0xf9,0x9f,0x95,0x55,0xf7,0x8c,0x05,0xd7,0xd3,0xf7,0x5c,0xe2,0x8b,0x9c,0x07,
38    0x96,0x43,0x7e,0x9d,0xe1,0x23,0xf6,0xf9,0xe8,0xb2,0x8d,0xbe,0xab,0xc9,0xa7,0xb0,
39    0x6e,0xef,0x25,0xbd,0x3c,0x7b,0xc0,0x57,0xf4,0xbd,0xa9,0x47,0x96,0xd9,0x3f,0x80,
40    0x59,0x56,0xfb,0x22,0xe2,0xa9,0x7e,0x28,0xbd,0x93,0x7a,0xdc,0xce,0x5e,0x8d,0x77,
41    0x07,0xfe,0x04,0x6f,0xe9,0x22,0x8f,0x31,0xf5,0xb7,0x7f,0x29,0x86,0xc3,0x9d,0x7c,
42    0x1e,0x43,0xce,0x22,0x8f,0x05,0xd3,0x98,0x65,0x21,0x79,0x02,0xe7,0x52,0xf6,0xdf,
43    0x43,0x8e,0x59,0x70,0xba,0x8f,0xcf,0x51,0x63,0x3f,0x05,0x0e,0x2a,0x57,0xd0,0x47,
44    0xcd,0xb1,0x2a,0x64,0x3f,0xaf,0xae,0x2e,0xb1,0xe0,0x39,0x3e,0xb7,0x37,0x33,0xfa,
45    0xa2,0x67,0x33,0x7f,0x80,0xda,0xaf,0xe1,0x1c,0xaa,0xbf,0x2d,0xa1,0x78,0xb5,0x9c,
46    0x71,0x95,0xf7,0x85,0x7a,0x7a,0x94,0x33,0xab,0xfe,0xbf,0x34,0xf9,0x8a,0xfc,0x83,
47    0x97,0x16,0xf4,0x11,0x3e,0x17,0xe0,0xaa,0x33,0x7a,0x81,0x7b,0x30,0xea,0x7b,0x9f,
48    0xea,0xe3,0xc6,0xd8,0x2f,0xd8,0x6f,0x0e,0x49,0xc5,0xb6,0x2d,0x77,0x40,0xc2,0xc8,
49    0x05,0x46,0x96,0xfe,0x8d,0x36,0xb2,0xe4,0xbe,0xd2,0xc8,0xf2,0x5c,0x1f,0x92,0x37,
50    0x86,0xe4,0xcd,0x46,0x96,0xf9,0x3a,0x82,0x9c,0xe4,0xbc,0x75,0xe2,0x4c,0x0d,0x73,
51    0xa8,0x9c,0xa7,0x6b,0xc1,0x3a,0x99,0xd9,0xa8,0xe0,0xec,0x5e,0x87,0xbe,0x9f,0xcb,
52    0x40,0x66,0xfd,0x06,0xce,0x43,0x67,0xfc,0x89,0xcd,0x8d,0xe0,0x8b,0x9c,0x8d,0xc8,
53    0x37,0xb1,0x4f,0xf0,0xde,0xae,0x02,0xed,0xc0,0xd4,0xbe,0x0b,0x35,0x10,0x5d,0x01,
54    0xb2,0xf8,0x2f,0xe4,0xbe,0xcc,0xe3,0x0c,0x25,0xe9,0x65,0x77,0xf0,0x2d,0xce,0xa6,
55    0x91,0xcf,0xeb,0x12,0x26,0xe7,0xe8,0x57,0xe7,0x23,0x09,0xef,0x3f,0x9c,0x7d,0x4f,
56    0xee,0xd7,0x24,0x75,0xef,0x85,0x6f,0xa9,0x43,0x1f,0x6a,0xdd,0x03,0xdf,0xd2,0xf7,
57    0xbe,0xe0,0xf3,0x90,0xfb,0x81,0xe9,0x9e,0xfe,0x66,0x8f,0xf0,0xed,0x8f,0xcd,0xef,
58    0xce,0xb7,0xc6,0x48,0x1a,0xfe,0x37,0xc3,0x7f,0x80,0xe1,0x7f,0x0b,0xb8,0xf2,0x1f,
59    0x08,0xa6,0xfc,0x07,0x1b,0xfe,0x03,0xfd,0x7d,0x1f,0x78,0x4c,0x7c,0x0f,0x32,0x5c,
60    0x6e,0x85,0x4b,0x91,0xe1,0x7f,0x1b,0xb8,0xf2,0x2f,0x06,0xd3,0x3d,0x43,0xcc,0x1e,
61    0xe1,0x3f,0x04,0x1b,0xe1,0xaf,0x31,0x06,0x1b,0xfe,0xc3,0xe0,0x3f,0xd4,0xf0,0x1f,
62    0x0e,0xae,0xfc,0x47,0x80,0x29,0xff,0x52,0xc3,0x5f,0x74,0x25,0x6e,0x95,0xe2,0xbb,
63    0xc4,0xf4,0x7d,0x24,0x5c,0x64,0xee,0x44,0x1e,0x05,0x36,0xd2,0xdc,0x47,0x3a,0x13,
64    0xa3,0xe0,0xa8,0x7e,0x4a,0xf1,0x23,0x77,0xd4,0x5d,0xdc,0x4f,0x3a,0x93,0x77,0xc3,
65    0xb9,0xcc,0xc4,0x1a,0x07,0xae,0xf2,0x78,0x62,0x2f,0x60,0x46,0xcb,0xb1,0x19,0x8f,
66    0x1f,0xb9,0xc3,0x26,0xe2,0x67,0x82,0xa9,0xef,0xbd,0xe0,0x23,0x9c,0x8d,0xc8,0xf7,
67    0xb3,0x37,0x30,0xd8,0x24,0xb0,0x14,0x5f,0x97,0xb8,0xbf,0xff,0x26,0x63,0x3b,0x09,
68    0x1f,0x1a,0xe3,0x01,0x62,0x4c,0x31,0x31,0xa6,0x82,0x8f,0x73,0x75,0x91,0x7b,0x7b,
69    0x1a,0x39,0x4e,0xe6,0x0e,0x9b,0x4a,0x5d,0x46,0xa3,0xd3,0x5e,0x4d,0xc7,0x57,0x85,
70    0xe9,0xd5,0x83,0xe0,0xda,0xab,0x87,0xc0,0xb4,0x57,0x95,0xa6,0x57,0xa2,0x9b,0xe1,
71    0xd6,0x5c,0x6a,0x3c,0xc3,0xcc,0xcd,0xc3,0xdc,0x43,0x55,0x86,0xe7,0x23,0xe0,0x49,
72    0xde,0x3b,0x33,0xb1,0x19,0xe6,0x6e,0x56,0xc9,0xf9,0x51,0xb0,0x99,0xe6,0x1e,0x89,
73    0x98,0x9a,0xcc,0xc2,0x87,0xae,0xc5,0x2e,0x96,0xe0,0xb3,0xd9,0x3b,0xcb,0xf8,0x7e,
74    0xac,0xce,0x77,0x9a,0x97,0xe7,0x80,0xcd,0xe6,0x6e,0x4d,0xe5,0xfd,0x11,0x35,0xb5,
75    0x99,0xc3,0xcc,0x54,0x92,0xcf,0x5c,0x53,0xab,0xf9,0xd4,0x6a,0x9e,0xa9,0xd5,0x02,
76    0x70,0xad,0xd5,0x42,0x30,0xad,0xd5,0xe3,0xa6,0x56,0x0b,0xfd,0xfd,0x16,0x78,0x4c,
77    0x7c,0x2f,0x32,0xb5,0x5a,0x7c,0x99,0x5a,0x3d,0x01,0xbe,0x15,0xdf,0x4f,0x82,0x95,
78    0xc1,0x51,0xfd,0xc8,0xf3,0x17,0xd7,0x77,0xb1,0x59,0x02,0x87,0xb9,0xd8,0x2f,0x82,
79    0x47,0x8d,0xe1,0x21,0x36,0xd5,0x6e,0xd5,0xb0,0xbf,0xda,0xf0,0x78,0xea,0x32,0x3c,
80    0x9e,0x06,0xd7,0xba,0x2e,0x0d,0xf5,0xec,0x19,0xb0,0xa5,0xff,0xd2,0xb3,0x65,0xf8,
81    0xd0,0xb5,0x84,0x9e,0x2d,0x67,0xef,0x32,0xe3,0xfb,0xd9,0x50,0xcf,0x56,0x80,0x2d,
82    0xff,0x8f,0x9e,0xad,0xa0,0x1e,0x9a,0x4f,0x4d,0xa8,0x87,0x95,0xc6,0xff,0xf3,0xf8,
83    0x9f,0xce,0x7b,0xec,0x05,0x30,0xf1,0xb5,0x12,0x59,0xdf,0x71,0x2f,0xf1,0xde,0x1c,
84    0xee,0x6a,0x2b,0xf2,0x2a,0xbe,0x33,0xd8,0x55,0xed,0x18,0x89,0x6e,0x35,0xf6,0xab,
85    0x8c,0xaf,0xd5,0x66,0x76,0x5e,0x66,0x76,0xd6,0x98,0xd9,0x79,0x05,0x5c,0x67,0xe7,
86    0x55,0x30,0x9d,0x9d,0x75,0xa6,0x67,0xa2,0x5b,0xeb,0xd6,0x3a,0x72,0x5a,0x8b,0x6f,
87    0x79,0x27,0xbf,0x06,0x4f,0x7d,0x27,0x49,0x7d,0x5e,0x07,0x17,0x2e,0xeb,0x91,0xbb,
88    0x3b,0x7b,0xd1,0xbd,0xc1,0x6f,0x90,0xf5,0xc6,0xc7,0x06,0xe3,0x43,0xf6,0x6c,0xc0,
89    0x4e,0xf5,0x6f,0xa2,0x2f,0x32,0x31,0xde,0x02,0x17,0xfb,0x8d,0xc8,0x1a,0xe3,0x6d,
90    0x62,0x6c,0x34,0x3e,0x36,0x19,0x1f,0xb2,0x67,0x13,0x76,0xaa,0x7f,0x07,0xfd,0x16,
91    0x13,0x63,0x2b,0xb8,0xd8,0x6f,0x46,0xd6,0x18,0xdb,0x88,0xb1,0xd9,0xf8,0xd8,0x6e,
92    0x7c,0xc8,0x9e,0xed,0xd8,0xc9,0x3c,0x68,0xed,0xd6,0x99,0xbe,0xbc,0x4b,0x5f,0x6a,
93    0x4d,0x5f,0xde,0x03,0xd7,0xbe,0xbc,0x0f,0xa6,0x7d,0xd9,0x69,0xfa,0x22,0xba,0x1d,
94    0x6e,0xed,0xc5,0xf7,0x0e,0x33,0x3f,0xbb,0xe0,0xa2,0xdf,0x91,0x76,0x83,0xed,0x32,
95    0xdf,0xeb,0xd4,0x76,0x4f,0x9d,0x6d,0x9a,0x97,0x3f,0x00,0xdb,0x6d,0xe6,0x3e,0x62,
96    0xe6,0x7e,0x25,0x36,0x92,0xd7,0x4e,0x62,0xef,0x35,0x79,0xed,0x27,0xaf,0x7d,0x26,
97    0xaf,0x0f,0xc1,0x35,0xaf,0x8f,0xc0,0x34,0xaf,0x83,0x26,0x2f,0xd1,0x1d,0x70,0xeb,
98    0x30,0xbe,0x0f,0x98,0x1a,0x7f,0x0c,0xd7,0x2a,0xd3,0xa7,0x4f,0xc0,0xd5,0xe6,0x50,
99    0x68,0x9e,0x0e,0x61,0x23,0x7c,0x0f,0xe2,0xf3,0xb0,0x79,0xa7,0x1d,0x83,0xef,0x51,
100    0x73,0xef,0x7c,0x0a,0x2e,0xfb,0x8f,0x20,0xab,0xee,0x33,0xbe,0x93,0x1e,0xe3,0xfd,
101    0xf9,0x39,0xd8,0x14,0x93,0xdf,0x17,0xe0,0x65,0xe4,0x77,0xc2,0xe4,0x27,0xba,0xe3,
102    0x6e,0x9d,0x80,0xcb,0x71,0xc3,0xfd,0x64,0x68,0x4e,0x4f,0xf2,0x5d,0x5e,0xb8,0xab,
103    0xfd,0x09,0xc3,0xe5,0xab,0x10,0x97,0xaf,0xc1,0xba,0x1a,0x2e,0xdf,0x80,0x2b,0x97,
104    0xd3,0x86,0x8b,0xe8,0x4e,0xb9,0x75,0x1a,0xdf,0xa7,0x0c,0x97,0x33,0xa1,0x79,0x3e,
105    0x63,0xb8,0xa8,0xfd,0x69,0xc3,0xe5,0xdb,0x10,0x97,0xef,0xc0,0x6a,0x0d,0x97,0xef,
106    0xc1,0x95,0xcb,0x39,0xc3,0x45,0x74,0x67,0xdd,0x3a,0x87,0xef,0xb3,0x86,0xcb,0x79,
107    0xd3,0x77,0xe1,0x72,0x9e,0xdf,0x34,0xc2,0x45,0xed,0xcf,0x85,0x7a,0x7c,0x30,0x34,
108    0xa3,0x3b,0xcd,0xcc,0xff,0x88,0x3f,0xf1,0x75,0x11,0xf9,0x4f,0xf7,0xf6,0xe8,0xe6,
109    0x56,0x57,0xce,0x78,0x3a,0xdc,0xe4,0x77,0x57,0xa1,0xb3,0x4b,0xf0,0x9b,0x4b,0x7c,
110    0xd5,0x37,0xf3,0xd7,0x00,0x7c,0x3f,0x39,0x36,0x06,0x6b,0x48,0x8e,0x4d,0x4c,0x8e,
111    0x8d,0xf9,0xdf,0x50,0x33,0xfc,0x64,0x18,0x3f,0x57,0xe0,0xa7,0x9a,0xf8,0x99,0x60,
112    0xf2,0xff,0x8c,0xbf,0x9c,0x6d,0x26,0x7b,0x9a,0x99,0x3d,0xcd,0xd9,0xb3,0x90,0x3d,
113    0x2d,0xc1,0x5a,0x18,0x3f,0x57,0x81,0xb7,0xf2,0xbc,0x12,0x1e,0x6b,0xc3,0xbb,0xb2,
114    0x15,0xfa,0xd6,0xc4,0x68,0x43,0x0c,0xe1,0xfc,0x37,0xf5,0xf8,0x07,0x54,0x91,0x0f,
115    0x91,0x7c,0x13,0x00,0x00
116};
117
118// Generated from:
119//
120// #version 450 core
121//
122// #extension GL_EXT_samplerless_texture_functions : require
123//
124// layout(set = 0, binding = 0)uniform itexture3D src;
125// layout(location = 0)out vec4 dest;
126//
127// layout(push_constant)uniform PushConstants {
128//
129//     ivec2 srcOffset;
130//     ivec2 destOffset;
131//     int srcMip;
132//     int srcLayer;
133//
134//     bool flipX;
135//     bool flipY;
136//
137//     bool premultiplyAlpha;
138//     bool unmultiplyAlpha;
139//
140//     bool destHasLuminance;
141//     bool destIsAlpha;
142//
143//     bool srcIsSRGB;
144//     bool destIsSRGB;
145//
146//     int destDefaultChannelsMask;
147//     bool rotateXY;
148// } params;
149//
150// float sRGBToLinear(float sRGB)
151// {
152//
153//     if(sRGB <= 0.04045)
154//     {
155//         return sRGB / 12.92;
156//     }
157//     else
158//     {
159//         return pow((sRGB + 0.055f)/ 1.055f, 2.4f);
160//     }
161// }
162//
163// void main()
164// {
165//     ivec2 destSubImageCoords = ivec2(gl_FragCoord . xy)- params . destOffset;
166//
167//     ivec2 srcSubImageCoords = destSubImageCoords;
168//
169//     if(params . flipX)
170//     {
171//         srcSubImageCoords . x = - srcSubImageCoords . x;
172//     }
173//     if(params . flipY)
174//     {
175//         srcSubImageCoords . y = - srcSubImageCoords . y;
176//     }
177//     if(params . rotateXY)
178//     {
179//         srcSubImageCoords . xy = srcSubImageCoords . yx;
180//     }
181//
182//           ivec4 srcValue = texelFetch(src, ivec3(params . srcOffset + srcSubImageCoords, params . srcLayer), params . srcMip);
183//
184//     if(params . premultiplyAlpha)
185//     {
186//         srcValue . rgb *= srcValue . a;
187//     }
188//     else if(params . unmultiplyAlpha && srcValue . a > 0)
189//     {
190//         srcValue . rgb /= srcValue . a;
191//     }
192//
193//            vec4 destValue = vec4(srcValue);
194//
195//     destValue /= 255.0;
196//
197//     if(params . destIsSRGB)
198//     {
199//
200//         destValue . r = sRGBToLinear(destValue . r);
201//         destValue . g = sRGBToLinear(destValue . g);
202//         destValue . b = sRGBToLinear(destValue . b);
203//     }
204//
205//     if(params . destHasLuminance)
206//     {
207//         destValue . rg = destValue . ra;
208//     }
209//     else if(params . destIsAlpha)
210//     {
211//         destValue . r = destValue . a;
212//     }
213//     else
214//     {
215//         int defaultChannelsMask = params . destDefaultChannelsMask;
216//         if((defaultChannelsMask & 2)!= 0)
217//         {
218//             destValue . g = 0;
219//         }
220//         if((defaultChannelsMask & 4)!= 0)
221//         {
222//             destValue . b = 0;
223//         }
224//         if((defaultChannelsMask & 8)!= 0)
225//         {
226//             destValue . a = 1;
227//         }
228//     }
229//
230//     dest = destValue;
231// }
232