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 // CLDeviceVk.h: Defines the class interface for CLDeviceVk, implementing CLDeviceImpl. 7 8 #ifndef LIBANGLE_RENDERER_VULKAN_CLDEVICEVK_H_ 9 #define LIBANGLE_RENDERER_VULKAN_CLDEVICEVK_H_ 10 11 #include "libANGLE/renderer/vulkan/cl_types.h" 12 13 #include "libANGLE/renderer/CLDeviceImpl.h" 14 15 namespace rx 16 { 17 18 class CLDeviceVk : public CLDeviceImpl 19 { 20 public: 21 explicit CLDeviceVk(const cl::Device &device); 22 ~CLDeviceVk() override; 23 24 Info createInfo(cl::DeviceType type) const override; 25 26 cl_int getInfoUInt(cl::DeviceInfo name, cl_uint *value) const override; 27 cl_int getInfoULong(cl::DeviceInfo name, cl_ulong *value) const override; 28 cl_int getInfoSizeT(cl::DeviceInfo name, size_t *value) const override; 29 cl_int getInfoStringLength(cl::DeviceInfo name, size_t *value) const override; 30 cl_int getInfoString(cl::DeviceInfo name, size_t size, char *value) const override; 31 32 cl_int createSubDevices(const cl_device_partition_property *properties, 33 cl_uint numDevices, 34 CreateFuncs &subDevices, 35 cl_uint *numDevicesRet) override; 36 }; 37 38 } // namespace rx 39 40 #endif // LIBANGLE_RENDERER_VULKAN_CLDEVICEVK_H_ 41