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
38246eb51c
Introduce SerialQueue to track in flight resources
2017-06-15 15:37:48 -07: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
Austin Eng
39c901d3dc
Change usage requirements for Buffer::SetSubData to require TransferDst
...
instead of MapWrite bit
2017-06-14 13:53:52 -04:00
Corentin Wallez
5c92537418
Add validation tests for B2B commands
2017-06-13 13:15:30 -07:00
Corentin Wallez
d84d107076
Add buffer to buffer copies
2017-06-13 13:15:30 -07:00
Corentin Wallez
367cb3515c
Fix MapRead error callback being called with a valid pointer
...
This happened when a request resulted in an error while the buffer was
already mapped. Adds a test that catches the error.
2017-06-13 08:30:01 -07:00
Corentin Wallez
68358b5c23
Add Buffer::MapReadAsync validation tests.
...
This also expands the Buffer validation tests to cover more creation
code paths and SetSubData. It also introduces a mechanism for
ValidationTests to check for device errors.
2017-06-13 08:30:01 -07:00
Corentin Wallez
43bfaae340
Null: implement fake async BufferMapRead
...
We want to test BufferMapRead validation using the null backend. To get
closer to conditions on a real backend, we call the callback only on the
next Queue::Submit. This is because on real backends, we would have to
wait for the GPU to be finished with the buffer, to be sure the correct
data is read.
2017-06-13 08:30:01 -07:00
Corentin Wallez
c863b1c26f
ToBackend: Add support for Device
2017-06-13 08:30:01 -07:00
Corentin Wallez
eca89c2989
WireTests for buffer read mapping
2017-06-13 08:30:01 -07:00
Corentin Wallez
9388b23212
Implement Buffer::MapReadAsync in the wire
2017-06-13 08:30:01 -07:00
Corentin Wallez
b1c19eeb4f
Add Buffer::MapReadAsync state-tracking
2017-06-13 08:30:01 -07:00
Corentin Wallez
f45bdb89c6
Split Mapped usage in MapWrite and MapRead
...
Also make use of CreateFrozenBufferFromData where possible in the
example to make the renaming easier.
2017-06-09 15:26:26 -07:00
Kai Ninomiya
613eee30c3
Add validation for some null arguments and dangling render passes
...
And add tests for both
2017-06-09 12:11:06 -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
Kai Ninomiya
39c1bce62d
Update glTFViewer for render passes and depth stencil state ( #39 )
2017-06-08 19:03:59 -07:00
Kai Ninomiya
468dafde9d
Create a command buffer builder state tracker object ( #19 )
2017-06-08 17:25:57 -07:00
Austin Eng
e6e30ecdbf
Remove gcc from Travis CI build
2017-06-08 16:14:29 -04:00
Austin Eng
83703293eb
Build on AppVeyor with VS2017
2017-06-07 16:23:10 -04: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
Corentin Wallez
fbab31bada
Roll spirv-cross bd7c47a0 -> 3ab17000
2017-06-06 10:03:46 -07:00
Corentin Wallez
72725eebf9
CommandBufferGL: Advance iterator for unimplemented commands
2017-06-06 10:03:46 -07:00
Corentin Wallez
ca9af201b5
Fix validation errors in Animometer's shader
2017-06-06 10:03:46 -07:00
Corentin Wallez
4efaf32d1b
Don't check for vertex buffers in dispatch aspects
...
Recently started causing a crash because we stopped creating an empty
InputState for compute pipelines
2017-06-06 10:03:46 -07:00
Corentin Wallez
181e22b482
Rename validation tests to end in Tests
2017-06-06 10:03:46 -07:00
Corentin Wallez
001c2ea98f
Fix some nits from depth-stencil PR
2017-06-05 14:43:06 -07:00
Austin Eng
58c76b3fe4
Simplify PersistentPipelineState and application of stencil states. Fix
...
stencil mask usage. D3D12 does not support separate front/back masks.
All APIs support separate read/write masks.
2017-06-02 12:13:39 -07:00
Austin Eng
5a67d196be
add buffer creation utility function
2017-06-02 12:13:39 -07:00
Austin Eng
00176858b5
Add DepthStencilState validation unit tests
2017-06-02 12:13:39 -07:00
Austin Eng
1063439d5d
Refactor DepthStencilState. TODO: add validation tests
...
- defaults to depth and stencil tests off
- whether or not depth and stencil tests are enabled is inferred from the comparison functions and stencil operations
- only one stencil reference. D3D12 does not support separate references
- change SetDepthWriteMode to SetDepthWriteEnabled and use a bool instead of enum
- Create PersistentPipelineState class for OpenGL backend with simple state tracking
- Add validation so DepthStencilState properties are only set once
- Update API usage in HelloDepthStencil
- refactor tracking of the DepthStencilState in the Metal backend
- validate that compute pipeline does not have a depth stencil state
2017-06-02 12:13:39 -07:00
Austin Eng
f51be34864
Use explicit front and back stencil state.
...
Previously stencil states were stored in array. This commit changes the
DepthStencilState to explicitly store a front and back stencil.
2017-06-02 12:13:39 -07:00
Austin Eng
376f1c6a8e
fix formatting
2017-06-02 12:13:39 -07:00
Austin Eng
084346bd5f
Fix OpenGL stencil clear hack. Improve example stencil reflection
2017-06-02 12:13:39 -07:00
Austin Eng
76e64a985d
Add MTL backend for DepthStencilState. Completely untested.
2017-06-02 12:13:39 -07:00
Austin Eng
4f5521e440
Remove StencilReferenceMode. Add SetStencilReference.
...
This moves the application of the stencil reference from the
DepthStencilState to Command::SetStencilReference
2017-06-02 12:13:39 -07:00
Austin Eng
3efcf2172d
Add DepthStencilState
...
Add depth and stencil tests. This is currently only implemented for the
OpenGL API. HelloDepthStencil is a test using the depth and stencil
buffers to do reflections. Currently clearing / stencil clearing is not
working properly.
2017-06-02 12:13:39 -07:00
Corentin Wallez
2711e9658d
Add AppVeyor CI
2017-05-31 11:22:19 -07:00
Corentin Wallez
93d7428991
Add Travis CI support
2017-05-30 15:55:34 -07:00
Corentin Wallez
698c2d1d8d
Don't rely on Jinja2's lstrip_blocks
...
Travis has Jinja 2.6 but the option appeared in Jinj 2.7. Manually
perform the stripping in the preprocessing step instead.
2017-05-30 15:55:34 -07:00
Corentin Wallez
97bc020cf4
Make the NULL backend proctables be generated in a .cpp
...
Previously they were in a .mm and GCC didn't know what to do with it.
2017-05-30 15:55:34 -07:00
Corentin Wallez
b38ff68b88
Make wire_autogen have all symbols defined internally
...
Previously WireCmd.h/cpp that is used in wire_autogen wasn't included in
the sources, causing a link error on some platforms.
With WireCmd.* moved in the EXTRA_SOURCES, the nxt_wire target didn't
contain any non-header file and caused a link error on OSX. Fix it by
properly splitting the declaration and implementation of
TerribleCommandBuffer in a .h and .cpp file.
2017-05-30 15:55:34 -07:00
Corentin Wallez
40fb17dddc
Only include intrin.h on Windows
2017-05-30 15:55:34 -07:00