コード例 #1
0
        internal ComputeUserEvent(ComputeContext context, CLEventHandle handle, ComputeCommandType type)
        {
            Handle = handle;

            SetID(Handle.Value);

            Type = type;

            Context = context;
        }
コード例 #2
0
        private void StatusNotify(CLEventHandle eventHandle, int cmdExecStatusOrErr, IntPtr userData)
        {
            status = new ComputeCommandStatusArgs(this, (ComputeCommandExecutionStatus)cmdExecStatusOrErr);
            switch (cmdExecStatusOrErr)
            {
            case (int)ComputeCommandExecutionStatus.Complete: OnCompleted(this, status); break;

            default: OnAborted(this, status); break;
            }
        }
コード例 #3
0
ファイル: ComputeEvent.cs プロジェクト: waqar41/Amplifier.NET
        internal ComputeEvent(CLEventHandle handle, ComputeCommandQueue queue, ComputeCommandType type)
        {
            Handle = handle;
            SetID(Handle.Value);

            CommandQueue = queue;
            Type         = type;
            Context      = queue.Context;

            //if (ComputeTools.ParseVersionString(CommandQueue.Device.Platform.Version, 1) > new Version(1, 0))
            //    HookNotifier();

            //Debug.WriteLine("Create " + this + " in Thread(" + Thread.CurrentThread.ManagedThreadId + ").", "Information");
        }
コード例 #4
0
ファイル: ComputeEvent.cs プロジェクト: kangtachan/cloo-unity
        internal ComputeEvent(CLEventHandle handle, ComputeCommandQueue queue)
        {
            Handle = handle;
            SetID(Handle.Value);

            CommandQueue = queue;
            Type         = (ComputeCommandType)GetInfo <CLEventHandle, ComputeEventInfo, int>(Handle, ComputeEventInfo.CommandType, CLInterface.CL12.GetEventInfo);
            Context      = queue.Context;

            if (ComputeTools.ParseVersionString(CommandQueue.Device.Platform.Version, 1) > new Version(1, 0))
            {
                HookNotifier();
            }
        }
コード例 #5
0
        internal static CLEventHandle[] ExtractHandles(IReadOnlyList <OpenCLEventBase> computeObjects, out int handleCount)
        {
            if (computeObjects == null || computeObjects.Count == 0)
            {
                handleCount = 0;
                return(null);
            }

            CLEventHandle[] result = new CLEventHandle[computeObjects.Count];
            for (int i = 0; i < computeObjects.Count; i++)
            {
                result[i] = computeObjects[i].Handle;
            }
            handleCount = computeObjects.Count;
            return(result);
        }
コード例 #6
0
        internal ComputeEvent(CLEventHandle handle, ComputeCommandQueue queue)
        {
            Handle = handle;
            SetID(Handle.Value);

            CommandQueue = queue;
            Type         = (ComputeCommandType)GetInfo <CLEventHandle, ComputeEventInfo, int>(Handle, ComputeEventInfo.CommandType, CL12.GetEventInfo);
            Context      = queue.Context;

            if (ComputeTools.ParseVersionString(CommandQueue.Device.Platform.Version, 1) > new Version(1, 0))
            {
                HookNotifier();
            }

            Trace.WriteLine("Create " + this + " in Thread(" + Thread.CurrentThread.ManagedThreadId + ").", "Information");
        }
コード例 #7
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Extracts the handles. </summary>
        ///
        /// <param name="computeObjects">   The compute objects. </param>
        /// <param name="handleCount">      [out] Number of handles. </param>
        ///
        /// <returns>   The extracted handles. </returns>
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        internal static CLEventHandle[] ExtractHandles(ICollection <ComputeEventBase> computeObjects, out int handleCount)
        {
            if (computeObjects == null || computeObjects.Count == 0)
            {
                handleCount = 0;
                return(null);
            }

            CLEventHandle[] result = new CLEventHandle[computeObjects.Count];
            int             i      = 0;

            foreach (ComputeEventBase computeObj in computeObjects)
            {
                result[i] = computeObj.Handle;
                i++;
            }
            handleCount = computeObjects.Count;
            return(result);
        }
コード例 #8
0
ファイル: ComputeEvent.cs プロジェクト: waqar41/Amplifier.NET
 internal ComputeEvent(CLEventHandle handle, ComputeCommandQueue queue) : this(handle, queue, 0)
 {
     Type = (ComputeCommandType)GetInfo <CLEventHandle, ComputeEventInfo, int>(Handle, ComputeEventInfo.CommandType, CL12.GetEventInfo);
 }
コード例 #9
0
 /// <summary>
 /// Creates an see<see cref="ComputeExternalEvent"/> from an external handle
 /// </summary>
 /// <param name="handle"></param>
 /// <param name="queue"></param>
 public ComputeExternalEvent(CLEventHandle handle, ComputeCommandQueue queue)
     : base(handle, queue)
 {
 }