Example #1
0
 private ResourceBarrier(
     D3D12_RESOURCE_BARRIER_FLAGS flags,
     GpuResource?resource
     )
 {
     Unsafe.SkipInit(out Barrier);
     Barrier.Type  = D3D12_RESOURCE_BARRIER_TYPE.D3D12_RESOURCE_BARRIER_TYPE_UAV;
     Barrier.Flags = flags;
     Barrier.Anonymous.UAV.pResource = resource is null ? null : resource.GetResourcePointer();
 }
Example #2
0
 private ResourceBarrier(
     D3D12_RESOURCE_BARRIER_FLAGS flags,
     GpuResource?srcResource,
     GpuResource?destResource
     )
 {
     Unsafe.SkipInit(out Barrier);
     Barrier.Type  = D3D12_RESOURCE_BARRIER_TYPE.D3D12_RESOURCE_BARRIER_TYPE_ALIASING;
     Barrier.Flags = flags;
     Barrier.Anonymous.Aliasing.pResourceBefore = srcResource is null ? null : srcResource.GetResourcePointer();
     Barrier.Anonymous.Aliasing.pResourceAfter  = destResource is null ? null : destResource.GetResourcePointer();
 }
Example #3
0
 private ResourceBarrier(
     D3D12_RESOURCE_BARRIER_FLAGS flags,
     GpuResource resource,
     ResourceState before,
     ResourceState after,
     uint subresource
     )
 {
     Unsafe.SkipInit(out Barrier);
     Barrier.Type  = D3D12_RESOURCE_BARRIER_TYPE.D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
     Barrier.Flags = flags;
     Barrier.Anonymous.Transition.pResource   = resource.GetResourcePointer();
     Barrier.Anonymous.Transition.StateBefore = (D3D12_RESOURCE_STATES)before;
     Barrier.Anonymous.Transition.StateAfter  = (D3D12_RESOURCE_STATES)after;
     Barrier.Anonymous.Transition.Subresource = subresource;
 }
        public static D3D12_RESOURCE_BARRIER InitTransition(ID3D12Resource *pResource, D3D12_RESOURCE_STATES stateBefore, D3D12_RESOURCE_STATES stateAfter, uint subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES, D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE)
        {
            D3D12_RESOURCE_BARRIER result = default;

            result.Type  = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
            result.Flags = flags;
            result.Anonymous.Transition.pResource   = pResource;
            result.Anonymous.Transition.StateBefore = stateBefore;
            result.Anonymous.Transition.StateAfter  = stateAfter;
            result.Anonymous.Transition.Subresource = subresource;
            return(result);
        }