Austin Eng
47261d4ecb
Implement MapReadAsync on D3D12 backend
...
Buffers with MapRead allowed are created on the READBACK heap and always
add the D3D12_RESOURCE_STATE_COPY_DEST state (required by D3D12).
Likewise MapWrite adds the D3D12_RESOURCE_STATE_GENERIC_READ state and
places resources on the UPLOAD heap. Because these states are
required, transitions for mapped buffers do nothing.
2017-07-06 16:57:54 -04:00
Austin Eng
8fa550c015
Add D3D12 buffer/buffer buffer/texture and texture/buffer copies
...
Right now, this only works if textures are 256-byte aligned
2017-07-06 16:57:54 -04:00
Austin Eng
6774bce06e
Remove unused Device member in D3D12 TextureView and BufferView
2017-07-06 16:57:54 -04:00
Austin Eng
beb76d06db
Rename d3d12 Device tick functions to Tick
2017-07-06 16:57:54 -04:00
Austin Eng
6103c62489
Rename backend::d3d12::ResourceUploader::UploadToBuffer to BufferSubData
2017-07-06 16:57:54 -04:00
Corentin Wallez
8859178703
Add nxt::VertexFormat::FloatR32
2017-07-06 11:34:31 -04:00
Austin Eng
cd13691783
Update SPRIV-Cross for HLSL SM5.1 register name support
2017-07-04 14:30:34 -04:00
Austin Eng
036f76f51f
D3D12: Refactor bind group descriptor tracking and descriptor heap allocation
...
Extract descriptor offset computation and CPU descriptor recording to
BindGroupLayout and BindGroup. Refactor descriptor heap allocation to
copy from a large CPU heap to a GPU heap.
2017-07-04 14:30:34 -04:00
Austin Eng
aecf0b130e
Add D3D12 buffer, texture, and sampler binding
2017-07-04 14:30:34 -04:00
Corentin Wallez
e9d347e89e
Add T->B copies.
...
This implements T->B copies on the Metal backend only and while it adds
validation tests, end2end tests will be done in a follow-up commit.
2017-06-27 13:25:42 -04:00
Austin Eng
e44179ae4d
Move command list creation to the Device and indirectly reserve command allocators
2017-06-19 15:08:53 -04:00
Austin Eng
a4dcde9cf3
forward declare allocator classes
2017-06-19 15:08:53 -04:00
Austin Eng
f96ce23628
Add ResourceAllocationManager to create and track lifetimes of d3d12 resources
2017-06-19 15:08:53 -04:00
Austin Eng
78f1619446
Use CommandAllocatorManager to create and track lifetimes of ID3D12CommandAllocators
2017-06-19 15:08:53 -04:00
Austin Eng
2157002570
refactor ResourceUploader to use SerialQueue
2017-06-19 15:08:53 -04:00
Corentin Wallez
dbb5729e64
Add Device::Tick for periodic work
2017-06-15 13:27:50 -07:00
Austin Eng
b947993e1a
Add d3d12 resource uploader to create and manage uploading resource lifetimes
2017-06-14 13:53:52 -04:00
Austin Eng
d251356783
D3D12 vertex and index buffers with resource transitions
2017-06-14 13:53:52 -04:00
Austin Eng
459537491b
Refactor TransitionUsage to use abstract TransitionUsageImpl
2017-06-14 13:53:52 -04:00
Corentin Wallez
d84d107076
Add buffer to buffer copies
2017-06-13 13:15:30 -07:00
Corentin Wallez
c863b1c26f
ToBackend: Add support for Device
2017-06-13 08:30:01 -07:00
Corentin Wallez
b1c19eeb4f
Add Buffer::MapReadAsync state-tracking
2017-06-13 08:30:01 -07:00
Austin Eng
2b055c38fd
add fences to prevent resetting a ID3D12CommandAllocator before commands have completed
2017-06-09 07:26:31 -07:00
Austin Eng
81bc3ad23b
move frame resource transitions to D3D12Binding
2017-06-09 07:26:31 -07:00
Austin Eng
cfeda4d9f2
CHelloTriangle working
2017-06-07 16:23:10 -04:00
Austin Eng
eb6d22242a
add D3D12Binding with swap chain
2017-06-07 16:23:10 -04:00
Austin Eng
fc2bac7e45
add null D3D12 backend
2017-06-07 16:23:10 -04:00