Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : */
9 :
10 : #ifndef INCLUDED_OPENCL_PLATFORMINFO_HXX
11 : #define INCLUDED_OPENCL_PLATFORMINFO_HXX
12 :
13 : #include <ostream>
14 : #include <vector>
15 :
16 : #include <clew/clew.h>
17 :
18 : #include <opencl/opencldllapi.h>
19 : #include <rtl/ustring.hxx>
20 :
21 : // Struct that describs an actual instance of an OpenCL device
22 :
23 0 : struct OPENCL_DLLPUBLIC OpenCLDeviceInfo
24 : {
25 : cl_device_id device;
26 : OUString maName;
27 : OUString maVendor;
28 : OUString maDriver;
29 : size_t mnMemory;
30 : size_t mnComputeUnits;
31 : size_t mnFrequency;
32 :
33 : OpenCLDeviceInfo();
34 : };
35 :
36 : // Struct that describs an actual instance of an OpenCL platform implementation
37 :
38 0 : struct OPENCL_DLLPUBLIC OpenCLPlatformInfo
39 : {
40 : cl_platform_id platform;
41 : OUString maVendor;
42 : OUString maName;
43 : std::vector<OpenCLDeviceInfo> maDevices;
44 :
45 : OpenCLPlatformInfo();
46 : };
47 :
48 : OPENCL_DLLPUBLIC std::ostream& operator<<(std::ostream& rStream, const OpenCLPlatformInfo& rPlatform);
49 : OPENCL_DLLPUBLIC std::ostream& operator<<(std::ostream& rStream, const OpenCLDeviceInfo& rDevice);
50 :
51 : #endif
|