Ejemplo n.º 1
0
 public ResourceBarrier CreateUav(ResourceBarrierOptions options)
 {
     if (Desc.Type == ResourceType.Buffer)
     {
         return(ResourceBarrier.UnorderedAccess(Desc.Buffer, options));
     }
     else
     {
         return(ResourceBarrier.UnorderedAccess(Desc.Texture, options));
     }
 }
Ejemplo n.º 2
0
        public ResourceBarrier CreateTransition(ResourceState state, ResourceBarrierOptions options)
        {
            ResourceBarrier barrier;

            if (Desc.Type == ResourceType.Buffer)
            {
                barrier = ResourceBarrier.Transition(Desc.Buffer, CurrentTrackedState, state, options);
            }
            else
            {
                barrier = ResourceBarrier.Transition(Desc.Texture, CurrentTrackedState, state, uint.MaxValue, options);
            }

            CurrentTrackedState = state;
            return(barrier);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Creates a new <see cref="ResourceBarrier"/> representing a UAV read/writer barrier
 /// </summary>
 /// <param name="options">The <see cref="ResourceBarrierOptions"/> for the barrier</param>
 /// <returns>A new <see cref="ResourceBarrier"/> representing a UAV read/writer barrier</returns>
 public static ResourceBarrier UnorderedAccess(ResourceBarrierOptions options = ResourceBarrierOptions.Full)
 => UnorderedAcccess(null, options);
Ejemplo n.º 4
0
 internal static ResourceBarrier UnorderedAcccess(GpuResource?resource, ResourceBarrierOptions options)
 => new ResourceBarrier((D3D12_RESOURCE_BARRIER_FLAGS)options, resource);
Ejemplo n.º 5
0
 internal static ResourceBarrier Transition(GpuResource resource, ResourceState before, ResourceState after, uint subresource, ResourceBarrierOptions options)
 => new ResourceBarrier((D3D12_RESOURCE_BARRIER_FLAGS)options, resource, before, after, subresource);