// 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/BlitResolve.frag.00000007.inc:
//   Pre-generated shader for the ANGLE Vulkan back-end.

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

// Generated from:
//
// #version 450 core
//
// #extension GL_EXT_samplerless_texture_functions : require
//
// layout(push_constant)uniform PushConstants {
//
//             ivec2 offset;
//     vec2 stretch;
//     vec2 invSrcExtent;
//     int srcLayer;
//     int samples;
//     float invSamples;
//
//     int outputMask;
//
//     bool flipX;
//     bool flipY;
//     bool rotateXY;
// } params;
//
// layout(set = 0, binding = 0)uniform itexture2DMSArray color;
//
// layout(location = 0)out ivec4 colorOut0;
// layout(location = 1)out ivec4 colorOut1;
// layout(location = 2)out ivec4 colorOut2;
// layout(location = 3)out ivec4 colorOut3;
// layout(location = 4)out ivec4 colorOut4;
// layout(location = 5)out ivec4 colorOut5;
// layout(location = 6)out ivec4 colorOut6;
// layout(location = 7)out ivec4 colorOut7;
//
// void main()
// {
//
//             ivec2 srcImageCoords = ivec2(gl_FragCoord . xy);
//
//     srcImageCoords -= params . offset;
//
//     if(params . flipX)
//         srcImageCoords . x = - srcImageCoords . x;
//     if(params . flipY)
//         srcImageCoords . y = - srcImageCoords . y;
//     if(params . rotateXY)
//         srcImageCoords . xy = srcImageCoords . yx;
//
//             ivec4 colorValue = ivec4(0, 0, 0, 0);
//     for(int i = 0;i < params . samples;++ i)
//     {
//         colorValue += texelFetch(color, ivec3(srcImageCoords, params . srcLayer), i);
//     }
//
//     colorValue = ivec4(round(colorValue * params . invSamples));
//
//     if((params . outputMask &(1 << 0))!= 0)
//     {
//         colorOut0 = colorValue;
//     }
//     if((params . outputMask &(1 << 1))!= 0)
//     {
//         colorOut1 = colorValue;
//     }
//     if((params . outputMask &(1 << 2))!= 0)
//     {
//         colorOut2 = colorValue;
//     }
//     if((params . outputMask &(1 << 3))!= 0)
//     {
//         colorOut3 = colorValue;
//     }
//     if((params . outputMask &(1 << 4))!= 0)
//     {
//         colorOut4 = colorValue;
//     }
//     if((params . outputMask &(1 << 5))!= 0)
//     {
//         colorOut5 = colorValue;
//     }
//     if((params . outputMask &(1 << 6))!= 0)
//     {
//         colorOut6 = colorValue;
//     }
//     if((params . outputMask &(1 << 7))!= 0)
//     {
//         colorOut7 = colorValue;
//     }
//
// }
