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

#pragma once
constexpr uint8_t kImageClear_frag_00000001[] = {
    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x5d,0x50,0x3d,0x6b,0x02,0x41,
    0x10,0x7d,0xee,0xea,0x9e,0xf7,0xa1,0xa7,0x5e,0xee,0x92,0x4a,0x14,0xcb,0x80,0xa4,
    0x88,0x22,0x48,0x02,0xa9,0x92,0xe2,0x3a,0x7f,0x81,0x60,0x63,0x61,0x1a,0xfd,0xf1,
    0x69,0x02,0x79,0xb3,0xf7,0x0a,0xc9,0xc2,0xec,0xcc,0xbc,0x79,0xf3,0xe9,0xdd,0x2a,
    0x01,0x7a,0xc8,0x30,0xc4,0x13,0xba,0x37,0x85,0x23,0x02,0xe4,0x08,0x51,0x7f,0xb6,
    0x87,0x76,0x7d,0xbd,0x9d,0xd6,0xaf,0x9b,0x17,0x8b,0x8f,0xe1,0x23,0xcf,0x62,0x25,
    0x12,0xf4,0xa9,0x4d,0x2e,0xc7,0xf3,0xb7,0xe1,0x29,0xa5,0xa2,0x4c,0xc8,0x33,0x3c,
    0xb9,0xb3,0x0b,0xab,0x47,0xcb,0x38,0x73,0xf5,0xfb,0xc2,0x80,0xfd,0xbb,0xb7,0xfa,
    0x87,0xf5,0x84,0x4d,0x62,0x9e,0x8f,0x98,0x53,0x8d,0x2a,0xce,0x08,0x34,0xb1,0x9f,
    0x8b,0xf8,0x92,0x1c,0x2f,0x4e,0x43,0x2b,0x50,0x2f,0x28,0x8f,0xe4,0xdb,0x1c,0x41,
    0xb3,0x2e,0xf8,0x0f,0xa9,0xbd,0xe6,0xdb,0xcb,0x4f,0x85,0xcd,0xe9,0x67,0x8a,0x05,
    0xf1,0x73,0xc5,0x33,0xf1,0x73,0xed,0x63,0x58,0x4d,0x7f,0xa4,0x5e,0x36,0xf3,0xb3,
    0xfc,0xb1,0xf6,0xb1,0xfc,0x52,0xdc,0x44,0xfe,0x4c,0xbd,0x82,0xea,0xcd,0x74,0x37,
    0x7f,0x97,0xff,0xa0,0x7a,0xc6,0xaf,0x95,0x6f,0xfc,0x2d,0xef,0xe3,0xb4,0x0b,0x94,
    0xf3,0x43,0x64,0x40,0xfd,0xc1,0xbf,0xd4,0xcd,0x0a,0xcd,0xf0,0xa6,0xfd,0xa7,0xc2,
    0xdf,0x99,0x91,0xca,0x37,0x7e,0xad,0x3b,0x16,0xea,0x69,0xfc,0x10,0xef,0xd6,0xe1,
    0xc6,0xaf,0xe4,0xff,0x72,0xa2,0x1d,0xe5,0x0f,0x2b,0xe0,0x64,0x40,0x3c,0x02,0x00,
    0x00
};

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