Corentin Wallez
fffe6dfa16
Split backend/common in backend/ and common/
...
This directory used to contain both the state tracking code for the
backends, and the common utilities that could be used both by the
backends and the rest of the code. Things are now:
- src/common is utility code for the whole repo
- src/backend contains libNXT's code
- src/utils is utility code that we don't want in libNXT
This commit also changes all includes to use global paths from src/
bacause it had to touch a bunch of #include statements anyway.
2017-07-06 17:54:52 -04:00
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