コード例 #1
0
        /// <summary>
        /// Insert a memory dependency.
        /// </summary>
        /// <param name="sourceStageMask">
        /// </param>
        /// <param name="destinationStageMask">
        /// </param>
        /// <param name="sourceAccessMask">
        /// </param>
        /// <param name="destinationAccessMask">
        /// </param>
        /// <param name="oldLayout">
        /// </param>
        /// <param name="newLayout">
        /// </param>
        /// <param name="sourceQueueFamilyIndex">
        /// </param>
        /// <param name="destinationQueueFamilyIndex">
        /// </param>
        /// <param name="image">
        /// </param>
        /// <param name="subresourceRange">
        /// </param>
        /// <param name="dependencyFlags">
        /// </param>
        public unsafe void PipelineBarrier(PipelineStageFlags sourceStageMask,
                                           PipelineStageFlags destinationStageMask,
                                           AccessFlags sourceAccessMask,
                                           AccessFlags destinationAccessMask,
                                           ImageLayout oldLayout,
                                           ImageLayout newLayout,
                                           uint sourceQueueFamilyIndex,
                                           uint destinationQueueFamilyIndex,
                                           Image image,
                                           ImageSubresourceRange subresourceRange,
                                           DependencyFlags dependencyFlags = DependencyFlags.None)
        {
            try
            {
                Interop.ImageMemoryBarrier marshalledImageMemoryBarrier = default;

                marshalledImageMemoryBarrier.SType                       = StructureType.ImageMemoryBarrier;
                marshalledImageMemoryBarrier.Next                        = null;
                marshalledImageMemoryBarrier.SourceAccessMask            = sourceAccessMask;
                marshalledImageMemoryBarrier.DestinationAccessMask       = destinationAccessMask;
                marshalledImageMemoryBarrier.OldLayout                   = oldLayout;
                marshalledImageMemoryBarrier.NewLayout                   = newLayout;
                marshalledImageMemoryBarrier.SourceQueueFamilyIndex      = sourceQueueFamilyIndex;
                marshalledImageMemoryBarrier.DestinationQueueFamilyIndex = destinationQueueFamilyIndex;
                marshalledImageMemoryBarrier.Image                       = image.handle;
                marshalledImageMemoryBarrier.SubresourceRange            = subresourceRange;
                Interop.VkCommandBufferPipelineBarrierDelegate commandDelegate = commandCache.GetCommandDelegate <Interop.VkCommandBufferPipelineBarrierDelegate>("vkCmdPipelineBarrier", "");
                commandDelegate(this.handle, sourceStageMask, destinationStageMask, dependencyFlags, 0, null, 0, null, 1, &marshalledImageMemoryBarrier);
            }
            finally
            {
                Interop.HeapUtil.FreeAll();
            }
        }
コード例 #2
0
ファイル: BufferHolder.cs プロジェクト: Ryujinx/Ryujinx
        public static unsafe void InsertBufferBarrier(
            VulkanRenderer gd,
            CommandBuffer commandBuffer,
            VkBuffer buffer,
            AccessFlags srcAccessMask,
            AccessFlags dstAccessMask,
            PipelineStageFlags srcStageMask,
            PipelineStageFlags dstStageMask,
            int offset,
            int size)
        {
            BufferMemoryBarrier memoryBarrier = new BufferMemoryBarrier()
            {
                SType               = StructureType.BufferMemoryBarrier,
                SrcAccessMask       = srcAccessMask,
                DstAccessMask       = dstAccessMask,
                SrcQueueFamilyIndex = Vk.QueueFamilyIgnored,
                DstQueueFamilyIndex = Vk.QueueFamilyIgnored,
                Buffer              = buffer,
                Offset              = (ulong)offset,
                Size = (ulong)size
            };

            gd.Api.CmdPipelineBarrier(
                commandBuffer,
                srcStageMask,
                dstStageMask,
                0,
                0,
                null,
                1,
                memoryBarrier,
                0,
                null);
        }
コード例 #3
0
 public SubpassDependency2
 (
     StructureType sType             = StructureType.SubpassDependency2,
     void *pNext                     = default,
     uint srcSubpass                 = default,
     uint dstSubpass                 = default,
     PipelineStageFlags srcStageMask = default,
     PipelineStageFlags dstStageMask = default,
     AccessFlags srcAccessMask       = default,
     AccessFlags dstAccessMask       = default,
     DependencyFlags dependencyFlags = default,
     int viewOffset                  = default
 )
 {
     SType           = sType;
     PNext           = pNext;
     SrcSubpass      = srcSubpass;
     DstSubpass      = dstSubpass;
     SrcStageMask    = srcStageMask;
     DstStageMask    = dstStageMask;
     SrcAccessMask   = srcAccessMask;
     DstAccessMask   = dstAccessMask;
     DependencyFlags = dependencyFlags;
     ViewOffset      = viewOffset;
 }
コード例 #4
0
 /// <summary>
 ///
 /// </summary>
 public SubpassDependency(uint sourceSubpass, uint destinationSubpass, PipelineStageFlags sourceStageMask, PipelineStageFlags destinationStageMask, AccessFlags sourceAccessMask, AccessFlags destinationAccessMask, DependencyFlags dependencyFlags)
 {
     this.SourceSubpass         = sourceSubpass;
     this.DestinationSubpass    = destinationSubpass;
     this.SourceStageMask       = sourceStageMask;
     this.DestinationStageMask  = destinationStageMask;
     this.SourceAccessMask      = sourceAccessMask;
     this.DestinationAccessMask = destinationAccessMask;
     this.DependencyFlags       = dependencyFlags;
 }
コード例 #5
0
 public void CmdWaitEvent(Event pEvent, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, MemoryBarrier pMemoryBarrier, BufferMemoryBarrier pBufferMemoryBarrier, ImageMemoryBarrier pImageMemoryBarrier)
 {
     unsafe
     {
         fixed(UInt64 *ptrpEvent = &pEvent.m)
         {
             Interop.NativeMethods.vkCmdWaitEvents(this.m, (UInt32)(pEvent != null ? 1 : 0), ptrpEvent, srcStageMask, dstStageMask, (UInt32)(pMemoryBarrier != null ? 1 : 0), pMemoryBarrier != null ? pMemoryBarrier.m : (Interop.MemoryBarrier *) default(IntPtr), (UInt32)(pBufferMemoryBarrier != null ? 1 : 0), pBufferMemoryBarrier != null ? pBufferMemoryBarrier.m : (Interop.BufferMemoryBarrier *) default(IntPtr), (UInt32)(pImageMemoryBarrier != null ? 1 : 0), pImageMemoryBarrier != null ? pImageMemoryBarrier.m : (Interop.ImageMemoryBarrier *) default(IntPtr));
         }
     }
 }
コード例 #6
0
 public QueueFamilyCheckpointPropertiesNV
 (
     StructureType sType = StructureType.QueueFamilyCheckpointPropertiesNV,
     void *pNext         = default,
     PipelineStageFlags checkpointExecutionStageMask = default
 )
 {
     SType = sType;
     PNext = pNext;
     CheckpointExecutionStageMask = checkpointExecutionStageMask;
 }
コード例 #7
0
 public CheckpointDataNV
 (
     StructureType sType      = StructureType.CheckpointDataNV,
     void *pNext              = default,
     PipelineStageFlags stage = default,
     void *pCheckpointMarker  = default
 )
 {
     SType             = sType;
     PNext             = pNext;
     Stage             = stage;
     PCheckpointMarker = pCheckpointMarker;
 }
コード例 #8
0
 public void CmdWaitEvents(Event[] pEvents, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, MemoryBarrier[] pMemoryBarriers, BufferMemoryBarrier[] pBufferMemoryBarriers, ImageMemoryBarrier[] pImageMemoryBarriers)
 {
     unsafe {
         var arraypEvents = pEvents == null ? IntPtr.Zero : Marshal.AllocHGlobal(pEvents.Length * sizeof(UInt64));
         var lenpEvents   = pEvents == null ? 0 : pEvents.Length;
         if (pEvents != null)
         {
             for (int i = 0; i < pEvents.Length; i++)
             {
                 ((UInt64 *)arraypEvents) [i] = (pEvents [i].m);
             }
         }
         var arraypMemoryBarriers = pMemoryBarriers == null ? IntPtr.Zero : Marshal.AllocHGlobal(pMemoryBarriers.Length * sizeof(Interop.MemoryBarrier));
         var lenpMemoryBarriers   = pMemoryBarriers == null ? 0 : pMemoryBarriers.Length;
         if (pMemoryBarriers != null)
         {
             for (int i = 0; i < pMemoryBarriers.Length; i++)
             {
                 ((Interop.MemoryBarrier *)arraypMemoryBarriers) [i] = *(pMemoryBarriers [i].m);
             }
         }
         var arraypBufferMemoryBarriers = pBufferMemoryBarriers == null ? IntPtr.Zero : Marshal.AllocHGlobal(pBufferMemoryBarriers.Length * sizeof(Interop.BufferMemoryBarrier));
         var lenpBufferMemoryBarriers   = pBufferMemoryBarriers == null ? 0 : pBufferMemoryBarriers.Length;
         if (pBufferMemoryBarriers != null)
         {
             for (int i = 0; i < pBufferMemoryBarriers.Length; i++)
             {
                 ((Interop.BufferMemoryBarrier *)arraypBufferMemoryBarriers) [i] = *(pBufferMemoryBarriers [i].m);
             }
         }
         var arraypImageMemoryBarriers = pImageMemoryBarriers == null ? IntPtr.Zero : Marshal.AllocHGlobal(pImageMemoryBarriers.Length * sizeof(Interop.ImageMemoryBarrier));
         var lenpImageMemoryBarriers   = pImageMemoryBarriers == null ? 0 : pImageMemoryBarriers.Length;
         if (pImageMemoryBarriers != null)
         {
             for (int i = 0; i < pImageMemoryBarriers.Length; i++)
             {
                 ((Interop.ImageMemoryBarrier *)arraypImageMemoryBarriers) [i] = *(pImageMemoryBarriers [i].m);
             }
         }
         Interop.NativeMethods.vkCmdWaitEvents(this.m, (uint)lenpEvents, (UInt64 *)arraypEvents, srcStageMask, dstStageMask, (uint)lenpMemoryBarriers, (Interop.MemoryBarrier *)arraypMemoryBarriers, (uint)lenpBufferMemoryBarriers, (Interop.BufferMemoryBarrier *)arraypBufferMemoryBarriers, (uint)lenpImageMemoryBarriers, (Interop.ImageMemoryBarrier *)arraypImageMemoryBarriers);
         Marshal.FreeHGlobal(arraypEvents);
         Marshal.FreeHGlobal(arraypMemoryBarriers);
         Marshal.FreeHGlobal(arraypBufferMemoryBarriers);
         Marshal.FreeHGlobal(arraypImageMemoryBarriers);
     }
 }
コード例 #9
0
 public SubpassDependency
 (
     uint srcSubpass = default,
     uint dstSubpass = default,
     PipelineStageFlags srcStageMask = default,
     PipelineStageFlags dstStageMask = default,
     AccessFlags srcAccessMask       = default,
     AccessFlags dstAccessMask       = default,
     DependencyFlags dependencyFlags = default
 )
 {
     SrcSubpass      = srcSubpass;
     DstSubpass      = dstSubpass;
     SrcStageMask    = srcStageMask;
     DstStageMask    = dstStageMask;
     SrcAccessMask   = srcAccessMask;
     DstAccessMask   = dstAccessMask;
     DependencyFlags = dependencyFlags;
 }
コード例 #10
0
        public static unsafe void InsertImageBarrier(
            Vk api,
            CommandBuffer commandBuffer,
            Image image,
            AccessFlags srcAccessMask,
            AccessFlags dstAccessMask,
            PipelineStageFlags srcStageMask,
            PipelineStageFlags dstStageMask,
            ImageAspectFlags aspectFlags,
            int firstLayer,
            int firstLevel,
            int layers,
            int levels)
        {
            ImageMemoryBarrier memoryBarrier = new ImageMemoryBarrier()
            {
                SType               = StructureType.ImageMemoryBarrier,
                SrcAccessMask       = srcAccessMask,
                DstAccessMask       = dstAccessMask,
                SrcQueueFamilyIndex = Vk.QueueFamilyIgnored,
                DstQueueFamilyIndex = Vk.QueueFamilyIgnored,
                Image               = image,
                OldLayout           = ImageLayout.General,
                NewLayout           = ImageLayout.General,
                SubresourceRange    = new ImageSubresourceRange(aspectFlags, (uint)firstLevel, (uint)levels, (uint)firstLayer, (uint)layers)
            };

            api.CmdPipelineBarrier(
                commandBuffer,
                srcStageMask,
                dstStageMask,
                0,
                0,
                null,
                0,
                null,
                1,
                memoryBarrier);
        }
コード例 #11
0
 public void CmdPipelineBarrier(PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, MemoryBarrier[] pMemoryBarriers, BufferMemoryBarrier[] pBufferMemoryBarriers, ImageMemoryBarrier[] pImageMemoryBarriers)
 {
     unsafe {
         var arraypMemoryBarriers = pMemoryBarriers == null ? IntPtr.Zero : Marshal.AllocHGlobal(pMemoryBarriers.Length * sizeof(Interop.MemoryBarrier));
         var lenpMemoryBarriers   = pMemoryBarriers == null ? 0 : pMemoryBarriers.Length;
         if (pMemoryBarriers != null)
         {
             for (int i = 0; i < pMemoryBarriers.Length; i++)
             {
                 ((Interop.MemoryBarrier *)arraypMemoryBarriers) [i] = *(pMemoryBarriers [i].m);
             }
         }
         var arraypBufferMemoryBarriers = pBufferMemoryBarriers == null ? IntPtr.Zero : Marshal.AllocHGlobal(pBufferMemoryBarriers.Length * sizeof(Interop.BufferMemoryBarrier));
         var lenpBufferMemoryBarriers   = pBufferMemoryBarriers == null ? 0 : pBufferMemoryBarriers.Length;
         if (pBufferMemoryBarriers != null)
         {
             for (int i = 0; i < pBufferMemoryBarriers.Length; i++)
             {
                 ((Interop.BufferMemoryBarrier *)arraypBufferMemoryBarriers) [i] = *(pBufferMemoryBarriers [i].m);
             }
         }
         var arraypImageMemoryBarriers = pImageMemoryBarriers == null ? IntPtr.Zero : Marshal.AllocHGlobal(pImageMemoryBarriers.Length * sizeof(Interop.ImageMemoryBarrier));
         var lenpImageMemoryBarriers   = pImageMemoryBarriers == null ? 0 : pImageMemoryBarriers.Length;
         if (pImageMemoryBarriers != null)
         {
             for (int i = 0; i < pImageMemoryBarriers.Length; i++)
             {
                 ((Interop.ImageMemoryBarrier *)arraypImageMemoryBarriers) [i] = *(pImageMemoryBarriers [i].m);
             }
         }
         Interop.NativeMethods.vkCmdPipelineBarrier(this.m, srcStageMask, dstStageMask, dependencyFlags, (uint)lenpMemoryBarriers, (Interop.MemoryBarrier *)arraypMemoryBarriers, (uint)lenpBufferMemoryBarriers, (Interop.BufferMemoryBarrier *)arraypBufferMemoryBarriers, (uint)lenpImageMemoryBarriers, (Interop.ImageMemoryBarrier *)arraypImageMemoryBarriers);
         Marshal.FreeHGlobal(arraypMemoryBarriers);
         Marshal.FreeHGlobal(arraypBufferMemoryBarriers);
         Marshal.FreeHGlobal(arraypImageMemoryBarriers);
     }
 }
コード例 #12
0
 internal static unsafe extern void vkCmdResetEvent(CommandBuffer commandBuffer, Event @event, PipelineStageFlags stageMask);
コード例 #13
0
 internal static unsafe extern void vkCmdResetEvent(IntPtr commandBuffer, UInt64 @event, PipelineStageFlags stageMask);
コード例 #14
0
 public partial void CmdWriteBufferMarker([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0)] PipelineStageFlags pipelineStage, [Count(Count = 0)] Buffer dstBuffer, [Count(Count = 0)] ulong dstOffset, [Count(Count = 0)] uint marker);
コード例 #15
0
ファイル: Functions.cs プロジェクト: jwollen/SharpVulkan
 internal static unsafe extern void vkCmdWriteTimestamp(CommandBuffer commandBuffer, PipelineStageFlags pipelineStage, QueryPool queryPool, uint query);
コード例 #16
0
 public void CmdResetEvent(Event @event, PipelineStageFlags stageMask)
 {
     unsafe {
         Interop.NativeMethods.vkCmdResetEvent(this.m, @event != null ? @event.m : default(UInt64), stageMask);
     }
 }
コード例 #17
0
ファイル: Functions.cs プロジェクト: jwollen/SharpVulkan
 public unsafe void WaitEvents(uint eventCount, Event events, PipelineStageFlags sourceStageMask, PipelineStageFlags destinationStageMask, uint memoryBarrierCount, MemoryBarrier* memoryBarriers, uint bufferMemoryBarrierCount, BufferMemoryBarrier* bufferMemoryBarriers, uint imageMemoryBarrierCount, ImageMemoryBarrier* imageMemoryBarriers)
 {
     vkCmdWaitEvents(this, eventCount, &events, sourceStageMask, destinationStageMask, memoryBarrierCount, memoryBarriers, bufferMemoryBarrierCount, bufferMemoryBarriers, imageMemoryBarrierCount, imageMemoryBarriers);
 }
コード例 #18
0
 internal static unsafe extern void vkCmdWriteTimestamp(CommandBuffer commandBuffer, PipelineStageFlags pipelineStage, QueryPool queryPool, UInt32 query);
コード例 #19
0
 public void CmdWriteBufferMarkerAMD(PipelineStageFlags pipelineStage, VulkanBuffer dstBuffer, DeviceSize dstOffset, UInt32 marker)
 {
     unsafe {
         Interop.NativeMethods.vkCmdWriteBufferMarkerAMD(this.m, pipelineStage, dstBuffer != null ? dstBuffer.m : default(UInt64), dstOffset, marker);
     }
 }
コード例 #20
0
 public void CmdWriteTimestamp(PipelineStageFlags pipelineStage, QueryPool queryPool, UInt32 query)
 {
     unsafe {
         Interop.NativeMethods.vkCmdWriteTimestamp(this.m, pipelineStage, queryPool != null ? queryPool.m : default(UInt64), query);
     }
 }
コード例 #21
0
 public void CmdPipelineBarrier(PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlag, MemoryBarrier pMemoryBarrier, BufferMemoryBarrier pBufferMemoryBarrier, ImageMemoryBarrier pImageMemoryBarrier)
 {
     unsafe {
         Interop.NativeMethods.vkCmdPipelineBarrier(this.m, srcStageMask, dstStageMask, dependencyFlag, (UInt32)(pMemoryBarrier != null ? 1 : 0), pMemoryBarrier != null ? pMemoryBarrier.m : (Interop.MemoryBarrier *) default(IntPtr), (UInt32)(pBufferMemoryBarrier != null ? 1 : 0), pBufferMemoryBarrier != null ? pBufferMemoryBarrier.m : (Interop.BufferMemoryBarrier *) default(IntPtr), (UInt32)(pImageMemoryBarrier != null ? 1 : 0), pImageMemoryBarrier != null ? pImageMemoryBarrier.m : (Interop.ImageMemoryBarrier *) default(IntPtr));
     }
 }
コード例 #22
0
ファイル: Functions.cs プロジェクト: jwollen/SharpVulkan
 internal static unsafe extern void vkCmdSetEvent(CommandBuffer commandBuffer, Event @event, PipelineStageFlags stageMask);
コード例 #23
0
        internal void TransitionImageLayout(Image image, Format format, ImageLayout oldLayout, ImageLayout newLayout)
        {
            PipelineStageFlags sourceStage      = PipelineStageFlags.TopOfPipe;
            PipelineStageFlags destinationStage = PipelineStageFlags.TopOfPipe;

            AccessFlags MapAccessMask(ImageLayout layout, ref PipelineStageFlags stage)
            {
                switch (layout)
                {
                case ImageLayout.Undefined:
                    return(AccessFlags.None);

                case ImageLayout.Preinitialized:
                    stage = PipelineStageFlags.Host;
                    return(AccessFlags.HostWrite);

                case ImageLayout.TransferSourceOptimal:
                    stage = PipelineStageFlags.Transfer;
                    return(AccessFlags.TransferRead);

                case ImageLayout.TransferDestinationOptimal:
                    stage = PipelineStageFlags.Transfer;
                    return(AccessFlags.TransferWrite);

                case ImageLayout.ShaderReadOnlyOptimal:
                    stage = PipelineStageFlags.VertexShader | PipelineStageFlags.FragmentShader;
                    return(AccessFlags.ShaderRead);

                case ImageLayout.DepthStencilAttachmentOptimal:
                    stage = PipelineStageFlags.EarlyFragmentTests | PipelineStageFlags.LateFragmentTests;
                    return(AccessFlags.DepthStencilAttachmentRead | AccessFlags.DepthStencilAttachmentWrite);
                }

                throw new System.Exception($"Unsupported layout transition '{layout}'");
            }

            var commandBuffer = this.BeginSingleTimeCommand(this.barrierCommandPool);

            var barrier = new ImageMemoryBarrier
            {
                OldLayout                   = oldLayout,
                NewLayout                   = newLayout,
                SourceAccessMask            = MapAccessMask(oldLayout, ref sourceStage),
                DestinationAccessMask       = MapAccessMask(newLayout, ref destinationStage),
                SourceQueueFamilyIndex      = Constants.QueueFamilyIgnored,
                DestinationQueueFamilyIndex = Constants.QueueFamilyIgnored,
                Image            = image,
                SubresourceRange = new ImageSubresourceRange
                {
                    AspectMask = newLayout == ImageLayout.DepthStencilAttachmentOptimal
                                    ? ImageAspectFlags.Depth
                                    : ImageAspectFlags.Color,
                    BaseMipLevel   = 0,
                    LevelCount     = 1,
                    BaseArrayLayer = 0,
                    LayerCount     = 1
                }
            };

            commandBuffer[0].PipelineBarrier(sourceStage,
                                             destinationStage,
                                             null,
                                             null,
                                             barrier);

            this.EndSingleTimeCommand(commandBuffer, this.barrierCommandPool, this.barrierQueue);
        }
コード例 #24
0
 internal static unsafe extern void vkCmdWaitEvents(CommandBuffer commandBuffer, UInt32 eventCount, IntPtr pEvents, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, UInt32 memoryBarrierCount, MemoryBarrier *MemoryBarriers, UInt32 bufferMemoryBarrierCount, BufferMemoryBarrier *BufferMemoryBarriers, UInt32 imageMemoryBarrierCount, ImageMemoryBarrier *ImageMemoryBarriers);
コード例 #25
0
 internal static unsafe extern void vkCmdPipelineBarrier(CommandBuffer commandBuffer, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, UInt32 memoryBarrierCount, MemoryBarrier *MemoryBarriers, UInt32 bufferMemoryBarrierCount, BufferMemoryBarrier *BufferMemoryBarriers, UInt32 imageMemoryBarrierCount, ImageMemoryBarrier *ImageMemoryBarriers);
コード例 #26
0
ファイル: Functions.cs プロジェクト: jwollen/SharpVulkan
 public unsafe void SetEvent(Event @event, PipelineStageFlags stageMask)
 {
     vkCmdSetEvent(this, @event, stageMask);
 }
コード例 #27
0
ファイル: Functions.cs プロジェクト: jwollen/SharpVulkan
 public unsafe void WriteTimestamp(PipelineStageFlags pipelineStage, QueryPool queryPool, uint query)
 {
     vkCmdWriteTimestamp(this, pipelineStage, queryPool, query);
 }
コード例 #28
0
 public static extern unsafe void vkCmdWaitEvents(IntPtr commandBuffer, uint eventCount, ulong *pEvents, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, uint memoryBarrierCount, MemoryBarrier *pMemoryBarriers, uint bufferMemoryBarrierCount, BufferMemoryBarrier *pBufferMemoryBarriers, uint imageMemoryBarrierCount, ImageMemoryBarrier *pImageMemoryBarriers);
コード例 #29
0
 public static extern void vkCmdResetEvent(IntPtr commandBuffer, ulong @event, PipelineStageFlags stageMask);
コード例 #30
0
 public static extern void vkCmdWriteTimestamp(IntPtr commandBuffer, PipelineStageFlags pipelineStage, ulong queryPool, uint query);
コード例 #31
0
 public static extern unsafe void vkCmdPipelineBarrier(IntPtr commandBuffer, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, uint memoryBarrierCount, MemoryBarrier *pMemoryBarriers, uint bufferMemoryBarrierCount, BufferMemoryBarrier *pBufferMemoryBarriers, uint imageMemoryBarrierCount, ImageMemoryBarrier *pImageMemoryBarriers);
コード例 #32
0
ファイル: Functions.cs プロジェクト: jwollen/SharpVulkan
 internal static unsafe extern void vkCmdPipelineBarrier(CommandBuffer commandBuffer, PipelineStageFlags sourceStageMask, PipelineStageFlags destinationStageMask, DependencyFlags dependencyFlags, uint memoryBarrierCount, MemoryBarrier* memoryBarriers, uint bufferMemoryBarrierCount, BufferMemoryBarrier* bufferMemoryBarriers, uint imageMemoryBarrierCount, ImageMemoryBarrier* imageMemoryBarriers);
コード例 #33
0
ファイル: Functions.cs プロジェクト: jwollen/SharpVulkan
 public unsafe void PipelineBarrier(PipelineStageFlags sourceStageMask, PipelineStageFlags destinationStageMask, DependencyFlags dependencyFlags, uint memoryBarrierCount, MemoryBarrier* memoryBarriers, uint bufferMemoryBarrierCount, BufferMemoryBarrier* bufferMemoryBarriers, uint imageMemoryBarrierCount, ImageMemoryBarrier* imageMemoryBarriers)
 {
     vkCmdPipelineBarrier(this, sourceStageMask, destinationStageMask, dependencyFlags, memoryBarrierCount, memoryBarriers, bufferMemoryBarrierCount, bufferMemoryBarriers, imageMemoryBarrierCount, imageMemoryBarriers);
 }
コード例 #34
0
ファイル: Functions.cs プロジェクト: jwollen/SharpVulkan
 internal static unsafe extern void vkCmdWaitEvents(CommandBuffer commandBuffer, uint eventCount, Event* events, PipelineStageFlags sourceStageMask, PipelineStageFlags destinationStageMask, uint memoryBarrierCount, MemoryBarrier* memoryBarriers, uint bufferMemoryBarrierCount, BufferMemoryBarrier* bufferMemoryBarriers, uint imageMemoryBarrierCount, ImageMemoryBarrier* imageMemoryBarriers);