Esempio n. 1
0
        public GraphicsFence CreateGraphicsFence(GraphicsFenceType fenceType, SynchronisationStageFlags stage)
        {
            GraphicsFence newFence = new GraphicsFence();

            newFence.m_Ptr = CreateGPUFence_Internal(fenceType, stage);
            newFence.InitPostAllocation();
            newFence.Validate();
            return(newFence);
        }
Esempio n. 2
0
        public void WaitOnAsyncGraphicsFence(GraphicsFence fence, SynchronisationStageFlags stage)
        {
            if (fence.m_FenceType != GraphicsFenceType.AsyncQueueSynchronisation)
            {
                throw new ArgumentException("Attempting to call WaitOnAsyncGPUFence on a fence that is not of GraphicsFenceType.AsyncQueueSynchronization");
            }

            fence.Validate();

            //Don't wait on a fence that's already known to have passed
            if (fence.IsFencePending())
            {
                WaitOnGPUFence_Internal(fence.m_Ptr, stage);
            }
        }
 extern private static void WaitOnGPUFenceImpl(IntPtr fencePtr, SynchronisationStageFlags stage);
 extern private static IntPtr CreateGPUFenceImpl(GraphicsFenceType fenceType, SynchronisationStageFlags stage);
Esempio n. 5
0
 extern private void WaitOnGPUFence_Internal(IntPtr fencePtr, SynchronisationStageFlags stage);
Esempio n. 6
0
 extern private IntPtr CreateGPUFence_Internal(GraphicsFenceType fenceType, SynchronisationStageFlags stage);