blob: 9c7b1df66a31372f1c9046099080e131215e5a0f [file] [log] [blame]
// 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/EtcToBc.comp.00000001.inc:
// Pre-generated shader for the ANGLE Vulkan back-end.
#pragma once
constexpr uint8_t kEtcToBc_comp_00000001[] = {
0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x6d,0x59,0x69,0x90,0x55,0xd5,
0x11,0xbe,0xa7,0xcf,0x61,0x06,0x90,0xb8,0x1b,0xd7,0x88,0x8a,0x55,0x56,0x14,0x70,
0x0a,0x11,0x06,0x18,0xd4,0x8c,0xcb,0x58,0x81,0x52,0xc3,0xb8,0x11,0x17,0x16,0x67,
0x52,0x6a,0x4a,0x4c,0x04,0x05,0x65,0x15,0x05,0x91,0x45,0x88,0x18,0x93,0xa0,0xfe,
0x88,0x29,0x51,0x5c,0x71,0xc1,0xad,0x34,0x61,0x1d,0x04,0x37,0x12,0x31,0x8e,0x80,
0x14,0xd1,0x10,0xa3,0x65,0x2c,0x0b,0x63,0x89,0x46,0x9d,0x9c,0x7e,0xdf,0xd7,0xbc,
0x7e,0xcf,0x79,0x55,0xb7,0xee,0xed,0xaf,0x97,0xd3,0xa7,0x4f,0x9f,0xee,0x73,0xef,
0x8b,0xd2,0xab,0xb6,0x88,0xa1,0xe8,0x5e,0x74,0x2d,0xd6,0xa7,0xa2,0xf4,0xdb,0xaf,
0x90,0x22,0xf0,0xde,0x97,0xf7,0xa1,0xbc,0x9f,0x9e,0xef,0x7b,0x15,0x35,0x25,0x7e,
0xd3,0xf0,0xe6,0xe1,0x7d,0xc7,0x4f,0x68,0xe9,0xdb,0xff,0xe4,0x3a,0xd5,0xdb,0xbb,
0x88,0x25,0x7d,0xe5,0xed,0x53,0xd4,0x16,0x5d,0xf2,0x5d,0x4d,0x5e,0x33,0xe6,0xaa,
0x71,0x8a,0xbf,0x9d,0xaf,0x6d,0xf9,0xda,0x37,0xeb,0xa7,0x92,0xbd,0xa2,0x38,0x8d,
0xf2,0x7a,0x9d,0x9d,0x35,0x4e,0x86,0x0b,0x45,0x2f,0xde,0x0d,0x0b,0xc4,0x92,0xc3,
0x84,0x58,0x57,0x87,0x45,0x62,0x3d,0x1c,0x96,0x88,0xed,0xeb,0xb0,0x2e,0xc4,0x0e,
0x74,0x58,0x0d,0xb1,0x43,0x1c,0x56,0x4b,0xec,0x08,0x9d,0x6f,0xb6,0x6e,0xe3,0x36,
0x65,0xab,0x6f,0x97,0x62,0x51,0x14,0x87,0x91,0xde,0x46,0xfa,0x70,0xd2,0x2f,0x64,
0xa7,0x8f,0xe1,0x3c,0x8c,0x3e,0xda,0xd1,0x7b,0x4b,0x25,0x5f,0xe9,0xa3,0x39,0x57,
0x1d,0x4b,0xe9,0x43,0xc9,0x3b,0x40,0x60,0x5b,0xe9,0x03,0xb2,0x07,0xea,0xc3,0xd1,
0x59,0x26,0xd2,0x9f,0x83,0xb2,0x8c,0xfa,0x7f,0x14,0xed,0x1d,0x9c,0xe9,0x5a,0xce,
0x49,0x4a,0x78,0x2a,0xc5,0xa9,0x96,0x97,0xca,0x77,0xa3,0x7c,0x20,0xbf,0x3b,0x79,
0xdd,0xa8,0xbf,0x2f,0x9f,0x4d,0xff,0x40,0xf2,0xd5,0xe6,0x09,0xd4,0x3f,0x31,0x5f,
0x7d,0x1c,0x5d,0xc7,0x35,0x38,0x32,0x5b,0xb3,0x98,0xd6,0xd0,0x4e,0x4d,0x27,0x97,
0xda,0x1d,0x40,0xbe,0xca,0x0f,0x21,0x3d,0x90,0x98,0xd9,0xad,0x77,0xf2,0x83,0x9c,
0xbd,0x13,0x38,0xef,0x06,0xce,0xfb,0x40,0xe6,0xaa,0xe1,0x8d,0x9c,0x9f,0xd9,0x39,
0x8b,0xeb,0x6b,0x74,0x13,0xf3,0xc7,0xe8,0x11,0xcc,0x09,0xa3,0x9b,0x99,0x3f,0x46,
0x8f,0x64,0x1e,0x19,0x7d,0x39,0x73,0xc9,0xe8,0x2b,0xf2,0xd5,0xd3,0xd1,0xad,0x8c,
0x9f,0xc6,0xf3,0x7a,0xfa,0x9d,0x9c,0x7f,0x37,0xd0,0xde,0x11,0x99,0x9e,0x98,0xef,
0xd7,0x13,0x33,0xfd,0x49,0xa5,0x7d,0x55,0x14,0xbd,0x73,0xe4,0x95,0x77,0x23,0x6d,
0x5e,0x4e,0xdf,0x27,0x39,0xd9,0x9b,0xaa,0x62,0x36,0x99,0xfb,0xc0,0x74,0xa7,0x50,
0xb7,0x9e,0xb2,0x93,0x9d,0xec,0xd4,0xaa,0x38,0x4d,0xe3,0x5a,0x9b,0xee,0x74,0xca,
0x34,0x93,0x37,0xd9,0xf1,0x66,0x90,0x57,0x47,0xbf,0xbc,0xdd,0x9b,0xb9,0x27,0x4c,
0x76,0xa6,0xf3,0x7f,0x1a,0xf9,0x26,0x7b,0x4b,0xbe,0xba,0x3b,0xd9,0x5b,0x9d,0xbf,
0x4d,0xe4,0x1b,0x6f,0x16,0xc7,0xab,0xa7,0x1d,0xcf,0x9b,0x4d,0xbd,0xe6,0x4e,0x78,
0xb7,0xd1,0x57,0x1b,0xff,0x26,0xc7,0x9b,0x53,0x35,0x47,0xcf,0xbb,0xdd,0xcd,0xb1,
0x9a,0x37,0xd7,0xe9,0xd5,0x57,0xf1,0xe6,0xd1,0x97,0x3a,0xc7,0xb3,0xf9,0xce,0x67,
0xce,0x9a,0xec,0x02,0x62,0x53,0xa9,0xe3,0xed,0xdc,0xe1,0xe2,0x3b,0x8d,0xf1,0x30,
0xde,0x42,0x37,0xdf,0xfa,0x3d,0xbc,0x03,0x4a,0xf9,0xb4,0x88,0x39,0x33,0x85,0x6b,
0x38,0x83,0x6b,0x70,0x2b,0x63,0x38,0x9b,0x31,0x99,0xc3,0x39,0xce,0xa5,0xcf,0x0b,
0x38,0xe6,0x42,0xee,0xb9,0xc5,0xcc,0x87,0x89,0xce,0xff,0xe5,0x9a,0x33,0xdf,0x74,
0x74,0x18,0xfd,0x6c,0xbe,0x3a,0x62,0x99,0xff,0x9c,0xd2,0x59,0xe9,0x87,0xb9,0x22,
0xbc,0xcc,0x5a,0xa3,0x3c,0x7d,0x5e,0x53,0x9a,0xf9,0x77,0x8d,0x46,0xaf,0x2d,0xd1,
0xd3,0x4f,0x37,0xfa,0x75,0x84,0xe6,0x54,0xdd,0x37,0x6f,0x71,0xaf,0x47,0xfa,0xb2,
0x99,0xb9,0xfa,0x16,0xeb,0xc5,0x66,0xf6,0x96,0xe0,0xf6,0x55,0x3b,0xf7,0xb5,0xf1,
0xb7,0xb9,0x3a,0xf7,0x1e,0x9f,0x7d,0xfd,0xd8,0x51,0xb5,0x2f,0x77,0x96,0x7a,0x58,
0x99,0xfe,0x94,0xfb,0xd8,0xe8,0x2f,0xe9,0x8f,0xfa,0x27,0x01,0xb6,0xbc,0x7e,0x6d,
0x40,0x9d,0xd1,0x35,0x52,0x7e,0xd7,0x80,0x1a,0xd5,0xce,0xfd,0xad,0x7c,0x93,0xed,
0x9e,0x9f,0x3b,0x5c,0x6c,0x06,0xa8,0x73,0xc5,0x8e,0xd3,0x8c,0xae,0x0f,0x08,0xc6,
0x9e,0x5a,0x97,0xe9,0x5f,0x5f,0xd8,0x5f,0x8c,0x1e,0x1d,0x2a,0x6b,0xd0,0x75,0x99,
0xfe,0x91,0x93,0x9f,0x10,0x2a,0x6b,0xf4,0x74,0x8e,0xa7,0xbe,0xff,0x21,0x3f,0x0f,
0xe5,0xdc,0x0e,0xcd,0xdc,0x67,0x39,0x97,0x2e,0x45,0xe5,0x8f,0x2e,0xe4,0xde,0x16,
0x8b,0xe7,0x32,0xa1,0x72,0x1a,0xcb,0xe7,0xc9,0x50,0x6c,0x08,0xe9,0x17,0x88,0x29,
0xbf,0x2d,0xa0,0x26,0x75,0xa3,0xfd,0x1e,0x02,0xfb,0xa1,0xca,0xbe,0x94,0x7a,0x06,
0x74,0x7e,0x20,0xc0,0x54,0x76,0x08,0xe9,0xbd,0xa5,0x32,0x06,0xfb,0x0b,0xce,0x0e,
0xbd,0x33,0xa5,0x79,0xa0,0xfd,0x51,0xb1,0x46,0xd6,0xfc,0xde,0x79,0x06,0x9a,0xaf,
0x8b,0x12,0x62,0xde,0x4e,0x4c,0x6b,0xed,0x6f,0x12,0xf6,0x4b,0xab,0xc3,0xee,0x4c,
0xd8,0x5f,0x75,0x6e,0xcd,0x16,0x27,0xac,0x8d,0xbf,0x42,0x9e,0xbf,0xee,0xb9,0x25,
0x09,0xcf,0x2a,0xf7,0x68,0x2a,0xc7,0xb6,0x2d,0xa1,0x27,0x0e,0xc8,0x76,0x85,0x39,
0x51,0x30,0x57,0x76,0x67,0xa4,0x0b,0x73,0x52,0xf7,0xd3,0x99,0x11,0x7b,0xca,0xe8,
0xfb,0xa4,0x4c,0x6b,0xee,0xfe,0x2d,0x54,0xd2,0x3b,0x48,0x7f,0x99,0xad,0xf5,0x65,
0x3c,0xfe,0x97,0x9f,0x35,0xaf,0x4e,0x14,0xd8,0xd7,0xfb,0x50,0xee,0x99,0x41,0x82,
0x7d,0x71,0x6e,0xd6,0x52,0xbd,0xc1,0x02,0x6c,0x90,0x94,0xd7,0xf4,0x56,0xc6,0xa9,
0x41,0xc0,0xd7,0x78,0xfd,0x24,0x63,0xba,0x47,0x86,0x0a,0xf6,0x8d,0xda,0x1f,0xca,
0xb8,0x9f,0x22,0xc0,0x57,0x67,0x19,0xa5,0x4f,0x15,0x60,0xba,0x7f,0xd6,0x13,0x6b,
0x24,0xb6,0xd3,0x61,0x67,0x08,0x64,0x1b,0x39,0xa6,0x62,0x67,0x52,0x4f,0x79,0x3f,
0x23,0xd6,0x24,0xf0,0xa5,0x28,0xd5,0x2a,0x60,0x67,0x0b,0x70,0x95,0x1f,0x91,0x11,
0xf5,0xf7,0xca,0x04,0xdc,0x64,0x6d,0x9c,0x61,0x1c,0xe7,0x53,0x37,0xce,0x70,0xd2,
0xc3,0xdc,0x38,0xe7,0x50,0x37,0xb8,0x71,0xce,0x15,0xe0,0xc3,0xdd,0x38,0xbf,0x4c,
0xc0,0xaf,0x4c,0x90,0xb5,0x71,0x46,0x08,0xe6,0xa9,0x75,0xc0,0x62,0x71,0x3e,0x31,
0xcd,0xab,0xf3,0x18,0xd7,0x0b,0x04,0xb2,0xca,0x9b,0x41,0xec,0x22,0x81,0x5d,0xe5,
0x4d,0xe1,0x39,0x6b,0xa4,0x00,0xd7,0xd8,0xeb,0xf9,0xe6,0xce,0x80,0x33,0x50,0x9d,
0x8b,0xfd,0xe2,0x00,0x7c,0x0a,0x73,0xed,0xae,0x00,0xcc,0x74,0x7e,0x4b,0x9d,0x66,
0xa7,0x73,0x77,0x00,0x6e,0x3a,0xbf,0x0b,0xc0,0xce,0x63,0xde,0xff,0x3e,0xc0,0x8e,
0xe2,0x4f,0x64,0x4c,0xeb,0xc1,0x92,0x00,0x7f,0x94,0xb7,0x24,0xeb,0x69,0x7d,0xb8,
0x87,0xb8,0xe6,0xde,0x7d,0xdc,0xbc,0x5f,0x67,0x9e,0xe2,0xf7,0xe6,0x4b,0x31,0xcd,
0x3f,0x7d,0xfe,0x4a,0xdf,0x1b,0x98,0x8f,0x8a,0xaf,0xe1,0x58,0xf7,0xd3,0xae,0xee,
0xbf,0xf5,0xc4,0x96,0x12,0xd3,0xfd,0xa7,0x6b,0xa3,0x3e,0x2e,0x0b,0xc0,0x0b,0xae,
0xa1,0x62,0x0f,0x07,0xcc,0x4b,0x79,0x26,0xf7,0x28,0xe5,0x6c,0x0d,0x15,0x7b,0x2c,
0x40,0x56,0x79,0xa6,0xfb,0x24,0x75,0x15,0x33,0xb9,0x67,0x02,0xf0,0x65,0x01,0xb1,
0xd2,0xfa,0xf5,0x22,0x6b,0x97,0xd9,0x7f,0x29,0xc0,0x67,0x9f,0x23,0x7f,0x61,0xcc,
0xfd,0xba,0xaf,0x0c,0xc0,0x5b,0x8b,0x72,0x9c,0x57,0x05,0xe0,0xe6,0xc3,0xea,0x00,
0x7b,0xab,0x9c,0xfd,0xb5,0xb4,0x5f,0x38,0xff,0xd7,0x05,0xc8,0xae,0xe5,0xba,0x6a,
0xfd,0x5c,0xcf,0x75,0x6d,0xe5,0xba,0xaa,0xdc,0x2b,0xc4,0x4d,0x6f,0x43,0x80,0xae,
0xe2,0x2d,0x59,0x46,0xeb,0xf3,0x46,0xce,0x69,0x94,0xd6,0xa2,0x7c,0x7f,0x95,0xd8,
0x86,0x50,0xde,0x07,0xa3,0x04,0x78,0x28,0xe5,0x2c,0xea,0xde,0x55,0x02,0xdc,0x5f,
0xab,0x69,0xe3,0x6a,0x01,0x5f,0xfb,0xd9,0x7a,0x62,0xd7,0x08,0xf0,0xc5,0xa9,0x6c,
0xf7,0x5a,0x01,0x5e,0x94,0x7a,0x3b,0xb0,0x5f,0x09,0xf0,0x5a,0x37,0xfe,0x75,0x94,
0x0b,0x4e,0x6e,0xbc,0x00,0xd7,0x3e,0xb9,0x8e,0xd8,0x04,0x81,0xfe,0x78,0xb7,0x87,
0x6f,0xa0,0xae,0x38,0xdd,0x89,0x02,0xbc,0xdd,0xe9,0x4e,0x12,0xe8,0x4f,0x74,0xba,
0x37,0x51,0x37,0x3a,0xdd,0xc9,0x02,0xbc,0xc1,0xe9,0x4e,0x11,0xe8,0x4f,0x76,0xba,
0x63,0x19,0xb3,0xc2,0xc5,0xec,0x66,0x01,0xee,0x2f,0x8b,0xd9,0x4c,0x01,0xdf,0xc7,
0x6c,0x96,0x00,0xf7,0x31,0xbb,0x4d,0x80,0xfb,0x98,0xcd,0x11,0xe0,0x3e,0x66,0x73,
0x29,0xe7,0x63,0x36,0x4f,0x80,0xfb,0x98,0xcd,0x17,0xe8,0xcf,0x73,0xbe,0xdf,0x41,
0x5d,0x1f,0xb3,0x85,0x02,0xdc,0xc7,0x6c,0x91,0x40,0x7f,0xa1,0xd3,0xbd,0x93,0xba,
0x3e,0x66,0x8b,0x05,0xb8,0x8f,0xd9,0x5d,0x02,0x7d,0xe5,0x59,0x1d,0x6c,0x11,0xc4,
0x52,0x79,0xa7,0x64,0x0b,0xda,0xdb,0x14,0xb3,0xfd,0xb1,0x54,0x50,0xeb,0x74,0xff,
0xce,0x24,0xf6,0xa0,0xa0,0x97,0x2e,0x75,0x75,0xf1,0x21,0xc1,0x5e,0xa8,0x77,0x35,
0x6e,0x99,0x00,0x7f,0x24,0xcb,0x68,0xad,0x7a,0x58,0x80,0x35,0xb0,0x57,0xae,0x90,
0x72,0xbd,0x52,0xde,0x23,0xf9,0x5a,0xce,0xfa,0xf4,0x08,0x6d,0xeb,0x3b,0xdf,0xa3,
0x82,0x9e,0xdb,0xe8,0x6c,0x3f,0x26,0xc0,0x6d,0x5f,0x3f,0x2e,0xc0,0x36,0x66,0xae,
0xd2,0x4f,0x08,0xb0,0xb3,0x78,0xee,0xd6,0xda,0xb7,0x82,0xb6,0x97,0x3b,0xdb,0x4f,
0x76,0x62,0xfb,0x29,0x01,0xfe,0x6a,0xa6,0x94,0x7e,0x5a,0x80,0x99,0x2d,0x1b,0xf3,
0x19,0x01,0xcf,0xdb,0xd6,0xfb,0x17,0x39,0xb2,0xa5,0x3e,0x90,0xe0,0x87,0xce,0xe5,
0x19,0xce,0xcd,0xc6,0x7d,0xae,0x93,0x71,0x9f,0x17,0xe0,0x36,0xee,0x0b,0x02,0x6c,
0x04,0x7b,0x87,0x8d,0xfb,0xa2,0x80,0x67,0x7a,0x2f,0x55,0xe9,0xbd,0x2c,0xc0,0x46,
0x56,0xe9,0xfd,0x59,0xc0,0x5b,0xc3,0x75,0x5c,0x29,0x58,0x4b,0x7d,0x77,0x31,0xbf,
0x56,0xd1,0xaf,0x95,0xce,0xfe,0x6a,0x01,0xbe,0xde,0xea,0x23,0xf5,0xf4,0x9d,0xda,
0xc6,0x5c,0x27,0x90,0x5b,0x2b,0x95,0xf5,0xb6,0x4d,0xc0,0xb3,0xdc,0x79,0x45,0x70,
0x16,0x5b,0xea,0xfc,0xd8,0x28,0xc0,0xbd,0x1f,0xaf,0xd2,0x8f,0x8d,0xce,0x8f,0xd7,
0x04,0xb8,0xf9,0xf1,0x06,0xf5,0xae,0x70,0x35,0xff,0x4d,0x81,0xdc,0x1b,0x52,0x3e,
0x13,0x6c,0x12,0xe0,0x8d,0xce,0xaf,0xbf,0x0a,0x70,0xcd,0x79,0x3d,0xdf,0x2d,0x2a,
0x8d,0x5d,0x53,0x7a,0xcf,0xdd,0x2c,0x38,0xf3,0x69,0xbc,0xda,0xa4,0x5c,0xdb,0xdf,
0x16,0xf0,0x6c,0x2e,0xef,0x08,0xec,0xe8,0x7b,0x61,0x1b,0xb1,0x76,0x81,0xdc,0x3b,
0x6e,0x0f,0x6d,0x11,0xe4,0x42,0x93,0xeb,0x27,0x5b,0x05,0xb8,0xae,0x8f,0xed,0x8f,
0xf7,0x04,0x6b,0x3b,0x9f,0xfb,0x63,0xa7,0xdb,0x1f,0xca,0xdb,0x9e,0xaf,0x0f,0x98,
0x67,0xdb,0x9d,0xfd,0x7f,0x08,0xc6,0x7d,0xd1,0x61,0xef,0x0b,0x70,0xcb,0xfd,0x9d,
0xd4,0xfb,0x40,0x2a,0xe9,0x9d,0x2e,0x5f,0xef,0x4e,0xd0,0xdb,0x4e,0x7b,0x1f,0x48,
0xd9,0xdf,0x7f,0x0b,0x7c,0x56,0x99,0x65,0xdc,0x63,0x9f,0x08,0xf6,0xf4,0x72,0xbe,
0x1f,0x1b,0xfe,0x19,0xf1,0x67,0xf9,0xae,0xd9,0x23,0x9f,0x92,0x15,0xff,0x2f,0x6b,
0x63,0x1f,0xda,0x53,0x7d,0x95,0x55,0x3d,0x7d,0x9f,0xda,0x4d,0xbd,0x35,0x7c,0xef,
0xbc,0x96,0xef,0x59,0x5f,0x0b,0x74,0x8d,0xfe,0x86,0x7a,0x73,0xb2,0x6f,0x4a,0x7f,
0x2b,0x90,0x51,0x7c,0x16,0xb1,0x0e,0x01,0xae,0x36,0x6f,0x26,0xa6,0x05,0x52,0x71,
0x7d,0x87,0x1d,0xc7,0x35,0x0d,0x11,0xb8,0x9e,0x2b,0xf5,0xfd,0x61,0x6a,0x02,0xb6,
0x84,0x2f,0x08,0x56,0xdf,0xde,0x61,0xaf,0x9f,0xe6,0xf6,0x6b,0x7b,0x00,0x6e,0xeb,
0xf7,0x6e,0x00,0x66,0xf5,0x6d,0xab,0x3b,0x8f,0x29,0x6f,0x4b,0xbe,0xb6,0xf2,0x3c,
0xb6,0xc5,0xf5,0x8d,0xda,0x88,0xbe,0x15,0x5d,0xdf,0xda,0x2f,0x02,0xf7,0x97,0xf5,
0xad,0xfd,0x23,0xf8,0xbe,0x6f,0x1d,0x14,0x81,0xfb,0xbe,0x75,0x70,0x04,0xee,0xfb,
0xd6,0x21,0x11,0xb8,0xef,0x5b,0x87,0x51,0xce,0xf7,0xad,0xc3,0x23,0x70,0xdf,0xb7,
0x8e,0x88,0xd0,0x57,0x9e,0xe9,0x1e,0x49,0x5d,0xdf,0xb7,0x7a,0x46,0xe0,0xbe,0x6f,
0x1d,0x15,0xa1,0xdf,0xd3,0xe9,0x1e,0x43,0x5d,0xdf,0xb7,0x7a,0x45,0xe0,0xbe,0x6f,
0x1d,0x1b,0xa1,0xdf,0xcb,0xe9,0x76,0x67,0xcc,0xc4,0xc5,0xec,0xc7,0x11,0xb8,0xbf,
0x2c,0x66,0xc7,0x47,0xf0,0x7d,0xcc,0xfa,0x44,0xe0,0x3e,0x66,0x27,0x46,0xe0,0x3e,
0x66,0x75,0x11,0xb8,0x8f,0x59,0x3f,0xca,0xf9,0x98,0x9d,0x14,0x81,0xfb,0x98,0xf5,
0x8f,0xd0,0x3f,0xc9,0xf9,0x3e,0x80,0xba,0x3e,0x66,0x03,0x23,0x70,0x1f,0xb3,0xfa,
0x08,0xfd,0x81,0x4e,0x77,0x30,0x75,0x7d,0xcc,0x86,0x44,0xe0,0x3e,0x66,0x0d,0x11,
0xfa,0xca,0xb3,0x5e,0xdf,0x23,0x22,0x96,0xca,0xd3,0xba,0xa7,0xef,0xad,0x8a,0x69,
0xae,0x5e,0x16,0x2b,0x7b,0x71,0x73,0xa6,0x2f,0x8e,0xc8,0x55,0x7d,0xb6,0xba,0x7c,
0x7e,0xc4,0xfb,0xae,0xef,0x5b,0x17,0x44,0xe0,0x56,0x5b,0x2f,0x8c,0xc0,0xac,0x17,
0x5f,0x14,0x81,0xf9,0x5e,0x7c,0x19,0x6d,0x5f,0xec,0x6c,0x8f,0xec,0xc4,0xf6,0xcf,
0x23,0x70,0xeb,0x33,0x97,0x44,0x60,0xd5,0xbd,0xf8,0xd2,0x08,0x9e,0xb7,0xad,0x77,
0xab,0x6d,0xf7,0x24,0xf8,0xa1,0x73,0xb9,0x94,0x73,0xb3,0x71,0x47,0x75,0x32,0xee,
0xe8,0x08,0xdc,0xc6,0x1d,0x13,0x81,0x55,0xf7,0xe2,0xb1,0x11,0x3c,0xd3,0x6b,0xa9,
0xd2,0x6b,0x8d,0xc0,0xaa,0x7b,0xf1,0x2f,0x22,0x78,0xe6,0xc3,0x55,0xf4,0xc1,0xf7,
0xdd,0xab,0x23,0x70,0xb3,0x75,0x4d,0x04,0x56,0xdd,0x63,0xc7,0x45,0xf0,0xcc,0xd6,
0x78,0xda,0xf2,0xbd,0x73,0x42,0x04,0x6e,0x7d,0x72,0x62,0x04,0xe6,0xfb,0xe4,0xa4,
0x08,0xdc,0xf7,0xc9,0x1b,0x23,0x70,0xcd,0x17,0xfd,0x2e,0xe2,0xfb,0xe4,0x94,0x88,
0x6f,0x25,0x3a,0x97,0x71,0xb1,0xdc,0x27,0xa7,0x46,0xf0,0xac,0x4f,0x4e,0x8f,0xb0,
0xe3,0xfb,0xe4,0x8c,0x08,0x39,0xe5,0x59,0xcf,0x9a,0x19,0xb1,0x4e,0xbe,0x4f,0xde,
0x12,0x81,0xfb,0x3e,0x39,0x2b,0x22,0xee,0xd6,0x27,0x17,0xb8,0xdc,0x55,0xde,0xec,
0x7c,0xcd,0x63,0x0e,0xcc,0x76,0xf6,0x6f,0x8f,0x18,0x77,0xac,0xc3,0xe6,0x46,0xe0,
0x96,0x97,0x0b,0xa8,0x37,0x2f,0x56,0xd2,0x0b,0x5c,0x2e,0xdd,0x97,0xa0,0x37,0x9b,
0xf6,0x54,0xd6,0xfc,0x5d,0x14,0xe1,0xb3,0xca,0x58,0xdf,0xbb,0x37,0x96,0xfb,0x9e,
0xf2,0xad,0xef,0x59,0x3f,0xbb,0x3f,0x42,0xc6,0xfa,0xd9,0x03,0x11,0x98,0xef,0x67,
0x0f,0x46,0xe0,0xbe,0x9f,0x3d,0x14,0x81,0xfb,0x7e,0xb6,0x2c,0x02,0xb7,0x7e,0x76,
0x7b,0x02,0x36,0x95,0xdf,0x49,0x74,0x4e,0xd6,0x83,0xf4,0xfe,0x05,0xbf,0x55,0xff,
0x31,0x41,0x46,0xcf,0x03,0xaa,0xb3,0x80,0xfb,0x59,0xf3,0xe2,0xc3,0x80,0xf7,0x72,
0x7b,0x3f,0xfe,0x38,0x40,0x5e,0x7f,0x63,0x02,0x62,0xf2,0x59,0x2c,0x7f,0x7b,0x55,
0xbe,0xd6,0xc0,0x16,0xf2,0x76,0x75,0xc2,0xb3,0xb5,0x5c,0x19,0xa1,0xbb,0x8b,0x75,
0xa8,0xcd,0xad,0xa5,0xf2,0x56,0xe5,0xab,0x8d,0x6b,0xb0,0xca,0xe5,0xd4,0x57,0xd4,
0x51,0xdd,0x3d,0xe7,0x84,0x08,0xdc,0x64,0xbe,0x8d,0x18,0xcf,0xcb,0x7c,0x17,0x81,
0x5b,0xac,0xf5,0x43,0xa0,0x62,0xaa,0x6b,0xb1,0x0e,0x09,0xb8,0x7e,0xef,0xd5,0x35,
0x54,0x4c,0x92,0x7d,0xc7,0x06,0x5f,0xbf,0xfd,0x82,0x8f,0xb3,0x4b,0x4c,0xe5,0xff,
0x4b,0x55,0xd6,0xd6,0x23,0x25,0xf0,0x2c,0xdf,0x6a,0x12,0xb0,0x66,0x77,0x76,0xae,
0x4d,0xf8,0x76,0x5c,0x43,0x5c,0xd7,0xc8,0xe6,0xdc,0xc6,0xbc,0x53,0xb9,0xfb,0x13,
0x6a,0xbc,0xae,0x9b,0xea,0x68,0x3c,0x9e,0x62,0x1c,0x5f,0x89,0x58,0xa7,0xd1,0xfc,
0x16,0xb4,0xc9,0xc5,0x51,0x79,0x1b,0xf2,0xf5,0x26,0x6d,0x6e,0x88,0xe5,0x6f,0x70,
0xaf,0x71,0x6d,0x3e,0x0c,0xe5,0x6f,0x29,0xaf,0xb3,0x87,0x29,0xcf,0x7a,0xcc,0x1b,
0x11,0xe3,0xbf,0xce,0x7d,0xb1,0x89,0xb6,0xde,0xac,0xa2,0x37,0x39,0x7f,0xff,0x94,
0xa0,0xb7,0x81,0xbd,0x49,0x65,0x1f,0xa7,0xbf,0x6f,0x55,0xf9,0xbb,0xcd,0xf9,0xab,
0xbc,0xcd,0xf9,0xda,0x4a,0x9b,0x9b,0x9d,0x1f,0x7f,0xa7,0x1f,0xd7,0x85,0xf2,0x1c,
0xda,0xdd,0x1c,0x66,0x12,0x7b,0x37,0xe2,0xfb,0x7a,0xbb,0xab,0x79,0x5b,0x22,0xf4,
0xdf,0xa5,0xcf,0xdb,0x68,0x7f,0x6b,0x15,0xbd,0xcd,0xcd,0xe1,0x81,0x04,0xbd,0xcd,
0x9c,0xc3,0x56,0xd7,0x4f,0xb7,0x47,0xcc,0x51,0x65,0xae,0x0c,0xf8,0x96,0xbb,0xc3,
0xe5,0xfa,0x76,0xc6,0xd1,0xde,0x57,0xde,0x67,0xce,0x4e,0x0f,0x65,0xec,0x9f,0xcc,
0x61,0xc5,0xd6,0x12,0xdb,0x19,0x81,0x37,0xb1,0x9f,0x2b,0xf6,0xaf,0x08,0xfd,0x9d,
0x7e,0x5f,0x46,0xe0,0x76,0x36,0xf8,0x28,0x62,0xfc,0xc2,0x9d,0x03,0x3e,0x8e,0x90,
0xfb,0xc8,0xc9,0x7d,0x42,0xb9,0xe0,0xbe,0x87,0xfe,0x27,0x42,0x56,0x79,0xe7,0xe6,
0x11,0xf5,0x7c,0xf4,0x29,0xbf,0xa1,0x2b,0x2f,0xf1,0xbf,0x07,0xe1,0xdc,0x74,0xcd,
0x3e,0xaf,0x3a,0xdf,0xee,0xca,0xd7,0xe7,0xac,0x2d,0xbb,0x5c,0xbd,0xd8,0xcd,0x7a,
0x11,0x5c,0xbd,0x38,0x27,0x95,0xe3,0xb4,0xbb,0xaa,0x5e,0x9c,0xd7,0x09,0xcf,0xea,
0xc5,0x91,0x09,0xba,0x90,0x89,0xc5,0xb1,0xa9,0xec,0x83,0xf2,0x7a,0xe6,0x4b,0x31,
0xf5,0x41,0x9f,0xad,0x16,0x5c,0x44,0x1d,0xd5,0xb5,0x5a,0x70,0x71,0x02,0x6e,0x32,
0x97,0x24,0x8c,0xe7,0x65,0x2e,0x4d,0xc0,0xad,0x5e,0x5c,0x9e,0x80,0xa9,0xae,0xd5,
0x8b,0x51,0x09,0xb8,0xaf,0x17,0xa3,0x5d,0xbd,0x18,0xd5,0x49,0xbd,0x18,0xe3,0xea,
0xc5,0x68,0x57,0x2f,0xc6,0x26,0xf0,0xac,0x5e,0xb4,0x24,0x60,0xbe,0x5e,0xb4,0xb2,
0x5e,0xb4,0xb8,0x7a,0x61,0x73,0xd6,0xbb,0xe5,0xee,0x53,0xac,0x17,0xba,0x16,0xad,
0x8c,0x4d,0xe9,0x3f,0x8a,0x54,0x59,0x1b,0x8e,0xcb,0x74,0x1f,0xea,0x1f,0x97,0xca,
0xfb,0xea,0xf8,0xf4,0xfd,0xda,0x70,0x42,0xc2,0x7a,0x28,0xcf,0xf6,0x64,0xef,0x84,
0xb1,0x94,0x57,0xfa,0xc6,0x4c,0x5b,0x7d,0xaa,0xe8,0xbe,0xce,0xb7,0xa7,0x13,0xf4,
0x8e,0xa3,0x8f,0x7d,0xe8,0xdb,0xe0,0x54,0x59,0x07,0xfa,0x65,0x7a,0x10,0xf5,0xfb,
0xb9,0x31,0xfb,0x73,0x4c,0x5f,0x07,0x06,0xa4,0xef,0xd7,0x81,0x81,0x09,0x75,0x40,
0x79,0x56,0x07,0xea,0x13,0xf4,0x07,0xd2,0xbf,0xc1,0xb4,0x3f,0xa8,0x8a,0x1e,0xec,
0xfc,0x5d,0x91,0xa0,0xd7,0x8f,0xfe,0xaa,0xac,0xed,0x9d,0x86,0x84,0xf9,0xac,0x70,
0x75,0xe0,0x14,0x97,0xc3,0x0d,0xa9,0xb2,0x0e,0x9c,0xc6,0x5c,0xf4,0x75,0xa0,0x91,
0xb9,0xe9,0xeb,0xc0,0xe9,0x09,0xb8,0xaf,0x03,0x67,0x24,0xe8,0x2b,0xcf,0xea,0xc0,
0x99,0x09,0xf8,0x9e,0xff,0x6a,0x12,0xc6,0xf7,0x75,0xe0,0xec,0x04,0xb9,0x26,0x27,
0xf7,0x53,0xca,0xf9,0x3a,0x30,0x2c,0x41,0x56,0x79,0x56,0x07,0xbe,0x09,0xa8,0x01,
0xc3,0x52,0xf9,0xff,0x29,0xab,0x03,0x1a,0x2f,0xdb,0xf3,0x9f,0xf3,0x3c,0xa1,0x3a,
0xeb,0x12,0xea,0x87,0xd6,0x52,0xd5,0xd7,0x58,0x3e,0xcc,0x3d,0xfc,0x1d,0xcf,0x13,
0x76,0x7e,0x2b,0xdc,0x77,0x0e,0xe5,0x75,0x70,0x00,0xb5,0xd9,0xe1,0xfe,0x47,0x09,
0xfc,0xc6,0x38,0xdf,0x9d,0xd3,0x45,0x80,0xcf,0xe6,0x9c,0xa2,0x00,0xdb,0xe1,0xce,
0xb0,0x49,0x80,0x9b,0x9d,0x2e,0xb4,0x33,0xd5,0xd9,0xa9,0x11,0xe0,0x66,0xa7,0x56,
0x80,0x79,0x3b,0x5d,0x05,0xb8,0xfd,0x47,0xd3,0x4d,0x60,0xbb,0x2b,0xbf,0x93,0x28,
0xb6,0x97,0xe0,0xbf,0x83,0x6e,0x3c,0x7b,0xeb,0x7f,0xa5,0xfb,0xf0,0x7f,0xd2,0x2b,
0x32,0xad,0xcf,0x2a,0xb3,0x8e,0xb9,0x66,0xf3,0x2c,0xa4,0xf2,0xff,0x19,0xbd,0x7f,
0x9b,0x23,0x5d,0x9f,0xaf,0xff,0x03,0xa4,0xb0,0x5e,0xa3,0x0c,0x26,0x00,0x00
};
// Generated from:
//
// #version 450 core
//
// #extension GL_GOOGLE_include_directive : require
//
// #extension GL_KHR_shader_subgroup_clustered : enable
// #extension GL_KHR_shader_subgroup_shuffle : enable
//
// layout(local_size_x = 64, local_size_y = 1, local_size_z = 1)in;
// layout(binding = 0)uniform highp usamplerBuffer uInputBuffer;
// layout(binding = 1, rgba32ui)writeonly uniform uimage2D uOutput;
//
// layout(push_constant)uniform imagInfo {
//
// uint offsetX;
// uint offsetY;
// int texelOffset;
// uint width;
// uint height;
// uint alphaBits;
// uint isSigned;
// uint isEacRg;
// };
//
// #line 1 "shaders/src/third_party/etc_decoder/etc_decoder.h"
//
// const ivec2 etc1_color_modifier_table[8]= ivec2[](
// ivec2(2, 8),
// ivec2(5, 17),
// ivec2(9, 29),
// ivec2(13, 42),
// ivec2(18, 60),
// ivec2(24, 80),
// ivec2(33, 106),
// ivec2(47, 183));
//
// const ivec4 etc2_alpha_modifier_table[16]= ivec4[](
// ivec4(2, 5, 8, 14),
// ivec4(2, 6, 9, 12),
// ivec4(1, 4, 7, 12),
// ivec4(1, 3, 5, 12),
// ivec4(2, 5, 7, 11),
// ivec4(2, 6, 8, 10),
// ivec4(3, 6, 7, 10),
// ivec4(2, 4, 7, 10),
// ivec4(1, 5, 7, 9),
// ivec4(1, 4, 7, 9),
// ivec4(1, 3, 7, 9),
// ivec4(1, 4, 6, 9),
// ivec4(2, 3, 6, 9),
// ivec4(0, 1, 2, 9),
// ivec4(3, 5, 7, 8),
// ivec4(2, 4, 6, 8)
// );
//
// const int etc2_distance_table[8]= int[](3, 6, 11, 16, 23, 32, 41, 64);
//
// int decode_etc2_alpha(uvec2 payload, int linear_pixel)
// {
// int bit_offset = 45 - 3 * linear_pixel;
//
// int base = isSigned != 0 ? bitfieldExtract(int(payload . y), 24, 8): int(bitfieldExtract(payload . y, 24, 8));
//
// int multiplier = int(bitfieldExtract(payload . y, 20, 4));
// int table = int(bitfieldExtract(payload . y, 16, 4));
//
// int lsb_index = int(bitfieldExtract(payload[bit_offset >> 5], bit_offset & 31, 2));
// bit_offset += 2;
// int msb = int((payload[bit_offset >> 5]>>(bit_offset & 31))& 1u);
// int mod = etc2_alpha_modifier_table[table][lsb_index]^(msb - 1);
//
// int a = base * 8 + 4;
// a += multiplier != 0 ? mod * multiplier * 8 : mod;
// int minValue = isSigned != 0 ? - 1023 : 0;
// int maxValue = isSigned != 0 ? 1023 : 2047;
// a = clamp(a, minValue, maxValue);
// float scale = isSigned != 0 ? 127.0f : 255.0f;
// return int(a / float(maxValue)* scale + 0.5f);
//
// }
//
// ivec4 DecodeRGB(ivec2 pixel_coord, uvec2 color_payload, int linear_pixel, inout bool punchthrough){
// int alpha_result = 0xff;
// ivec3 rgb_result;
// ivec3 base_rgb;
// uint flip = color_payload . y & 1u;
// uint subblock = uint((pixel_coord[flip]& 2)>> 1);
// bool etc1_compat = false;
//
// if(alphaBits != 1 &&(color_payload . y & 2u)== 0u)
// {
//
// etc1_compat = true;
// base_rgb = ivec3(color_payload . yyy >>(uvec3(28, 20, 12)- 4u * subblock));
// base_rgb &= 0xf;
// base_rgb *= 0x11;
// }
// else
// {
// int r = int(bitfieldExtract(color_payload . y, 27, 5));
// int rd = bitfieldExtract(int(color_payload . y), 24, 3);
// int g = int(bitfieldExtract(color_payload . y, 19, 5));
// int gd = bitfieldExtract(int(color_payload . y), 16, 3);
// int b = int(bitfieldExtract(color_payload . y, 11, 5));
// int bd = bitfieldExtract(int(color_payload . y), 8, 3);
//
// int r1 = r + rd;
// int g1 = g + gd;
// int b1 = b + bd;
//
// if(uint(r1)> 31u)
// {
// int r1 = int(bitfieldExtract(color_payload . y, 56 - 32, 2))|
// (int(bitfieldExtract(color_payload . y, 59 - 32, 2))<< 2);
// int g1 = int(bitfieldExtract(color_payload . y, 52 - 32, 4));
// int b1 = int(bitfieldExtract(color_payload . y, 48 - 32, 4));
// int r2 = int(bitfieldExtract(color_payload . y, 44 - 32, 4));
// int g2 = int(bitfieldExtract(color_payload . y, 40 - 32, 4));
// int b2 = int(bitfieldExtract(color_payload . y, 36 - 32, 4));
// uint da =(bitfieldExtract(color_payload . y, 34 - 32, 2)<< 1)|
// (color_payload . y & 1u);
// int dist = etc2_distance_table[da];
//
// int msb = int((color_payload . x >>(15 + linear_pixel))& 2u);
// int lsb = int((color_payload . x >> linear_pixel)& 1u);
// int index = msb | lsb;
//
// if(punchthrough)
// punchthrough = index == 2;
//
// if(index == 0)
// {
// rgb_result = ivec3(r1, g1, b1);
// rgb_result *= 0x11;
// }
// else
// {
// int mod = 2 - index;
// ivec3 rgb = ivec3(r2, g2, b2)* 0x11 + mod * dist;
// rgb_result = ivec3(clamp(rgb, ivec3(0), ivec3(255)));
// }
// }
// else if(uint(g1)> 31u)
// {
// int r1 = int(bitfieldExtract(color_payload . y, 59 - 32, 4));
// int g1 =(int(bitfieldExtract(color_payload . y, 56 - 32, 3))<< 1)|
// int((color_payload . y >> 20u)& 1u);
// int b1 = int(bitfieldExtract(color_payload . y, 47 - 32, 3))|
// int((color_payload . y >> 16u)& 8u);
// int r2 = int(bitfieldExtract(color_payload . y, 43 - 32, 4));
// int g2 = int(bitfieldExtract(color_payload . y, 39 - 32, 4));
// int b2 = int(bitfieldExtract(color_payload . y, 35 - 32, 4));
// uint da = color_payload . y & 4u;
// uint db = color_payload . y & 1u;
// uint d = da + 2u * db;
// d += uint((r1 * 0x10000 + g1 * 0x100 + b1)>=(r2 * 0x10000 + g2 * 0x100 + b2));
// int dist = etc2_distance_table[d];
// int msb = int((color_payload . x >>(15 + linear_pixel))& 2u);
// int lsb = int((color_payload . x >> linear_pixel)& 1u);
//
// if(punchthrough)
// punchthrough =(msb + lsb)== 2;
//
// ivec3 base = msb != 0 ? ivec3(r2, g2, b2): ivec3(r1, g1, b1);
// base *= 0x11;
// int mod = 1 - 2 * lsb;
// base += mod * dist;
// rgb_result = ivec3(clamp(base, ivec3(0), ivec3(0xff)));
// }
// else if(uint(b1)> 31u)
// {
//
// int r = int(bitfieldExtract(color_payload . y, 57 - 32, 6));
// int g = int(bitfieldExtract(color_payload . y, 49 - 32, 6))|
// (int(color_payload . y >> 18)& 0x40);
// int b = int(bitfieldExtract(color_payload . y, 39 - 32, 3))|
// (int(bitfieldExtract(color_payload . y, 43 - 32, 2))<< 3)|
// (int(color_payload . y >> 11)& 0x20);
// int rh = int(color_payload . y & 1u)|
// (int(bitfieldExtract(color_payload . y, 2, 5))<< 1);
// int rv = int(bitfieldExtract(color_payload . x, 13, 6));
// int gh = int(bitfieldExtract(color_payload . x, 25, 7));
// int gv = int(bitfieldExtract(color_payload . x, 6, 7));
// int bh = int(bitfieldExtract(color_payload . x, 19, 6));
// int bv = int(bitfieldExtract(color_payload . x, 0, 6));
//
// r =(r << 2)|(r >> 4);
// rh =(rh << 2)|(rh >> 4);
// rv =(rv << 2)|(rv >> 4);
// g =(g << 1)|(g >> 6);
// gh =(gh << 1)|(gh >> 6);
// gv =(gv << 1)|(gv >> 6);
// b =(b << 2)|(b >> 4);
// bh =(bh << 2)|(bh >> 4);
// bv =(bv << 2)|(bv >> 4);
//
// ivec3 rgb = ivec3(r, g, b);
// ivec3 dx = ivec3(rh, gh, bh)- rgb;
// ivec3 dy = ivec3(rv, gv, bv)- rgb;
// dx *= int(pixel_coord . x);
// dy *= int(pixel_coord . y);
// rgb = rgb +((dx + dy + 2)>> 2);
// rgb = clamp(rgb, ivec3(0), ivec3(255));
// rgb_result = ivec3(rgb);
//
// punchthrough = false;
//
// }
// else
// {
//
// etc1_compat = true;
// base_rgb = ivec3(r, g, b)+ int(subblock)* ivec3(rd, gd, bd);
// base_rgb =(base_rgb << 3)|(base_rgb >> 2);
// }
// }
//
// if(etc1_compat)
// {
// uint etc1_table_index = bitfieldExtract(color_payload . y, 5 - 3 * int(subblock != 0u), 3);
// int msb = int((color_payload . x >>(15 + linear_pixel))& 2u);
// int lsb = int((color_payload . x >> linear_pixel)& 1u);
// int sgn = 1 - msb;
//
// if(punchthrough)
// {
// sgn *= lsb;
// punchthrough =(msb + lsb)== 2;
// }
//
// int offset = etc1_color_modifier_table[etc1_table_index][lsb]* sgn;
// base_rgb = clamp(base_rgb + offset, ivec3(0), ivec3(255));
// rgb_result = ivec3(base_rgb);
// }
//
// if(alphaBits == 1 && punchthrough)
// {
// rgb_result = ivec3(0);
// alpha_result = 0;
// }
//
// return ivec4(rgb_result . r, rgb_result . g, rgb_result . b, alpha_result);
// }
// #line 77 "shaders/src/EtcToBc.comp"
//
// ivec2 build_coord()
// {
// uvec2 base =(gl_WorkGroupID . xy)* 8;
// uint blockid = gl_LocalInvocationID . x >> 4u;
// uint blockxy = gl_LocalInvocationID . x & 0xfu;
// base . x += 4 *(blockid & 0x1);
// base . y += 2 *(blockid & 0x2);
// base += uvec2(blockxy & 0x3, blockxy >> 0x2);
// return ivec2(base);
// }
//
// uint flip_endian(uint v)
// {
// uvec4 words = uvec4(v)>> uvec4(0, 8, 16, 24);
// words &= 0xffu;
// return(words . x << 24u)|(words . y << 16u)|(words . z << 8u)|(words . w << 0u);
// }
//
// uvec2 flip_endian(uvec2 v)
// {
// return uvec2(flip_endian(v . y), flip_endian(v . x));
// }
//
// uint GetIndicesRGB(vec3 color, vec3 minColor, vec3 maxColor, bool transparent)
// {
// vec3 dir = maxColor - minColor;
// float distMin = dot(minColor, dir);
// float distMax = dot(maxColor, dir);
// float dist = dot(color, dir);
// int ind = int(round(clamp((dist - distMin)/(distMax - distMin), 0.0, 1.0)*(transparent ? 2.0 : 3.0)));
//
// return bitfieldExtract(transparent ? 0x18u : 0x2du, ind * 2, 2);
// }
//
// void ComputeMaxMinColor(uvec3 rgbColor, inout uvec3 minColor, inout uvec3 maxColor){
// ivec3 dx;
// if(alphaBits == 1){
// int count = subgroupClusteredAdd(1, 16);
// ivec3 avg = ivec3((subgroupClusteredAdd(rgbColor, 16)* 2 + count)/(2 * count));
// dx = ivec3(rgbColor)- avg;
// }
// else {
// dx = ivec3(rgbColor)- ivec3(subgroupClusteredAdd(rgbColor, 16)+ 8 >> 4);
// }
// vec3 cov0 = vec3(subgroupClusteredAdd(dx . r * dx, 16));
// vec3 cov1 = vec3(subgroupClusteredAdd(dx . ggb * dx . gbb, 16));
// vec3 vg = vec3(subgroupClusteredMax(rgbColor, 16)- subgroupClusteredMin(rgbColor, 16));
//
// mat3 covMat = mat3(cov0,
// vec3(cov0 . y, cov1 . xy),
// vec3(cov0 . z, cov1 . yz));
//
// float eigenvalue = 0.0f;
// for(int i = 0;i < 4;i ++){
// vg = covMat * vg;
// eigenvalue = sqrt(dot(vg, vg));
// if(eigenvalue > 0.0f){
// float invNorm = 1.0f / eigenvalue;
// vg *= invNorm;
// }
// }
// const float kDefaultLuminanceThreshold = 4.0f * 255;
// const float kQuantizeRange = 0.512f;
//
// if(eigenvalue < kDefaultLuminanceThreshold){
// vg = vec3(0.299f, 0.587f, 0.114f);
// }
// else {
// float magn = max(max(abs(vg . r), abs(vg . g)), abs(vg . b));
// vg *= kQuantizeRange / magn;
// }
// float dist = dot(vec3(rgbColor), vg);
// float min_dist = subgroupClusteredMin(dist, 16);
// float max_dist = subgroupClusteredMax(dist, 16);
// uvec2 indices = uvec2(dist == min_dist ? gl_SubgroupInvocationID : 0,
// dist == max_dist ? gl_SubgroupInvocationID : 0);
// uvec2 minMaxIndex = subgroupClusteredMax(indices, 16);
// minColor = subgroupShuffle(rgbColor, minMaxIndex . x);
// maxColor = subgroupShuffle(rgbColor, minMaxIndex . y);
// }
//
// uint GetIndicesAlpha(int alpha, int minAlpha, int maxAlpha)
// {
// float dist = float(maxAlpha - minAlpha);
// int ind = int(round(clamp((alpha - minAlpha)/ dist * 7.0f, 0.0, 7.0)));
//
// return bitfieldExtract(0x2345671u, ind * 4, 4);
// }
//
// void ComputeMaxMin(int alpha, inout int minAlpha, inout int maxAlpha){
// minAlpha = subgroupClusteredMin(alpha, 16);
// maxAlpha = subgroupClusteredMax(alpha, 16);
// }
// uvec2 EncodeBC4(int value, uint pid){
// int minValue, maxValue;
// ComputeMaxMin(value, minValue, maxValue);
// uint indices = 0;
// if(minValue != maxValue)
// indices = GetIndicesAlpha(value, minValue, maxValue);
//
// uvec2 mask = uvec2(pid <= 5 ? indices <<(16 + 3 * pid): 0x0,
// pid >= 5 ?(indices << 29)>>(45 - 3 * pid): 0x0);
//
// mask = subgroupClusteredOr(mask, 16);
// return uvec2((maxValue & 0xff)|((minValue & 0xff)<< 8)| mask . x, mask . y);
// }
//
// uvec3 scaleColorToRGB565(uvec3 color){
// return uvec3(round(vec3(color)* vec3(31.0 / 255.0, 63.0 / 255.0, 31.0 / 255.0)));
// }
//
// uvec3 convertRGB565ToRGB888(uvec3 color){
// return uvec3(color . x << 3 |(color . x >> 2),
// color . y << 2 |(color . y >> 4),
// color . z << 3 |(color . z >> 2));
// }
//
// uint packRGB565(uvec3 color565){
// return color565 . r << 11 |(color565 . g << 5)| color565 . b;
// }
//
// void modifyMinMax(inout uvec3 minColor, inout uvec3 maxColor){
// uvec3 minColor565 = scaleColorToRGB565(minColor);
// uvec3 maxColor565 = scaleColorToRGB565(maxColor);
// if(all(equal(minColor565, maxColor565))){
// uvec3 simulatedColor = convertRGB565ToRGB888(minColor565);
// ivec3 signMax = sign(ivec3(maxColor)- ivec3(simulatedColor));
// ivec3 signMin = sign(ivec3(minColor)- ivec3(simulatedColor));
// bvec3 needCorrect = greaterThan(signMax * signMin, ivec3(0, 0, 0));
// bvec3 positive = greaterThan(signMin, ivec3(0, 0, 0));
// maxColor565 . r += needCorrect . r && positive . r ? 1 : 0;
// maxColor565 . g += needCorrect . g && positive . g ? 1 : 0;
// maxColor565 . b += needCorrect . b && positive . b ? 1 : 0;
// minColor565 . r -= needCorrect . r && ! positive . r ? 1 : 0;
// minColor565 . g -= needCorrect . g && ! positive . g ? 1 : 0;
// minColor565 . b -= needCorrect . b && ! positive . b ? 1 : 0;
// }
// minColor = minColor565;
// maxColor = maxColor565;
// }
//
// void swap(inout uint a, inout uint b){
// uint t = a;
// a = b;
// b = t;
// }
//
// void main()
// {
// ivec2 coord = build_coord();
// if(any(greaterThanEqual(coord, ivec2(width, height))))
// return;
//
// ivec2 tile_coord = coord >> 2;
// ivec2 pixel_coord = coord & 3;
// int linear_pixel = 4 * pixel_coord . x + pixel_coord . y;
// int pid = 4 * pixel_coord . y + pixel_coord . x;
// uvec4 payload = texelFetch(uInputBuffer, tile_coord . y * int((width + 3)>> 2)+ tile_coord . x + texelOffset);
//
// ivec4 result;
//
// result . r = decode_etc2_alpha(flip_endian(payload . xy), linear_pixel);
// if(isEacRg != 0){
// result . g = decode_etc2_alpha(flip_endian(payload . zw), linear_pixel);
// }
//
// uvec4 finalResult;
//
// finalResult . rg = EncodeBC4(result . r, pid);
// if(isEacRg != 0)
// finalResult . ba = EncodeBC4(result . g, pid);
//
// if(pid == 0){
// tile_coord += ivec2(offsetX / 4, offsetY / 4);
// imageStore(uOutput, tile_coord, finalResult);
// }
//
// }