// // Copyright (c) 2017 The Khronos Group Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // #ifndef __COMMON_H__ #define __COMMON_H__ #include "testBase.h" typedef struct { size_t width; size_t height; size_t depth; } sizevec_t; struct format { GLenum internal; GLenum formattype; GLenum datatype; ExplicitType type; }; // These are the typically tested formats. static struct format common_formats[] = { #ifdef __APPLE__ { GL_RGBA8, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8, kUChar }, { GL_RGBA8, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, kUChar }, { GL_RGBA8, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, kUChar }, // { GL_RGB10, GL_BGRA, GL_UNSIGNED_INT_2_10_10_10_REV, kFloat }, #endif { GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, kUChar }, { GL_RGBA16, GL_RGBA, GL_UNSIGNED_SHORT, kUShort }, { GL_RGBA8I_EXT, GL_RGBA_INTEGER_EXT, GL_BYTE, kChar }, { GL_RGBA16I_EXT, GL_RGBA_INTEGER_EXT, GL_SHORT, kShort }, { GL_RGBA32I_EXT, GL_RGBA_INTEGER_EXT, GL_INT, kInt }, { GL_RGBA8UI_EXT, GL_RGBA_INTEGER_EXT, GL_UNSIGNED_BYTE, kUChar }, { GL_RGBA16UI_EXT, GL_RGBA_INTEGER_EXT, GL_UNSIGNED_SHORT, kUShort }, { GL_RGBA32UI_EXT, GL_RGBA_INTEGER_EXT, GL_UNSIGNED_INT, kUInt }, { GL_RGBA32F_ARB, GL_RGBA, GL_FLOAT, kFloat }, { GL_RGBA16F_ARB, GL_RGBA, GL_HALF_FLOAT, kHalf } }; #ifdef GL_VERSION_3_2 static struct format depth_formats[] = { { GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT, kUShort }, { GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT, GL_FLOAT, kFloat }, { GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8, kUInt }, { GL_DEPTH32F_STENCIL8, GL_DEPTH_STENCIL, GL_FLOAT_32_UNSIGNED_INT_24_8_REV, kFloat }, }; #endif int test_images_write_common(cl_device_id device, cl_context context, cl_command_queue queue, struct format* formats, size_t nformats, GLenum *targets, size_t ntargets, sizevec_t* sizes, size_t nsizes ); int test_images_read_common( cl_device_id device, cl_context context, cl_command_queue queue, struct format* formats, size_t nformats, GLenum *targets, size_t ntargets, sizevec_t *sizes, size_t nsizes ); int test_images_get_info_common( cl_device_id device, cl_context context, cl_command_queue queue, struct format* formats, size_t nformats, GLenum *targets, size_t ntargets, sizevec_t *sizes, size_t nsizes ); int is_rgb_101010_supported( cl_context context, GLenum gl_target ); #endif // __COMMON_H__