1 // 2 // Copyright 2021 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 // cl_types.h: Defines common types for the OpenCL Vulkan back end. 7 8 #ifndef LIBANGLE_RENDERER_VULKAN_CL_TYPES_H_ 9 #define LIBANGLE_RENDERER_VULKAN_CL_TYPES_H_ 10 11 #include "libANGLE/renderer/cl_types.h" 12 13 namespace rx 14 { 15 16 class CLContextVk; 17 class CLDeviceVk; 18 class CLPlatformVk; 19 class CLProgramVk; 20 21 // Specialization constant Types 22 enum class SpecConstantType : uint32_t 23 { 24 WorkgroupSizeX, 25 WorkgroupSizeY, 26 WorkgroupSizeZ, 27 WorkDimension, 28 GlobalOffsetX, 29 GlobalOffsetY, 30 GlobalOffsetZ, 31 32 InvalidEnum, 33 EnumCount = InvalidEnum 34 }; 35 36 enum class ImageBufferCopyDirection 37 { 38 ToImage, 39 ToBuffer 40 }; 41 42 enum class ImageCopyWith 43 { 44 Image, 45 Buffer 46 }; 47 48 enum class StagingBufferCopyDirection 49 { 50 ToHost, 51 ToStagingBuffer 52 }; 53 54 } // namespace rx 55 56 #endif // LIBANGLE_RENDERER_VULKAN_CL_TYPES_H_ 57