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

#pragma once
constexpr uint8_t kImageClear_frag_0000000A[] = {
    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x35,0x8f,0x3d,0x0b,0xc2,0x40,
    0x0c,0x86,0xd3,0x9e,0xf6,0xe3,0x5a,0xfb,0xa1,0xa8,0x5b,0xa9,0x74,0x14,0x8a,0x83,
    0x8a,0x20,0x0a,0x4e,0x3a,0x74,0xf3,0x17,0x08,0x2e,0x0e,0xba,0xe8,0x8f,0x77,0x11,
    0x7c,0x73,0xbe,0x1e,0xbc,0xc9,0xe5,0x49,0x72,0xc9,0x19,0xbf,0x09,0x45,0x3c,0xb1,
    0x12,0xc9,0x50,0x7e,0xa7,0x14,0x1f,0x44,0x24,0x91,0xc0,0xf9,0x63,0x77,0xee,0xda,
    0xe7,0xeb,0xda,0x2e,0x57,0x0b,0xcd,0x67,0x62,0x5c,0x9d,0xe6,0x72,0xd4,0xf4,0xe0,
    0x55,0xf7,0xcb,0xed,0xa1,0x3c,0x86,0x0a,0xd4,0x28,0x0b,0xb5,0x1f,0x37,0x65,0x15,
    0xd4,0x87,0x4e,0xb0,0x96,0xb3,0x1a,0xfa,0x3f,0xf3,0xc8,0x0a,0xd7,0x67,0x1c,0xf3,
    0xa1,0x11,0xac,0xfa,0x19,0x98,0x21,0x9b,0xe0,0x16,0xc0,0xd7,0xd0,0x14,0x33,0x74,
    0x56,0xc0,0x5d,0x6a,0xd8,0x08,0xde,0x70,0x87,0x2d,0xe3,0x98,0xac,0x42,0x6c,0x99,
    0x0b,0x58,0x9f,0x30,0x6f,0x59,0xaf,0x71,0x4a,0x36,0x46,0x3c,0xe0,0x2c,0xdd,0x71,
    0xce,0x38,0xe3,0xfe,0xda,0x9f,0xb3,0x56,0xdf,0x5c,0xe3,0x3f,0x3e,0x77,0x11,0xce,
    0x7c,0x83,0xe8,0xff,0x0f,0xb0,0x39,0xff,0x98,0xf2,0x8d,0x1d,0xf7,0x2f,0xc9,0xf7,
    0xe8,0x88,0x19,0x7f,0x30,0x71,0x03,0x7d,0x01,0x43,0xba,0x44,0xa4,0xac,0x01,0x00,
    0x00
};

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