Пример #1
0
 /// <summary>
 /// Cloo compute command queue
 /// </summary>
 /// <param name="context">command context</param>
 /// <param name="device">command device</param>
 /// <param name="flags">command queue flags</param>
 public ClooCommandQueue(ClooContext context, ClooDevice device, ComputeCommandQueueFlags flags)
     : base(context, device, flags)
 {
     _context = context;
     _device = device;
     _flags = flags;
 }
Пример #2
0
        /// <summary>
        /// Updates all devices list
        /// </summary>
        public static void UpdateCompatibleDevices()
        {
            lock (_lockUpdateCompatibleDevices)
            {
                _devicesByHandle = new Dictionary<IntPtr, ClooDevice>();
                _allDevices = new List<ClooDevice>();
                foreach (ComputePlatform platform in ComputePlatform.Platforms)
                {
                    foreach (ComputeDevice device in platform.Devices)
                    {
                        if (_devicesByHandle.ContainsKey(device.Handle)) continue; // device already added

                        if (!device.CompilerAvailable) continue;
                        if (!device.ImageSupport) continue;

                        ClooDevice clooDevice = new ClooDevice(platform, device.Handle);
                        _devicesByHandle[device.Handle] = clooDevice;
                        _allDevices.Add(clooDevice);
                    }
                }
            }
        }
Пример #3
0
 /// <summary>
 /// Creates a compute context from device
 /// </summary>
 /// <param name="device">compute device</param>
 /// <returns>compute context</returns>
 /// <exception cref="ArgumentNulLException">device</exception>
 public static ClooContext FromDevice(ClooDevice device)
 {
     if (device == null) throw new ArgumentNullException("device");
     return device.CreateContext();
 }