Path: blob/main_old/src/libGLESv2/entry_points_cl_utils.h
1693 views
//1// Copyright 2021 The ANGLE Project Authors. All rights reserved.2// Use of this source code is governed by a BSD-style license that can be3// found in the LICENSE file.4//5// entry_points_cl_utils.h: These helpers are used in CL entry point routines.67#ifndef LIBGLESV2_ENTRY_POINTS_CL_UTILS_H_8#define LIBGLESV2_ENTRY_POINTS_CL_UTILS_H_910#include "libANGLE/CLBitField.h"11#include "libANGLE/Debug.h"1213#include "common/PackedCLEnums_autogen.h"1415#include <cinttypes>16#include <cstdio>1718#if defined(ANGLE_ENABLE_DEBUG_TRACE)19# define CL_EVENT(entryPoint, ...) \20std::printf("CL " #entryPoint ": " __VA_ARGS__); \21std::printf("\n")22#else23# define CL_EVENT(entryPoint, ...) (void(0))24#endif2526namespace cl27{2829// Handling packed enums30template <typename PackedT, typename FromT>31typename std::enable_if_t<std::is_enum<PackedT>::value, PackedT> PackParam(FromT from)32{33return FromCLenum<PackedT>(from);34}3536// Handling bit fields37template <typename PackedT, typename FromT>38typename std::enable_if_t<std::is_same<PackedT, BitField>::value, PackedT> PackParam(FromT from)39{40return PackedT(from);41}4243void InitBackEnds(bool isIcd);4445} // namespace cl4647#endif // LIBGLESV2_ENTRY_POINTS_CL_UTILS_H_484950