public static void SetupSingleDevice(string strVendorFilter, OpenCLDeviceTyp deviceType, Game pGame) { Platforms platforms = new Platforms(); if (!strVendorFilter.Contains("*")) { strVendorFilter += "*"; } foreach (var platform in platforms) { if (platform.HaveDevices && platform.Vendor.IsWildcardMatch(strVendorFilter)) { foreach (var item in platform.Devices) { if (item.DeviceType == deviceType) { m_pDevice = item; break; } } if (m_pDevice != null) { break; } } } if (m_pDevice == null) { throw new System.Exception("No OpenCL Device found "); } m_pContext = m_pDevice.CreateContext(pGame.GameContext.NativeContext); }
public Devices(Platform pPlatform, OpenCLDeviceTyp type) : base("Devices") { IntPtr[] devices = new IntPtr[100]; uint numDevices; cl.clGetDeviceIDs(pPlatform.RawHandle, (uint)type, (uint)100, devices, out numDevices); for (int i = 0; i < numDevices; i++) { var x = new Device(devices[i], pPlatform); x.DeviceType = type; this.Add(x); } }
public static Context SetupSingleDeviceAndGetSystemContext(string strVendorFilter, OpenCLDeviceTyp deviceType, Game pGame) { SetupSingleDevice(strVendorFilter, deviceType, pGame); return(m_pContext); }