// 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/ConvertVertex.comp.00000008.inc:
//   Pre-generated shader for the ANGLE Vulkan back-end.

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

// Generated from:
//
// #version 450 core
//
// layout(local_size_x = 64, local_size_y = 1, local_size_z = 1)in;
//
// layout(set = 0, binding = 0)buffer dest
// {
//     uint destData[];
// };
//
// layout(set = 0, binding = 1)buffer src
// {
//     uint srcData[];
// };
//
// layout(push_constant)uniform PushConstants
// {
//
//     uint outputCount;
//
//     uint componentCount;
//
//     uint srcOffset;
//     uint destOffset;
//
//     uint Ns;
//     uint Bs;
//     uint Ss;
//     uint Es;
//
//     uint Nd;
//     uint Bd;
//     uint Sd;
//     uint Ed;
//
//     bool isSrcHDR;
//     bool isSrcA2BGR10;
// } params;
//
// uint getSourceComponentOffset(uint vertex, uint component)
// {
//     return vertex * params . Ss + component * params . Bs + params . srcOffset;
// }
//
// uint getDestinationComponentOffset(uint vertex, uint component)
// {
//     return vertex * params . Sd + component * params . Bd + params . destOffset;
// }
//
// uint getShiftBits(uint offset, uint B)
// {
//
//     uint shift =(offset % 4)* 8;
//
//     return shift;
// }
//
//       float loadSourceComponent(uint cd)
// {
//
//     uint vertex = cd / params . Nd;
//     uint component = cd % params . Nd;
//
//     if(component >= params . Ns && component < 3)
//     {
//         return 0;
//     }
//
//     uint offset = getSourceComponentOffset(vertex, component);
//     uint block = srcData[offset / 4];
//
//     uint shiftBits;
//     uint valueBits;
//     uint valueMask;
//
//     if(params . isSrcHDR)
//     {
//         valueBits = component == 3 ? 2 : 10;
//         valueMask = component == 3 ? 0x03 : 0x3FF;
//         if(params . isSrcA2BGR10)
//         {
//             shiftBits = 10 * component;
//         }
//         else
//         {
//
//             shiftBits = component == 3 ? 0 :(valueBits *(2 - component)+ 2);
//         }
//     }
//     else
//     {
//         shiftBits = getShiftBits(offset, params . Bs);
//         valueBits = params . Bs * 8;
//         valueMask = valueBits == 32 ? - 1 :(1 << valueBits)- 1;
//     }
//
//     uint valueAsUint;
//
//     if(component >= params . Ns && component == 3)
//     {
//
//         valueAsUint = floatBitsToUint(1.0);
//
//     }
//     else
//     {
//         valueAsUint =(block >> shiftBits)& valueMask;
//     }
//
//           float value = uintBitsToFloat(valueAsUint);
//
//     return value;
// }
//
//        float convertComponent(float srcValue)
// {
//
//     return srcValue;
// }
//
// uint makeDestinationComponent(uint cd, float value)
// {
//
//     uint shift =((cd & 1)== 0)? 0 : 16;
//     uint valueAsUint = packHalf2x16(vec2(value, 0.0))<< shift;
//
//     return valueAsUint;
// }
//
// void storeDestinationComponents(uint valueAsUint)
// {
//
//     destData[gl_GlobalInvocationID . x + params . destOffset / 4]= valueAsUint;
// }
//
// void main()
// {
//     if(gl_GlobalInvocationID . x >= params . outputCount)
//         return;
//
//     uint valueOut = 0;
//     for(uint i = 0;i < params . Ed;++ i)
//     {
//         uint cd = gl_GlobalInvocationID . x * params . Ed + i;
//         if(cd >= params . componentCount)
//         {
//             break;
//         }
//
//               float srcValue = loadSourceComponent(cd);
//                float destValue = convertComponent(srcValue);
//         valueOut |= makeDestinationComponent(cd, destValue);
//     }
//
//     storeDestinationComponents(valueOut);
// }
