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

#pragma once
constexpr uint8_t kImageClear_frag_00000004[] = {
    0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x35,0x8f,0x3d,0x0b,0xc2,0x40,
    0x0c,0x86,0xd3,0x9e,0xbd,0x7e,0xda,0x0f,0x45,0xdd,0x4a,0xa5,0xa3,0x50,0x1c,0x54,
    0x04,0x51,0x70,0xd2,0xa1,0x9b,0xbf,0x40,0x70,0x71,0xd0,0x45,0x7f,0xbc,0x8b,0xe0,
    0x9b,0xf6,0xf5,0x20,0x79,0x2f,0x4f,0x92,0x4b,0xce,0xb8,0xb5,0x2f,0xe2,0x48,0x24,
    0x81,0x8c,0xa4,0x3f,0x85,0xb8,0x20,0x22,0xb1,0xd8,0x4e,0x4f,0xed,0xa5,0x6d,0x5e,
    0xef,0x5b,0xb3,0x5a,0x2f,0x35,0x9f,0x8a,0xe9,0xea,0x34,0x97,0xa1,0x66,0x00,0x55,
    0x7b,0x5c,0xef,0x4f,0xe5,0x21,0x2c,0x47,0x8d,0x32,0x5f,0xfb,0x71,0x53,0x56,0xc2,
    0x5c,0xd8,0x59,0x3c,0xcc,0xeb,0x4f,0x4d,0xfd,0x33,0x87,0x2c,0xef,0xfa,0x4c,0xc7,
    0xb4,0x67,0x0c,0xaf,0x3a,0x07,0x33,0x64,0x53,0xdc,0x2c,0xb4,0x82,0xcd,0x30,0x43,
    0x67,0x59,0xee,0x52,0xc1,0x07,0x50,0xc3,0x1d,0x76,0x8c,0x43,0xb2,0x12,0x71,0xc4,
    0x9c,0x65,0x7d,0xcc,0x7c,0xc4,0x7a,0x8d,0x13,0xb2,0x09,0xe2,0x21,0x67,0xe9,0x8e,
    0x0b,0xc6,0x29,0xf7,0xd7,0xfe,0x8c,0xb5,0xfa,0xe6,0x06,0xff,0x71,0xb9,0x8b,0x70,
    0xe6,0x07,0xc4,0x83,0x1e,0xe1,0x33,0xfe,0x31,0xe1,0x1b,0x7b,0xee,0x5f,0x90,0x1f,
    0xd0,0x11,0x32,0xfe,0x62,0xe2,0x16,0xf6,0x03,0xc6,0x74,0xe9,0x23,0xac,0x01,0x00,
    0x00
};

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