#region License // // The Open Toolkit Library License // // Copyright (c) 2006 - 2009 the Open Toolkit library. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights to // use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of // the Software, and to permit persons to whom the Software is furnished to do // so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR // OTHER DEALINGS IN THE SOFTWARE. // #endregion using System; using System.Collections.Generic; using System.Text; namespace OpenTK.Compute { public enum ErrorCode { Success = 0, DeviceNotFound = -1, DeviceNotAvailable = -2, DeviceCompilerNotAvailable = -3, MemObjectAllocationFailure = -4, OutOfResources = -5, OutOfHostMemory = -6, ProfilingInfoNotAvailable = -7, MemCopyOverlap = -8, ImageFormatMismatch = -9, ImageFormatNotSupported = -10, InvalidValue = -30, InvalidDeviceType = -31, InvalidDevice = -32, InvalidContext = -33, InvalidQueueProperties = -34, InvalidCommandQueue = -35, InvalidHostPtr = -36, InvalidMemObject = -37, InvalidImageFormatDescriptor = -38, InvalidImageSize = -39, InvalidSampler = -40, InvalidBinary = -41, InvalidBuildOptions = -42, InvalidProgram = -43, InvalidProgramExecutable = -44, InvalidKernelName = -45, InvalidKernel = -46, InvalidArgIndex = -47, InvalidArgValue = -48, InvalidArgSize = -49, InvalidKernelArgs = -50, InvalidWorkDimension = -51, InvalidWorkGroupSize = -52, InvalidWorkItemSize = -53, InvalidGlobalOffset = -54, InvalidEventWaitList = -55, InvalidEvent = -56, InvalidOperation = -57, InvalidGlObject = -58, InvalidBufferSize = -59, } public enum Version { Version10 = 1, } public enum Bool { False = 0, True = 1, } public enum PlatformInfo { PlatformProfile = 0x0900, PlatformVersion = 0x0901, } [Flags] public enum DeviceType : long { DeviceTypeDefault = (1 << 0), DeviceTypeCpu = (1 << 1), DeviceTypeGpu = (1 << 2), DeviceTypeAccelerator = (1 << 3), DeviceTypeAll = unchecked((int)0xFFFFFFFF), } public enum DeviceInfo { DeviceType = 0x1000, DeviceVendorId = 0x1001, DeviceMaxComputeUnits = 0x1002, DeviceMaxWorkItemDimensions = 0x1003, DeviceMaxWorkGroupSize = 0x1004, DeviceMaxWorkItemSizes = 0x1005, DevicePreferredVectorWidthChar = 0x1006, DevicePreferredVectorWidthShort = 0x1007, DevicePreferredVectorWidthInt = 0x1008, DevicePreferredVectorWidthLong = 0x1009, DevicePreferredVectorWidthFloat = 0x100A, DevicePreferredVectorWidthDouble = 0x100B, DeviceMaxClockFrequency = 0x100C, DeviceAddressBits = 0x100D, DeviceMaxReadImageArgs = 0x100E, DeviceMaxWriteImageArgs = 0x100F, DeviceMaxMemAllocSize = 0x1010, DeviceImage2dMaxWidth = 0x1011, DeviceImage2dMaxHeight = 0x1012, DeviceImage3dMaxWidth = 0x1013, DeviceImage3dMaxHeight = 0x1014, DeviceImage3dMaxDepth = 0x1015, DeviceImageSupport = 0x1016, DeviceMaxParameterSize = 0x1017, DeviceMaxSamplers = 0x1018, DeviceMemBaseAddrAlign = 0x1019, DeviceMaxDataTypeAlignSize = 0x101A, DeviceSingleFpConfig = 0x101B, DeviceGlobalMemCacheType = 0x101C, DeviceGlobalMemCachelineSize = 0x101D, DeviceGlobalMemCacheSize = 0x101E, DeviceGlobalMemSize = 0x101F, DeviceMaxConstantBufferSize = 0x1020, DeviceMaxConstantArgs = 0x1021, DeviceLocalMemType = 0x1022, DeviceLocalMemSize = 0x1023, DeviceErrorCorrectionSupport = 0x1024, DeviceProfilingTimerResolution = 0x1025, DeviceEndianLittle = 0x1026, DeviceAvailable = 0x1027, DeviceCompilerAvailable = 0x1028, DeviceExecutionCapabilities = 0x1029, DeviceQueueProperties = 0x102A, DeviceName = 0x102B, DeviceVendor = 0x102C, DriverVersion = 0x102D, DeviceProfile = 0x102E, DeviceVersion = 0x102F, DeviceExtensions = 0x1030, } [Flags] public enum DeviceAddressInfo : long { DeviceAddress32Bits = (1 << 0), DeviceAddress64Bits = (1 << 1), } [Flags] public enum DeviceFpConfig : long { FpDenorm = (1 << 0), FpInfNan = (1 << 1), FpRoundToNearest = (1 << 2), FpRoundToZero = (1 << 3), FpRoundToInf = (1 << 4), FpFma = (1 << 5), } public enum DeviceMemCacheType { None = 0x0, ReadOnlyCache = 0x1, ReadWriteCache = 0x2, } public enum DeviceLocalMemType { Local = 0x1, Global = 0x2, } [Flags] public enum DeviceExecCapabilities : long { ExecKernel = (1 << 0), ExecNativeFnAsKernel = (1 << 1), } [Flags] public enum CommandQueueProperties : long { QueueOutOfOrderExecModeEnable = (1 << 0), QueueProfilingEnable = (1 << 1), } public enum ContextInfo { ContextReferenceCount = 0x1080, ContextNumDevices = 0x1081, ContextDevices = 0x1082, ContextProperties = 0x1083, } public enum CommandQueueInfo { QueueContext = 0x1090, QueueDevice = 0x1091, QueueReferenceCount = 0x1092, QueueProperties = 0x1093, } [Flags] public enum MemFlags : long { MemReadWrite = (1 << 0), MemWriteOnly = (1 << 1), MemReadOnly = (1 << 2), MemUseHostPtr = (1 << 3), MemAllocHostPtr = (1 << 4), MemCopyHostPtr = (1 << 5), } public enum ChannelOrder { R = 0x10B0, A = 0x10B1, Rg = 0x10B2, Ra = 0x10B3, Rgb = 0x10B4, Rgba = 0x10B5, Bgra = 0x10B6, Argb = 0x10B7, } public enum ChannelType { SnormInt8 = 0x10D0, SnormInt16 = 0x10D1, UnormInt8 = 0x10D2, UnormInt16 = 0x10D3, UnormShort565 = 0x10D4, UnormShort555 = 0x10D5, UnormInt101010 = 0x10D6, SignedInt8 = 0x10D7, SignedInt16 = 0x10D8, SignedInt32 = 0x10D9, UnsignedInt8 = 0x10DA, UnsignedInt16 = 0x10DB, UnsignedInt32 = 0x10DC, HalfFloat = 0x10DD, Float = 0x10DE, } public enum MemObjectType { MemObjectBuffer = 0x10F0, MemObjectImage2d = 0x10F1, MemObjectImage3d = 0x10F2, } public enum MemInfo { MemType = 0x1100, MemFlags = 0x1101, MemSize = 0x1102, MemHostPtr = 0x1103, MemMapCount = 0x1104, MemReferenceCount = 0x1105, MemContext = 0x1106, } public enum ImageInfo { ImageFormat = 0x1110, ImageElementSize = 0x1111, ImageRowPitch = 0x1112, ImageSlicePitch = 0x1113, ImageWidth = 0x1114, ImageHeight = 0x1115, ImageDepth = 0x1116, } public enum AddressingMode { AddressNone = 0x1130, AddressClampToEdge = 0x1131, AddressClamp = 0x1132, AddressRepeat = 0x1133, } public enum FilterMode { FilterNearest = 0x1140, FilterLinear = 0x1141, } public enum SamplerInfo { SamplerReferenceCount = 0x1150, SamplerContext = 0x1151, SamplerNormalizedCoords = 0x1152, SamplerAddressingMode = 0x1153, SamplerFilterMode = 0x1154, } [Flags] public enum MapFlags : long { MapRead = (1 << 0), MapWrite = (1 << 1), } public enum ProgramInfo { ProgramReferenceCount = 0x1160, ProgramContext = 0x1161, ProgramNumDevices = 0x1162, ProgramDevices = 0x1163, ProgramSource = 0x1164, ProgramBinarySizes = 0x1165, ProgramBinaries = 0x1166, } public enum ProgramBuildInfo { ProgramBuildStatus = 0x1181, ProgramBuildOptions = 0x1182, ProgramBuildLog = 0x1183, } public enum BuildStatus { BuildSuccess = 0, BuildNone = -1, BuildError = -2, BuildInProgress = -3, } public enum KernelInfo { KernelFunctionName = 0x1190, KernelNumArgs = 0x1191, KernelReferenceCount = 0x1192, KernelContext = 0x1193, KernelProgram = 0x1194, } public enum KernelWorkGroupInfo { KernelWorkGroupSize = 0x11B0, KernelCompileWorkGroupSize = 0x11B1, } public enum EventInfo { EventCommandQueue = 0x11D0, EventCommandType = 0x11D1, EventReferenceCount = 0x11D2, EventCommandExecutionStatus = 0x11D3, } public enum CommandType { CommandNdrangeKernel = 0x11F0, CommandTask = 0x11F1, CommandNativeKernel = 0x11F2, CommandReadBuffer = 0x11F3, CommandWriteBuffer = 0x11F4, CommandCopyBuffer = 0x11F5, CommandReadImage = 0x11F6, CommandWriteImage = 0x11F7, CommandCopyImage = 0x11F8, CommandCopyImageToBuffer = 0x11F9, CommandCopyBufferToImage = 0x11FA, CommandMapBuffer = 0x11FB, CommandMapImage = 0x11FC, CommandUnmapMemObject = 0x11FD, CommandMarker = 0x11FE, CommandWaitForEvents = 0x11FF, CommandBarrier = 0x1200, CommandAcquireGlObjects = 0x1201, CommandReleaseGlObjects = 0x1202, } public enum CommandExecutionStatus { Complete = 0x0, Running = 0x1, Submitted = 0x2, Queued = 0x3, } public enum ProfilingInfo { ProfilingCommandQueued = 0x1280, ProfilingCommandSubmit = 0x1281, ProfilingCommandStart = 0x1282, ProfilingCommandEnd = 0x1283, } }