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/OverlayDraw.comp.00000000.inc:
9//   Pre-generated shader for the ANGLE Vulkan back-end.
10
11#pragma once
12constexpr uint8_t kOverlayDraw_comp_00000000[] = {
13    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x75,0x58,0x79,0x8c,0x57,0xd5,
14    0x15,0x7e,0xe7,0xfe,0x86,0x59,0x60,0x2a,0xb4,0x0a,0xad,0x76,0x44,0x61,0xc4,0x42,
15    0xc0,0x61,0x09,0x0c,0x53,0x87,0x6d,0xd8,0x06,0x2c,0x91,0xbd,0x49,0x9d,0xb4,0x20,
16    0x63,0x5b,0x95,0x40,0x21,0x2c,0x16,0xc2,0x36,0x80,0x16,0xa5,0x50,0x4d,0x2b,0x30,
17    0x20,0x20,0x91,0x46,0xaa,0xa4,0x22,0x7f,0x35,0x6d,0x93,0xb6,0xd0,0x74,0x61,0xb1,
18    0x10,0x2b,0x8b,0xa5,0xb6,0x6c,0xb5,0xa0,0x52,0x84,0x5a,0x65,0xef,0xfd,0xde,0xf9,
19    0x0e,0xbf,0x33,0x2f,0xc3,0x2f,0xb9,0x79,0xef,0x7e,0x67,0xfb,0xee,0xbd,0xe7,0xde,
20    0x7b,0x7e,0x2f,0x17,0xca,0x8b,0x92,0x44,0x92,0x96,0x49,0x71,0x72,0x7b,0x2e,0x49,
21    0x7f,0x9f,0x4f,0x42,0x44,0x92,0xa4,0x55,0x52,0x98,0x3e,0x6b,0x47,0x8d,0x1f,0x55,
22    0x31,0x6b,0xf6,0x63,0x15,0xbd,0xfb,0xf4,0x80,0xfc,0xb6,0x44,0x15,0x21,0x6b,0x9d,
23    0x14,0x25,0x2d,0xe2,0xb3,0x20,0xb6,0x69,0x8f,0x3e,0x31,0x1d,0xf8,0x91,0xd8,0xce,
24    0xc7,0xd6,0x26,0xda,0x17,0xa4,0xfe,0x92,0xe8,0x5d,0x75,0x52,0x7f,0xf1,0x6d,0x50,
25    0x7c,0x16,0xa6,0x3a,0x49,0x32,0x22,0x7a,0xa8,0xd1,0xd0,0x49,0x39,0x9f,0x86,0x09,
26    0x31,0xaf,0x17,0x88,0xdd,0xeb,0xb0,0x1c,0xb1,0x1e,0xf4,0x3f,0x84,0xfe,0x7b,0x88,
27    0xea,0x0c,0xcd,0xf8,0xaf,0x8d,0x16,0x43,0xe9,0x0b,0xfa,0xc3,0xe3,0xb3,0xe3,0x4d,
28    0x99,0xf6,0x3b,0x38,0xbe,0xcb,0x32,0xf2,0x65,0x94,0x17,0xb0,0xbf,0x2e,0x33,0x9e,
29    0xc6,0x66,0xc6,0xd3,0xd8,0xcc,0x78,0x1a,0x9b,0x19,0x4f,0x63,0x33,0xe3,0x59,0x6f,
30    0xe3,0x29,0x50,0x9d,0x0d,0xcd,0x8c,0x67,0x83,0x1b,0xcf,0xc6,0x0c,0xdf,0x8d,0xe4,
31    0x6b,0xf2,0x23,0xe9,0xfa,0x26,0x49,0x19,0x63,0x1e,0x6b,0x86,0xef,0x31,0xc7,0xb7,
32    0x98,0x31,0x8e,0x39,0x1f,0xe7,0x32,0x31,0xce,0x31,0x46,0x8e,0xfd,0xf3,0x8c,0x71,
33    0x17,0xfb,0xef,0x4b,0x53,0x7d,0xf4,0x3b,0xb8,0xfe,0x15,0x51,0xfd,0x3b,0x63,0xbb,
34    0x3d,0x46,0x09,0xa9,0xbf,0x5c,0xea,0x0f,0xef,0x6d,0xa3,0x4e,0x21,0xe7,0x09,0xbf,
35    0x2f,0xc6,0x7e,0x11,0xe7,0x25,0xb0,0x5f,0xcc,0x3e,0xd6,0xe5,0x8e,0x88,0x96,0xc4,
36    0x67,0xbb,0xe8,0xa1,0x2d,0xed,0xa0,0xd3,0x31,0xf5,0xa5,0x3a,0xe8,0x77,0x89,0xcf,
37    0x12,0xfa,0xe8,0xca,0x18,0x95,0x8c,0x61,0xfd,0x6a,0xea,0x5b,0x7f,0x20,0xd7,0xb0,
38    0x8c,0xb9,0x5c,0x4c,0xac,0x7d,0x94,0xd6,0xb0,0xdf,0x91,0xcf,0x41,0xce,0x6e,0x30,
39    0x79,0x94,0x31,0x47,0x6b,0x88,0xb5,0x67,0x3e,0x0e,0x49,0xe5,0x05,0xc9,0x30,0xf2,
40    0x19,0x9a,0xc6,0xd6,0xfe,0x70,0x37,0x0f,0xb5,0xf4,0x23,0xf4,0x5d,0x9b,0xae,0x59,
41    0x9e,0x33,0xfa,0x23,0xb9,0x16,0xf0,0x37,0x8a,0xb6,0xc5,0x8e,0x4b,0x9d,0xb3,0x47,
42    0xbf,0x3e,0x33,0x07,0x33,0x32,0xfa,0x73,0x62,0xbb,0x91,0xae,0x4f,0x49,0xd2,0xc0,
43    0x39,0x14,0xc6,0xcc,0x3e,0x11,0x73,0x29,0xdf,0x1b,0x38,0x06,0xf4,0x97,0xb9,0xb5,
44    0x5b,0x91,0xae,0x7b,0x7e,0xed,0x56,0xb2,0x9f,0x73,0x31,0xd7,0x72,0xfe,0xca,0xb8,
45    0xc7,0x8a,0x89,0x61,0x9e,0x1b,0x33,0xf3,0xbc,0x8e,0x7a,0xd8,0x2b,0x8d,0x6e,0x5e,
46    0xb1,0x2f,0xd6,0x93,0xd3,0x4b,0x8c,0xb7,0x81,0x9c,0xd0,0xdf,0xe8,0x38,0xfc,0x8e,
47    0xe3,0x32,0x0e,0x78,0xdf,0x9d,0x32,0x5e,0x32,0x10,0xf2,0x43,0xcc,0x2f,0x9b,0xd7,
48    0xc3,0x1c,0xf3,0x21,0xfa,0x3b,0xcc,0xf3,0x4f,0xd2,0xd8,0x05,0xe9,0x7e,0xb1,0x1c,
49    0x85,0xfe,0xdf,0x99,0x6b,0xc7,0xa8,0x8f,0xfe,0x7b,0xc4,0x20,0xff,0x07,0xdf,0x8b,
50    0x5c,0xfc,0x33,0x9c,0xb3,0x6e,0x11,0xc5,0x58,0xcf,0x12,0xb3,0xb6,0x9b,0x6b,0xf2,
51    0x21,0xe3,0xd8,0x1a,0x24,0xcd,0xac,0xc9,0x47,0x7c,0xff,0x90,0xf1,0xd1,0x3f,0x47,
52    0xcc,0xf8,0x9f,0xcf,0xe4,0x55,0x91,0x68,0xdf,0xe2,0xf7,0x93,0xa6,0xf1,0xcf,0x38,
53    0xdd,0x61,0xa2,0x73,0x89,0x58,0xc3,0xf9,0x6e,0x63,0xff,0x3e,0xfb,0x1d,0xdd,0xfa,
54    0xbe,0x11,0xb1,0xc9,0x6e,0xac,0xbf,0x8a,0xfd,0xfd,0xfb,0xf6,0x0d,0xb0,0x58,0xbf,
55    0xce,0xc4,0x82,0x1c,0xbe,0xf6,0x89,0xce,0x53,0x21,0xc7,0x7e,0x5a,0x9a,0xe6,0xa3,
56    0xfd,0x02,0x31,0xd8,0xfc,0x8b,0x42,0xe8,0x56,0xb3,0xff,0xbe,0xd8,0xdc,0x16,0xa6,
57    0x6b,0x88,0x33,0x68,0x06,0xf7,0x3b,0xf6,0x47,0x45,0x5c,0x69,0xac,0xc5,0x17,0x72,
58    0x38,0x13,0x5a,0xa4,0xfe,0x0a,0xe8,0x1b,0x39,0xf0,0x59,0x44,0x70,0xff,0x7d,0x1a,
59    0x7b,0x57,0xe9,0xeb,0x4a,0x7c,0xc7,0xf9,0x71,0x4d,0x54,0x8e,0x67,0x7f,0xe6,0xce,
60    0x51,0xe6,0xc7,0xe8,0xe8,0x15,0x7e,0xdf,0x25,0x76,0xd4,0xad,0x55,0x4d,0xf4,0x88,
61    0x3c,0xf8,0x27,0x73,0x03,0xfb,0xba,0x3f,0xcf,0xba,0xe3,0xc4,0x7f,0x1e,0x75,0x70,
62    0x6e,0x9d,0xa0,0x8f,0xe3,0x69,0x8e,0x17,0xa4,0x73,0x72,0x92,0x38,0x38,0x9d,0xa6,
63    0xdf,0xcb,0x51,0x06,0xfc,0x14,0xc6,0x4f,0xde,0x78,0xbf,0x14,0x9f,0x57,0xc9,0xf3,
64    0x34,0xe3,0x20,0x37,0xfe,0xc3,0xbc,0x30,0xde,0x1f,0x33,0x2f,0x8c,0xf7,0x05,0x62,
65    0x1f,0x3b,0xde,0x0b,0xb8,0xa7,0x2f,0x52,0x3e,0x29,0x6a,0x62,0x5f,0xfe,0x97,0xfe,
66    0x2e,0x72,0x3d,0x30,0x9e,0xb1,0x91,0x7f,0x61,0xca,0x43,0xe5,0x89,0xc3,0xae,0x10,
67    0x13,0xe3,0x47,0xbe,0x78,0x7e,0xc2,0xbc,0x38,0x18,0x74,0x1f,0x80,0x73,0x41,0x4e,
68    0xcf,0x25,0xc8,0x60,0xbf,0x3f,0xa8,0x0f,0xc8,0x4a,0x45,0x65,0xaf,0x47,0xdf,0xe9,
69    0x19,0x2f,0x2a,0xc7,0xfa,0xfc,0x2f,0xf2,0xbd,0xce,0x33,0xcd,0xe6,0x08,0xf2,0x6b,
70    0xf1,0xfd,0x3a,0x63,0xe2,0xbd,0x34,0x7a,0x45,0x6e,0xb7,0xe0,0x3e,0x18,0xc9,0x18,
71    0x0b,0x98,0xc3,0x85,0xa2,0xb2,0xdf,0xc7,0x18,0xd0,0x2b,0x11,0xdd,0x33,0xc0,0x4d,
72    0xa7,0xa5,0x28,0xfe,0x07,0x8e,0xb1,0x94,0x3c,0x80,0xd7,0x44,0xde,0x38,0x9f,0x5b,
73    0x8b,0x9e,0x45,0x23,0xe8,0xd3,0xd6,0x1d,0x73,0xd8,0x46,0x54,0x6e,0xf3,0x5f,0x1c,
74    0x14,0x6b,0x23,0xf9,0xf9,0xb7,0x9c,0x28,0x09,0x9a,0x13,0xd0,0xd9,0xc0,0x9c,0x68,
75    0x19,0x14,0x47,0x4e,0xb4,0x0e,0xf9,0xf1,0x02,0x6f,0x15,0x1b,0x30,0x8c,0x17,0xef,
76    0x16,0xa3,0xd4,0xc5,0x08,0xcc,0xf7,0x1d,0x8c,0xf1,0x39,0xc6,0x28,0x75,0x31,0x6e,
77    0x0b,0x8a,0x63,0xcd,0xcc,0x1f,0x9e,0x58,0x17,0xc8,0xdb,0x04,0xe5,0x71,0x8d,0xba,
78    0x88,0xb5,0x8d,0xb6,0x77,0x88,0xca,0xc1,0xaf,0x9d,0xe4,0xf9,0x01,0x6f,0x1b,0x5b,
79    0x3b,0xe6,0x28,0xde,0xe1,0xff,0x06,0xd7,0x07,0xb8,0xe5,0xcd,0x9d,0x92,0xdf,0x47,
80    0x86,0x7d,0xd9,0xcd,0xd1,0x6b,0xcc,0x81,0x32,0x51,0x5d,0xc8,0x2c,0xfe,0xdd,0xa2,
81    0x38,0xe2,0xdf,0xe3,0xe2,0x03,0x6f,0x1f,0xdb,0x3d,0x8c,0xdf,0xde,0xc5,0xeb,0xc0,
82    0x78,0xe2,0xe2,0x95,0x33,0x9e,0xb8,0x78,0xf7,0x89,0xea,0x96,0x93,0xbb,0xf9,0xc2,
83    0xd3,0xe6,0xa6,0x13,0xe3,0x63,0x3c,0xf7,0x31,0xa6,0x71,0xbb,0x5f,0x54,0x0e,0x6e,
84    0x9d,0x1d,0x37,0xe0,0x5f,0x89,0xad,0x33,0xfd,0xe1,0x7d,0x09,0x79,0x74,0xe5,0x18,
85    0xeb,0x1c,0xb7,0x07,0xdc,0x5a,0x1a,0xb7,0x0a,0x51,0xdd,0x07,0xc8,0xcd,0x7c,0x75,
86    0x76,0xdc,0xba,0x33,0x3e,0xf8,0x56,0x30,0xa6,0x71,0x43,0x7d,0xdd,0x9d,0xdc,0x7a,
87    0x39,0x6e,0xc0,0x7b,0xc6,0xd6,0x8b,0xfe,0x7a,0xba,0x79,0xeb,0xed,0xe6,0xcd,0xf8,
88    0xf6,0x11,0xc5,0x3d,0xdf,0xbe,0xe4,0x9b,0x73,0x7c,0xab,0x44,0x75,0xfb,0x92,0xaf,
89    0xf9,0xef,0xe5,0xf8,0x7e,0x95,0x9c,0x30,0x86,0x2a,0xf2,0x00,0xbf,0x6a,0xc7,0x0f,
90    0x3a,0x0f,0xe2,0x1e,0xa0,0xfd,0x83,0x99,0xbc,0x02,0xbe,0x34,0xc6,0xc4,0x3e,0x18,
91    0x2c,0xf9,0xfd,0x54,0x13,0x77,0x23,0xee,0xb5,0xda,0xcc,0x5e,0xc5,0xbd,0x57,0xc9,
92    0xfd,0x0a,0xee,0x23,0xa8,0x83,0xb8,0x55,0xa1,0xe9,0xbd,0xf0,0x25,0xee,0x0d,0x3c,
93    0x6f,0xe6,0x6e,0xd0,0x38,0xf8,0x3d,0x43,0xec,0xae,0xa0,0x38,0x7c,0x19,0x56,0x16,
94    0x14,0xaf,0x4e,0x94,0x0b,0xce,0x8d,0xbb,0x43,0x53,0x2e,0x23,0xa9,0x67,0x67,0x47,
95    0xfb,0xa0,0x3a,0xcf,0xd2,0xc7,0xbd,0xce,0x87,0xcd,0x6b,0xc7,0xa0,0x78,0x25,0xef,
96    0x8d,0xbe,0xee,0x8c,0x80,0xac,0x3c,0xb6,0xfb,0xc9,0x1b,0x4f,0xb3,0xeb,0x4c,0xbb,
97    0x3a,0xda,0x55,0x3a,0x3b,0xc8,0xba,0xc4,0xd6,0x8d,0x76,0xdd,0x9c,0x5d,0x05,0xed,
98    0xea,0x69,0xd7,0xc7,0xd9,0x41,0xd6,0x3d,0xb6,0x5e,0xb4,0xeb,0xe5,0xe6,0xa9,0x77,
99    0xd0,0xf1,0xe4,0x78,0x37,0x54,0x51,0xa7,0xbb,0xd3,0xe9,0x49,0x9d,0x90,0xd1,0x41,
100    0x8c,0x1b,0x31,0xeb,0xf0,0xde,0xc5,0xe9,0x77,0xa5,0xbe,0x64,0xf4,0x2b,0x9d,0x7e,
101    0xb9,0xd3,0xef,0x44,0xfd,0x24,0xa3,0xdf,0xd7,0xe9,0x57,0xa5,0xe7,0x5e,0xab,0x54,
102    0xff,0x54,0x50,0xde,0x18,0x47,0x4f,0x8e,0xad,0x2b,0xe7,0xa6,0x13,0xe7,0xd6,0x7c,
103    0x8f,0x75,0x39,0x6f,0xd8,0x78,0x77,0xa6,0x2c,0x25,0x36,0x41,0x54,0x17,0xb2,0xed,
104    0x9c,0xd3,0x6f,0x88,0xc6,0x9a,0xc0,0xbc,0xab,0x73,0xf9,0x0e,0xd9,0x23,0xd8,0x5f,
105    0xcc,0xf7,0x47,0xdc,0x7e,0xfc,0xa6,0x68,0xee,0xf9,0xfd,0xf8,0x2d,0x51,0xbc,0x9a,
106    0xf7,0x0a,0xfc,0x4f,0x16,0xc5,0x27,0x70,0xaf,0x98,0xaf,0x3a,0xb7,0xf7,0x1e,0x15,
107    0xe5,0x81,0xf1,0x4f,0x66,0x4c,0x70,0xa9,0x77,0x5c,0xa0,0x33,0x25,0xb6,0x7a,0xda,
108    0x4f,0x71,0x5c,0xbe,0xeb,0xb8,0xd8,0x5d,0xf9,0xb8,0xe8,0x3e,0x80,0xec,0x8f,0xc4,
109    0x9e,0x10,0xc5,0xeb,0x5c,0x0e,0x3f,0x29,0x8a,0x57,0x72,0x5d,0xcc,0x7f,0xbd,0xe3,
110    0x37,0x55,0x94,0x23,0x38,0x3f,0x49,0x1e,0x16,0x7b,0xba,0x8b,0x6d,0xf3,0xfc,0x3d,
111    0x8e,0x17,0xb2,0x1d,0x8c,0x33,0x53,0x14,0x3f,0xe5,0xee,0xaf,0x59,0xa2,0xbe,0x5f,
112    0xa5,0xce,0x6c,0x51,0xbd,0x59,0x1c,0xff,0x5c,0x37,0x7e,0xc8,0xe6,0xc4,0x36,0x97,
113    0xfc,0xe6,0xb0,0x06,0x40,0x7d,0x3c,0x2f,0x73,0xae,0x14,0xb1,0x76,0x44,0xcd,0x33,
114    0x9f,0xf2,0xd1,0x71,0x57,0xe3,0x7f,0x4a,0xbf,0xa0,0x75,0xd0,0xc1,0x90,0xaf,0x01,
115    0x02,0xf3,0x06,0xb5,0x70,0xff,0xa0,0x36,0xb9,0xf4,0x7f,0x97,0x62,0x03,0x82,0xfe,
116    0x5f,0x80,0x6c,0x75,0xc4,0xe0,0x67,0x60,0x50,0x5f,0x03,0x42,0xde,0xf7,0x20,0xda,
117    0xce,0x97,0xa6,0xbe,0xcd,0x66,0x70,0x50,0x1d,0xf8,0x69,0x20,0x36,0x24,0xa8,0xaf,
118    0xc1,0x21,0xcf,0x61,0x28,0xf9,0x81,0xc3,0xd3,0xc4,0x6a,0x83,0xe2,0x03,0x9c,0xde,
119    0x88,0xa0,0xf6,0x89,0xe3,0x3f,0x92,0x98,0x38,0xec,0x21,0x62,0x50,0x1d,0xc3,0x5a,
120    0xf0,0x6b,0x41,0xed,0xa1,0x0f,0x79,0x2d,0x6b,0x10,0x9b,0xdf,0xb9,0x92,0xaf,0x1b,
121    0x5b,0xe4,0x94,0x0f,0x72,0x02,0x76,0x73,0x32,0xe7,0xbe,0xd6,0x91,0x25,0xa9,0x6e,
122    0x01,0x75,0x51,0x73,0xf4,0xe3,0x7d,0x01,0xfb,0xb9,0xd2,0xb4,0x2e,0xbd,0xce,0x7c,
123    0x5b,0xc4,0x78,0x8b,0x5c,0xbc,0x03,0x1c,0x3f,0x74,0x0a,0xa3,0x6d,0x83,0xe4,0xeb,
124    0xd4,0xb7,0x82,0xd6,0xbf,0x90,0xad,0x12,0x95,0x59,0x9d,0xba,0x5c,0x54,0x6e,0x75,
125    0xea,0x12,0xca,0x2d,0x87,0x20,0x5f,0x8c,0xfb,0x9e,0x31,0xf1,0x6e,0x75,0xea,0x0f,
126    0x5c,0x9d,0xfa,0x96,0xab,0x53,0x57,0x88,0xca,0xac,0x4e,0x7d,0x8e,0xf9,0xb5,0xc2,
127    0xd5,0xa9,0x2b,0x45,0x71,0xdb,0x7b,0xab,0xc8,0x63,0xa5,0xab,0x53,0x9f,0x17,0xfd,
128    0x16,0x31,0x82,0x3e,0x7d,0x9d,0xfa,0x82,0xa8,0xdc,0x6a,0xc8,0x87,0x83,0x62,0x2f,
129    0x34,0x53,0xa7,0x8e,0x66,0x0d,0xf9,0xb0,0xab,0x21,0xc7,0x04,0xc5,0xb1,0x67,0x26,
130    0xba,0x3b,0x01,0xf8,0xd8,0xd8,0x26,0xf2,0xac,0x1d,0xeb,0xea,0xd4,0x71,0x2e,0x46,
131    0xb6,0x4e,0x1d,0xcf,0x18,0xe3,0x5c,0x8c,0x09,0x41,0x71,0xac,0x99,0xf9,0x9b,0xe8,
132    0xea,0xd4,0xaf,0x07,0xe5,0x81,0x39,0x9d,0xc0,0xb8,0xb6,0xcf,0x5f,0x14,0x95,0x83,
133    0xdf,0x5a,0xb7,0x1e,0xc0,0xd7,0xc4,0xb6,0x96,0xeb,0xb1,0x86,0x39,0xd2,0xc0,0xfe,
134    0x5a,0x57,0x4f,0x6c,0x94,0xfc,0xb8,0x6d,0x4e,0x5f,0xce,0xcc,0xe9,0x30,0xc9,0xcf,
135    0xe9,0x16,0x51,0xb9,0x8d,0x77,0xab,0x28,0xb6,0xc5,0xcd,0xa9,0x9d,0x61,0xaf,0x12,
136    0x0f,0x0e,0xdb,0xee,0x74,0x0d,0x9b,0x14,0x94,0x87,0xaf,0x37,0x26,0x07,0xc5,0xb7,
137    0xbb,0x7a,0x63,0x4a,0x50,0xbc,0xda,0xe9,0x3d,0x16,0x14,0xf7,0x35,0xc8,0xb7,0x43,
138    0x53,0xfe,0x23,0xa9,0x67,0x63,0xf8,0x4e,0x50,0x1d,0xab,0x41,0x1e,0x77,0x3e,0x6e,
139    0x9e,0xdf,0x41,0x71,0xab,0x41,0x16,0xbb,0xf5,0x87,0x6c,0x6a,0x6c,0xd3,0xb9,0x5e,
140    0xd3,0x5d,0x2d,0x31,0x83,0x76,0x56,0x83,0x2c,0x72,0x76,0x90,0xcd,0x8c,0x6d,0x36,
141    0xed,0x66,0x3b,0xbb,0xb9,0xb4,0xb3,0x1a,0x64,0xa1,0xb3,0x83,0xec,0x29,0x9c,0x81,
142    0xb4,0x9b,0xef,0xee,0xe8,0x05,0x41,0xc7,0x63,0x35,0xc8,0x42,0xea,0x3c,0xe5,0x74,
143    0xe6,0x51,0x27,0x64,0x74,0x16,0x86,0xfc,0xfe,0xff,0x5b,0x50,0x5f,0xf0,0x3d,0x8f,
144    0xf1,0xd2,0x73,0x84,0xba,0x33,0x9d,0xbf,0x59,0xf4,0x67,0x35,0x8a,0xe9,0x2c,0x72,
145    0xfe,0xde,0x0d,0xea,0x13,0x31,0x66,0x71,0xdc,0xd0,0x5d,0x4c,0xdd,0xa9,0xce,0xdf,
146    0x34,0xfa,0xb3,0x1a,0xc6,0x74,0x16,0x3b,0x7f,0x47,0x83,0xfa,0x44,0x8c,0x69,0x9c,
147    0x7f,0x5b,0xbf,0x06,0x97,0x17,0xcb,0x89,0x2d,0x0d,0x8a,0xe3,0xfb,0xc9,0x2e,0x62,
148    0x4f,0x07,0xf5,0x03,0x99,0xdd,0xdd,0xcf,0x04,0xc5,0xe7,0x24,0xf9,0x3b,0x75,0x87,
149    0x28,0xfe,0x06,0xef,0xcb,0x9d,0x6e,0x6f,0x41,0xf6,0x66,0x6c,0x3b,0xb9,0x97,0xf0,
150    0xfe,0x2c,0xf7,0xd2,0x4a,0xe6,0xf1,0x56,0xc9,0x73,0xfb,0x61,0x50,0x5f,0x83,0x5d,
151    0xce,0xae,0x72,0xd8,0x18,0xda,0xae,0x0e,0xaa,0x0b,0xd9,0x72,0x62,0x3f,0x0a,0xea,
152    0x6b,0x35,0x73,0x17,0xdf,0x2e,0x9f,0x0f,0xfa,0xdd,0x72,0x09,0x75,0x7e,0x1c,0x54,
153    0x6f,0x65,0xc8,0x7f,0xf3,0xf8,0x49,0x50,0x7c,0x01,0xbf,0x83,0xbd,0x18,0x74,0x2f,
154    0x8e,0xe5,0x59,0xbb,0x26,0xa8,0x8e,0xed,0x41,0x60,0x6b,0x89,0x49,0xca,0xa9,0x30,
155    0xfd,0xfe,0xb9,0x2e,0xa8,0x2e,0x64,0xf0,0x31,0x89,0xf7,0x48,0x63,0x50,0x1e,0xeb,
156    0x42,0xd3,0x6f,0x28,0xb8,0x13,0xd7,0x07,0x95,0x27,0x49,0xbe,0x8e,0xf8,0x4d,0xe6,
157    0x3c,0xf1,0x75,0xc4,0x6f,0x29,0xb7,0xfb,0x73,0x97,0xa8,0x0f,0xdf,0x4a,0xe3,0xae,
158    0x85,0x6c,0x37,0xef,0x92,0x0a,0x7e,0x8b,0x83,0xed,0x2e,0x57,0x83,0x6c,0x0c,0x7a,
159    0xc7,0x1d,0xb8,0x45,0x0d,0xb2,0x29,0xa8,0x0f,0x5f,0x83,0x6c,0x66,0x0d,0xb2,0xc9,
160    0xd5,0x20,0x2f,0x07,0xf5,0xb5,0xd9,0xd5,0x20,0x5b,0x68,0xbb,0xfb,0x16,0x35,0xc8,
161    0x2b,0x41,0x75,0x36,0xb9,0x1a,0x64,0x6b,0x50,0x5f,0xaf,0xb8,0xda,0xe2,0xa7,0xe4,
162    0xe7,0x6b,0x90,0x6d,0x41,0xf1,0xcd,0x4e,0xef,0x67,0x41,0xed,0x7d,0x0d,0xf2,0x1a,
163    0x31,0x5f,0x83,0xbc,0x4e,0xcc,0xd7,0x20,0xdb,0x83,0xda,0x43,0x1f,0xf2,0x6d,0xdc,
164    0x7b,0x96,0xb3,0x3b,0x5d,0x4d,0x50,0x94,0x53,0x3e,0xd8,0x6b,0xb0,0x7b,0x33,0x73,
165    0x57,0x34,0x38,0xdd,0x42,0xea,0xe2,0x3e,0x81,0xdd,0x4e,0x69,0x5a,0x6b,0x2c,0x91,
166    0x3c,0xaf,0x3f,0x49,0x7e,0x9c,0xbf,0xe0,0xbe,0xfa,0xb3,0x28,0xbe,0x9b,0x67,0xdc,
167    0x5e,0xb7,0xaf,0x20,0xdb,0x13,0xdb,0x5e,0xfa,0xda,0x23,0xfa,0xed,0x11,0xdf,0x56,
168    0xf7,0x8b,0x7e,0x7b,0xb4,0xbc,0x49,0xeb,0x15,0xe2,0x56,0xa3,0xfc,0x45,0x14,0xb3,
169    0xf3,0xfa,0xa0,0xf3,0x0d,0xd9,0x81,0xd8,0x0e,0xd2,0xf7,0x01,0x77,0x7f,0xbd,0xcd,
170    0xff,0xff,0xf8,0xa6,0x6a,0xdf,0x6b,0x6b,0x62,0x04,0xc4,0xfd,0xab,0xe4,0xbf,0x79,
171    0xd6,0xb9,0xff,0xd3,0xef,0x50,0x66,0x75,0xf9,0x21,0x51,0xcc,0x7f,0x2f,0x38,0xe2,
172    0xbe,0x2b,0x98,0xde,0x51,0x51,0x5d,0xc8,0xc6,0x45,0x04,0xf1,0xf7,0x04,0xc5,0xdf,
173    0x96,0xfc,0xf9,0x67,0x3c,0x0f,0x72,0xee,0xa1,0xf7,0x0e,0x6b,0x07,0xcc,0x0b,0x6c,
174    0x0e,0xb8,0xbc,0x7f,0x4f,0x9a,0xcf,0xfb,0x5f,0x72,0x6e,0x8e,0x73,0xde,0xcf,0x70,
175    0x6e,0x4e,0xba,0xb9,0x81,0xec,0x44,0x6c,0x27,0x19,0xf3,0x04,0xe7,0x18,0xdf,0xa5,
176    0xff,0xcd,0x6f,0xd2,0x76,0xae,0x9c,0x15,0xe5,0x31,0x25,0xfa,0x45,0x3e,0x7c,0x40,
177    0x9d,0xb3,0x8e,0xcb,0x47,0xa2,0xf8,0x07,0xb7,0xd8,0x27,0xe7,0x45,0x75,0xc0,0xc7,
178    0xf6,0xc9,0x05,0xd1,0x31,0x9c,0x67,0x3e,0x19,0x97,0x93,0x1c,0x3f,0x74,0x0e,0x07,
179    0xd5,0xc1,0x9c,0x5c,0x20,0x67,0xe3,0x79,0x31,0xc3,0xf3,0x13,0xf2,0xb4,0x5c,0xfc,
180    0x54,0xd4,0xde,0xef,0xa5,0xcf,0x88,0xf9,0xbd,0x74,0x89,0x98,0xdf,0x4b,0x97,0x45,
181    0xed,0xa1,0x7f,0x89,0xb9,0x5b,0x1f,0xe3,0x20,0x26,0xe2,0x5c,0x26,0x67,0xcb,0xdb,
182    0xbd,0xd2,0xf4,0x3b,0xf6,0xd5,0xf4,0x1b,0xae,0x24,0x55,0xb1,0xfd,0x1f,0x4b,0x66,
183    0xdb,0xf2,0xe0,0x1e,0x00,0x00
184};
185
186// Generated from:
187//
188// #version 450 core
189//
190// #extension GL_EXT_samplerless_texture_functions : require
191//
192// layout(local_size_x = 8, local_size_y = 4, local_size_z = 1)in;
193//
194// struct TextWidgetData
195// {
196//     uvec4 coordinates;
197//     vec4 color;
198//     uvec4 fontSize;
199//     uvec4 text[256 / 16];
200// };
201//
202// struct GraphWidgetData
203// {
204//     uvec4 coordinates;
205//     vec4 color;
206//     uvec4 valueWidth;
207//     uvec4 values[256 / 4];
208// };
209//
210// layout(set = 0, binding = 0, rgba32f)uniform image2D blendOutput;
211//
212// layout(set = 0, binding = 1)uniform TextWidgets
213// {
214//     TextWidgetData textWidgetsData[32];
215// };
216//
217// layout(set = 0, binding = 2)uniform GraphWidgets
218// {
219//     GraphWidgetData graphWidgetsData[32];
220// };
221//
222// layout(set = 0, binding = 3)uniform utexture2D culledWidgets;
223// layout(set = 0, binding = 4)uniform texture2DArray font;
224//
225// layout(push_constant)uniform PushConstants
226// {
227//     uvec2 outputSize;
228//
229//     bool rotateXY;
230// } params;
231//
232// bool intersects(const uvec2 imageCoords, const uvec4 widgetCoords)
233// {
234//     return all(greaterThanEqual(imageCoords, widgetCoords . xy))&&
235//            all(lessThan(imageCoords, widgetCoords . zw));
236// }
237//
238// uint getChar(const uint textWidget, const uvec2 coordInWidget, const uint fontGlyphWidth)
239// {
240//     const uint charIndex = coordInWidget . x / fontGlyphWidth;
241//     const uint packIndex = charIndex / 4;
242//     const uvec4 arrayItem = textWidgetsData[textWidget]. text[packIndex / 4];
243//     const uint col = packIndex % 4;
244//
245//     uint packedChars;
246//     if(col == 0)
247//     {
248//         packedChars = arrayItem[0];
249//     }
250//     else if(col == 1)
251//     {
252//         packedChars = arrayItem[1];
253//     }
254//     else if(col == 2)
255//     {
256//         packedChars = arrayItem[2];
257//     }
258//     else
259//     {
260//         packedChars = arrayItem[3];
261//     }
262//
263//     const uint shift =(charIndex % 4)* 8;
264//
265//     return(packedChars >> shift)& 0xFF;
266//
267// }
268//
269// float sampleFont(const uint textChar,
270//                  const uvec2 coordInWidget,
271//                  const uvec2 fontGlyphSize,
272//                  const uint fontLayer)
273// {
274//     const uvec2 coordInGlyph = coordInWidget % fontGlyphSize;
275//     const uvec2 glyphOffset = fontGlyphSize *
276//         uvec2(textChar % 32, textChar / 32);
277//
278//     return texelFetch(font, ivec3(glyphOffset + coordInGlyph, fontLayer), 0). x;
279// }
280//
281// uint getValue(const uint graphWidget, const uvec2 coordInWidget, const uint valueWidth)
282// {
283//     const uint valueIndex = coordInWidget . x / valueWidth . x;
284//     const uvec4 arrayItem = graphWidgetsData[graphWidget]. values[valueIndex / 4];
285//     const uint col = valueIndex % 4;
286//
287//     if(col == 0)
288//     {
289//         return arrayItem[0];
290//     }
291//     else if(col == 1)
292//     {
293//         return arrayItem[1];
294//     }
295//     else if(col == 2)
296//     {
297//         return arrayItem[2];
298//     }
299//     else
300//     {
301//         return arrayItem[3];
302//     }
303// }
304//
305// vec4 blend(const vec4 blendedSoFar, const vec4 color)
306// {
307//
308//     return vec4(blendedSoFar . rgb *(1 - color . a)+ color . rgb * color . a,
309//                 blendedSoFar . a *(1 - color . a));
310// }
311//
312// void main()
313// {
314//     uvec2 imageCoords = gl_GlobalInvocationID . xy;
315//     if(any(greaterThanEqual(imageCoords, params . outputSize)))
316//     {
317//         return;
318//     }
319//
320//     vec4 blendedWidgets = vec4(0, 0, 0, 1);
321//
322//     const uvec2 subgroupWidgets = texelFetch(culledWidgets, ivec2(gl_WorkGroupID . xy), 0). xy;
323//     uint textWidgets = subgroupWidgets . x;
324//     uint graphWidgets = subgroupWidgets . y;
325//
326//     while(graphWidgets != 0)
327//     {
328//         const uint graphWidget = findLSB(graphWidgets);
329//         graphWidgets ^= 1 << graphWidget;
330//
331//         const uvec4 widgetCoords = graphWidgetsData[graphWidget]. coordinates;
332//         if(! intersects(imageCoords, widgetCoords))
333//         {
334//             continue;
335//         }
336//
337//         if(imageCoords . x == widgetCoords . x || imageCoords . y == widgetCoords . y ||
338//             imageCoords . x + 1 == widgetCoords . z || imageCoords . y + 1 == widgetCoords . w)
339//         {
340//
341//             blendedWidgets = vec4(0);
342//             continue;
343//         }
344//
345//         const uvec2 coordInWidget = imageCoords - widgetCoords . xy;
346//         const uint valueWidth = graphWidgetsData[graphWidget]. valueWidth . x;
347//
348//         const uint value = getValue(graphWidget, coordInWidget, valueWidth);
349//
350//         vec4 color = vec4(0);
351//         const uint widgetHeight = widgetCoords . w - widgetCoords . y;
352//
353//         bool indicateOverflow = value > widgetHeight && coordInWidget . y + 4 >= widgetHeight
354//                 &&((coordInWidget . x ^ coordInWidget . y)& 1)== 0;
355//
356//         if((widgetHeight - coordInWidget . y)< value && ! indicateOverflow)
357//         {
358//             color = graphWidgetsData[graphWidget]. color;
359//             blendedWidgets = blend(blendedWidgets, color);
360//         }
361//     }
362//
363//     while(textWidgets != 0)
364//     {
365//         const uint textWidget = findLSB(textWidgets);
366//         textWidgets ^= 1 << textWidget;
367//
368//         const uvec4 widgetCoords = textWidgetsData[textWidget]. coordinates;
369//         if(! intersects(imageCoords, widgetCoords))
370//         {
371//             continue;
372//         }
373//
374//         const uvec2 coordInWidget = imageCoords - widgetCoords . xy;
375//         const uvec4 fontSizePacked = textWidgetsData[textWidget]. fontSize;
376//         const uvec2 fontGlyphSize = fontSizePacked . xy;
377//         const uint fontLayer = fontSizePacked . z;
378//
379//         const uint textChar = getChar(textWidget, coordInWidget, fontGlyphSize . x);
380//
381//         if(textChar <(32 * 3))
382//         {
383//
384//             const float sampleValue = sampleFont(textChar, coordInWidget, fontGlyphSize, fontLayer);
385//
386//             vec4 color = vec4(0, 0, 0, 0.4);
387//             color = mix(color, textWidgetsData[textWidget]. color, sampleValue);
388//
389//             blendedWidgets = blend(blendedWidgets, color);
390//         }
391//     }
392//
393//     if(blendedWidgets . a < 1)
394//     {
395//
396//         if(params . rotateXY)
397//         {
398//
399//             imageCoords . xy = imageCoords . yx;
400//             imageCoords . x = params . outputSize . y - 1 - imageCoords . x;
401//         }
402//
403//         vec3 blendedColor = blendedWidgets . rgb;
404//         if(blendedWidgets . a > 0)
405//         {
406//             const vec4 color = imageLoad(blendOutput, ivec2(imageCoords));
407//
408//             blendedColor += color . rgb * blendedWidgets . a;
409//         }
410//
411//         imageStore(blendOutput, ivec2(imageCoords), vec4(blendedColor, 1));
412//     }
413// }
414