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

#pragma once
constexpr uint8_t kImageClear_frag_0000002F[] = {
    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x4d,0x51,0x4d,0x4f,0xc2,0x50,
    0x10,0x1c,0xfa,0xa0,0xa5,0x2d,0x42,0xb5,0x1f,0xe2,0x85,0x60,0x38,0x9a,0x10,0x0f,
    0x42,0x4c,0x8c,0x26,0x9e,0xf4,0xc0,0xcd,0x5f,0x40,0xc2,0x85,0x83,0x5e,0xe4,0xc7,
    0x7b,0x31,0x71,0xe6,0x75,0x4c,0x78,0xc9,0xbe,0x7d,0x3b,0x3b,0xb3,0xbb,0xdd,0x86,
    0x64,0x95,0x01,0x03,0x14,0x18,0xe3,0x06,0xfd,0xb9,0x44,0x42,0x04,0x28,0x91,0x46,
    0xff,0xb6,0xfb,0xd8,0xad,0xbf,0x4f,0x87,0xf5,0xc3,0xe6,0x5e,0xf9,0x29,0x42,0xe4,
    0x29,0x37,0x43,0x86,0x21,0xbd,0xec,0x73,0x7f,0xfc,0x12,0x9e,0xd3,0x1a,0x5a,0x45,
    0x9e,0xf0,0xec,0xec,0x3d,0x51,0x3d,0xbe,0xc4,0x59,0x38,0xf7,0x8e,0x11,0x7b,0xf5,
    0x67,0x65,0xff,0x8f,0x0d,0x8c,0x55,0x51,0x17,0x22,0x96,0xb8,0x46,0x13,0x67,0x04,
    0x3a,0x5a,0x4d,0x54,0xf8,0x2d,0x39,0xc1,0x9c,0x96,0x9c,0x94,0x7e,0xe9,0x9a,0xd7,
    0x8c,0xd5,0x2f,0xf5,0xbc,0x4b,0xde,0x63,0xfa,0xe0,0x39,0x9e,0x1c,0xe7,0xc6,0x3a,
    0xde,0x85,0xf5,0x0b,0xe6,0x4a,0xf3,0x0a,0x6b,0x27,0xe6,0x96,0xd6,0x2a,0xbe,0x30,
    0xa6,0xde,0x53,0x6b,0xf5,0x0d,0x77,0x8e,0x67,0x9e,0x45,0xfa,0xca,0xdc,0xcc,0x71,
    0xed,0xbe,0x85,0xeb,0xd5,0xde,0x63,0x38,0xd3,0xb7,0xae,0x27,0x7e,0x67,0xbd,0xf8,
    0x5b,0xee,0x2b,0xf1,0x77,0xc1,0x9a,0x1f,0x22,0x23,0xfa,0x57,0xde,0x55,0xfc,0xaf,
    0xfd,0x7c,0x9a,0xe1,0xd9,0xbb,0xb8,0x32,0xfe,0x42,0x45,0xee,0x58,0xfc,0x2e,0xee,
    0xab,0xe7,0xb7,0xe6,0xab,0xcf,0xdc,0xb8,0xf8,0x8d,0xe3,0x5f,0x4e,0xf4,0x48,0xfb,
    0x03,0xfb,0x0e,0x2f,0x09,0x4c,0x02,0x00,0x00
};

// Generated from:
//
// #version 450 core
//
// layout(push_constant)uniform PushConstants {
//        uvec4 clearColor;
//     float clearDepth;
// } params;
//
// layout(location = 7)out uvec4 colorOut;
//
// void main()
// {
//     colorOut = params . clearColor;
//
//     gl_FragDepth = params . clearDepth;
//
// }
