Quantcast
Viewing all articles
Browse latest Browse all 31

Release v2.4 is out with Explicit State Transition Control

Release v2.4 introduces explicit control of resources state transitions, fixes some multi-threading issues and implements a number of improvements to the API that make it better organized and more clear.

API changes:

  • Added
    RESOURCE_STATE
     enum that defines the resource state
  • Added
    RESOURCE_STATE_TRANSITION_MODE
     enum that controls resource state transition mode
  • Added
    DRAW_FLAGS
     enum that controls state validation performed by
    Draw
     command
  • Added
    Flags
      member to
    DrawAttribs
     structure (values from
    DRAW_FLAGS
    )
  • Added
    IndirectAttribsBufferStateTransitionMode
      member to
    DrawAttribs
     and
    DispatchComputeAttribs
     structures
  • Added
    StateTransitionDesc
     structure that describes resource state transition barrier
  • Added
    IDeviceContext::TransitionResourceStates(Uint32 BarrierCount, StateTransitionDesc* pResourceBarriers)
     method
  • Added
    IBuffer::SetState()
    ,
    IBuffer::GetState()
    ,
    ITexture::SetState()
    ,
    ITexture::GetState()
     methods
  • Added
    IShaderResourceBinding::InitializeStaticResources()
     to explicitly initialize static resources and avoid problems in multi-threaded environments
  • Added
    InitStaticResources
     parameter to
    IPipelineState::CreateShaderResourceBinding()
     method to allow immediate initialization of static resources in a SRB
  • Removed default SRB object
  • Renamed/moved
    IBuffer::UpdateData()
      to
    IDeviceContext::UpdateBuffer()
  • Renamed/moved
    IBuffer::CopyData()
     to
    IDeviceContext::CopyBuffer()
  • Renamed/moved
    IBuffer::Map()
     to
    IDeviceContext::MapBuffer()
  • Renamed/moved
    IBuffer::Unmap()
      to
    IDeviceContext::UnmapBuffer()
  • Removed
    MapFlags
      parameter
  • Renamed/moved
    ITexture::UpdateData()
      to
    IDeviceContext::UpdateTexture()
  • Renamed/moved
    ITexture::CopyData()
     to
    IDeviceContext::CopyTexture()
  • Renamed/moved
    ITexture::Map()
     to
    IDeviceContext::MapTextureSubresource()
  • Renamed/moved
    ITexture::Unmap()
     to
    IDeviceContext::UnmapTextureSubresource()
  • Moved
    ITextureView::GenerateMips()
     to
    IDeviceContext::GenerateMips()
  • Added state transition mode parameters to
    IDeviceContext::UpdateBuffer()
    ,
    IDeviceContext::UpdateTexture()
    ,
    IDeviceContext::CopyBuffer()
    ,
    IDeviceContext::CopyTexture()
    ,
    IDeviceContext::SetVertexBuffers()
    ,  
    IDeviceContext::SetIndexBuffers()
    ,
    IDeviceContext::ClearRenderTargets()
    , and
    IDeviceContext::ClearDepthStencil()
      methods
  • Replaced
    COMMIT_SHADER_RESOURCES_FLAGS
      enum with
    RESOURCE_STATE_TRANSITION_MODE
  • Added
    ITextureD3D12::GetD3D12ResourceState()
    ,
    IBufferD3D12::GetD3D12ResourceState()
    ,
    IBufferVk::GetAccessFlags()
    , and
    ITextureVk::GetLayout()
     methods
  • Added
    CopyTextureAttribs
     structure that combines all parameters of
    IDeviceContext::CopyTexture()
     method

Viewing all articles
Browse latest Browse all 31

Trending Articles