// // Copyright 2026 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // #ifndef LIBANGLE_CLCAPS_H_ #define LIBANGLE_CLCAPS_H_ #include #include "CL/cl_platform.h" #include namespace cl { struct DeviceCaps { DeviceCaps() = default; cl_uint vendorID = 0u; cl_uint maxComputeUnits = 0u; cl_uint maxWorkItemDimensions = 0u; cl_uint preferredVectorWidthChar = 0u; cl_uint preferredVectorWidthShort = 0u; cl_uint preferredVectorWidthInt = 0u; cl_uint preferredVectorWidthLong = 0u; cl_uint preferredVectorWidthFloat = 0u; cl_uint preferredVectorWidthDouble = 0u; cl_uint preferredVectorWidthHalf = 0u; cl_uint nativeVectorWidthChar = 0u; cl_uint nativeVectorWidthShort = 0u; cl_uint nativeVectorWidthInt = 0u; cl_uint nativeVectorWidthLong = 0u; cl_uint nativeVectorWidthFloat = 0u; cl_uint nativeVectorWidthDouble = 0u; cl_uint nativeVectorWidthHalf = 0u; cl_uint maxClockFrequency = 0u; cl_uint addressBits = 0u; cl_uint maxReadImageArgs = 0u; cl_uint maxWriteImageArgs = 0u; cl_uint maxReadWriteImageArgs = 0u; cl_uint maxSamplers = 0u; cl_uint maxPipeArgs = 0u; cl_uint pipeMaxActiveReservations = 0u; cl_uint pipeMaxPacketSize = 0u; cl_uint minDataTypeAlignSize = 0u; cl_uint globalMemCacheType = 0u; cl_uint globalMemCachelineSize = 0u; cl_uint maxConstantArgs = 0u; cl_uint localMemType = 0u; cl_uint errorCorrectionSupport = 0u; cl_uint hostUnifiedMemory = 0u; cl_uint endianLittle = 0u; cl_uint available = 0u; cl_uint compilerAvailable = 0u; cl_uint linkerAvailable = 0u; cl_uint queueOnDevicePreferredSize = 0u; cl_uint queueOnDeviceMaxSize = 0u; cl_uint maxOnDeviceQueues = 0u; cl_uint maxOnDeviceEvents = 0u; cl_uint preferredInteropUserSync = 0u; cl_uint partitionMaxSubDevices = 0u; cl_uint preferredPlatformAtomicAlignment = 0u; cl_uint preferredGlobalAtomicAlignment = 0u; cl_uint preferredLocalAtomicAlignment = 0u; cl_uint maxNumSubGroups = 0u; cl_uint subGroupIndependentForwardProgress = 0u; cl_uint nonUniformWorkGroupSupport = 0u; cl_uint workGroupCollectiveFunctionsSupport = 0u; cl_uint genericAddressSpaceSupport = 0u; cl_uint pipeSupport = 0u; cl_ulong singleFpConfig = 0u; cl_ulong doubleFpConfig = 0u; cl_ulong globalMemCacheSize = 0u; cl_ulong globalMemSize = 0u; cl_ulong maxConstantBufferSize = 0u; cl_ulong localMemSize = 0u; cl_ulong executionCapabilities = 0u; cl_ulong queueOnHostProperties = 0u; cl_ulong queueOnDeviceProperties = 0u; cl_ulong partitionAffinityDomain = 0u; cl_ulong sVM_Capabilities = 0u; cl_ulong atomicMemoryCapabilities = 0u; cl_ulong atomicFenceCapabilities = 0u; cl_ulong deviceEnqueueCapabilities = 0u; cl_ulong halfFpConfig = 0u; cl_ulong maxMemAllocSize = 0u; size_t maxWorkGroupSize = 0u; size_t maxParameterSize = 0u; size_t maxGlobalVariableSize = 0u; size_t globalVariablePreferredTotalSize = 0u; size_t profilingTimerResolution = 0u; size_t printfBufferSize = 0u; size_t preferredWorkGroupSizeMultiple = 0u; std::string name = ""; std::string vendor = ""; std::string driverVersion = ""; std::string profile = ""; std::string openCL_C_Version = ""; std::string latestConformanceVersionPassed = ""; std::string version = ""; }; } // namespace cl #endif // LIBANGLE_CLCAPS_H_