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 byDraw
command - Added
Flags
member toDrawAttribs
structure (values fromDRAW_FLAGS
) - Added
IndirectAttribsBufferStateTransitionMode
member toDrawAttribs
andDispatchComputeAttribs
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 toIPipelineState::CreateShaderResourceBinding()
method to allow immediate initialization of static resources in a SRB - Removed default SRB object
- Renamed/moved
IBuffer::UpdateData()
toIDeviceContext::UpdateBuffer()
- Renamed/moved
IBuffer::CopyData()
toIDeviceContext::CopyBuffer()
- Renamed/moved
IBuffer::Map()
toIDeviceContext::MapBuffer()
- Renamed/moved
IBuffer::Unmap()
toIDeviceContext::UnmapBuffer()
- Removed
MapFlags
parameter - Renamed/moved
ITexture::UpdateData()
toIDeviceContext::UpdateTexture()
- Renamed/moved
ITexture::CopyData()
toIDeviceContext::CopyTexture()
- Renamed/moved
ITexture::Map()
toIDeviceContext::MapTextureSubresource()
- Renamed/moved
ITexture::Unmap()
toIDeviceContext::UnmapTextureSubresource()
- Moved
ITextureView::GenerateMips()
toIDeviceContext::GenerateMips()
- Added state transition mode parameters to
IDeviceContext::UpdateBuffer()
,IDeviceContext::UpdateTexture()
,IDeviceContext::CopyBuffer()
,IDeviceContext::CopyTexture()
,IDeviceContext::SetVertexBuffers()
,IDeviceContext::SetIndexBuffers()
,IDeviceContext::ClearRenderTargets()
, andIDeviceContext::ClearDepthStencil()
methods - Replaced
COMMIT_SHADER_RESOURCES_FLAGS
enum withRESOURCE_STATE_TRANSITION_MODE
- Added
ITextureD3D12::GetD3D12ResourceState()
,IBufferD3D12::GetD3D12ResourceState()
,
IBufferVk::GetAccessFlags()
, andITextureVk::GetLayout()
methods - Added
CopyTextureAttribs
structure that combines all parameters ofIDeviceContext::CopyTexture()
method