344 Commits

Author SHA1 Message Date
Austin Eng
4086effec0 Validate buffer view offset on bind groups 2017-08-17 15:36:02 -04:00
Austin Eng
ae48c95306 Add IsAligned helper for values 2017-08-17 15:36:02 -04:00
Austin Eng
d37ec9af92 unittests: Test inheritance of vertex inputs between pipelines and no inheritance between subpasses 2017-08-15 19:40:10 -04:00
Kai Ninomiya
b476abd915 RenderPassLoadOpTests.ClearsOnlyOnFirstUsePerRenderPass (#117)
Tests that an attachment is cleared only on the first subpass that uses
it in a renderpass
2017-08-15 13:58:48 -07:00
Kai Ninomiya
afa45a9176 Add tests for clears, render passes, framebuffers (#107)
* Add tests for clears, render passes, framebuffers

* Test load with a draw in it
2017-08-14 16:32:26 -07:00
Austin Eng
e69a2893b3 Add BlendState validation tests 2017-08-07 18:51:48 -04:00
Austin Eng
12a00ba3d1 Reset blend color to (0,0,0,0) at the start of render subpass 2017-08-07 18:51:48 -04:00
Austin Eng
cce6b01b6d Remove dual source blending
It is not supported on many mobile GPUS on Vulkan
http://vulkan.gpuinfo.org/listreports.php?feature=dualSrcBlend&option=not
and is optional on Metal
2017-08-07 18:51:48 -04:00
Austin Eng
18163f1223 end2end: Add blend state tests 2017-08-07 18:51:48 -04:00
Ben Constable
ea507ddf77 Code review feedback 2017-08-01 18:45:33 -04:00
Ben Constable
a015ad3399 Initial changes for depth stencil, some tests not passing 2017-08-01 18:45:33 -04:00
Kai Ninomiya
c16a67ae52 Swap chains, part 2 (#94) 2017-07-27 18:30:57 -07:00
Corentin Wallez
3818e18c5c Forward unhandled builder errors to the device 2017-07-27 21:08:12 -04:00
Austin Eng
439d963ccd Point,Line,Triangle -> PointList,LineList,TriangleList 2017-07-27 10:19:30 -04:00
Austin Eng
2a0792b5f0 Add RenderPipeline validation tests 2017-07-27 10:19:30 -04:00
Austin Eng
d568bdad99 Add primitive topology tests 2017-07-27 10:19:30 -04:00
Austin Eng
c275f7cf9f end2end: Add depth stencil state tests 2017-07-25 10:16:08 -04:00
Austin Eng
cc8d2d529d D3D12: Enabled copy tests with non-aligned buffer offsets 2017-07-25 09:40:54 -04:00
Austin Eng
04499576d9 D3D12: Add copy splitter unit tests 2017-07-25 09:40:54 -04:00
Kai Ninomiya
78c8b837ea clang/gcc: enable a bunch more warnings (#91)
* clang/gcc: enable -pedantic warnings

* suppress a GCC-specific warning in stb_image

* And some clang-specific warnings

* -Wconversion (clang) -Wold-style-cast (clang+gcc)

and fix a few warnings that show up with these (and a few more with
-Wconversion on gcc, even though that's not enabled by default)

* bunch more warnings

* fixes

* remove merge error
2017-07-21 17:00:22 -07:00
Kai Ninomiya
159bade5f5 x_DISABLED -> DISABLED_x 2017-07-20 16:33:02 -04:00
Kai Ninomiya
d9af452ceb refactorign -> refactoring 2017-07-20 16:33:02 -04:00
Corentin Wallez
a18200e6af unittests: Add tests for push constants 2017-07-20 16:33:02 -04:00
Corentin Wallez
2dfea9961a ValidationTest: Add helper to create a dummy renderpass 2017-07-20 16:33:02 -04:00
Austin Eng
b343e8d920 Add texture copy tests 2017-07-20 13:07:36 -04:00
Austin Eng
e5bd3e0ece Add Texture expectation macro and mip level parameter 2017-07-20 13:07:36 -04:00
Austin Eng
1b8c64d3e2 Print small buffers on test expectation failure 2017-07-20 13:07:36 -04:00
Austin Eng
4234c39a09 Add output string streams to NXT test expectation helpers 2017-07-20 13:07:36 -04:00
Corentin Wallez
1e66ab93fe end2end: Add BufferSetSubData tests
The test doing many small SetSubData freezes the Metal driver on a
MTLBuffer allocation. This is because we don't use a ringbuffer for
SetSubData and instead create one small upload buffer per call.

The same test is skipped on D3D12 as it is bound to have the same issue.

Also adds comments that were forgotten before every MapReadAsync test.
2017-07-18 17:24:54 -04:00
Corentin Wallez
e1f16a25bf NXTTest: add other Is<Backend> methods 2017-07-18 17:24:54 -04:00
Austin Eng
3835edde10 Add validation for buffer offset 2017-07-18 16:03:51 -04:00
Corentin Wallez
8668fbacdd end2end: Add BufferMapReadAsync tests 2017-07-18 11:06:54 -04:00
Corentin Wallez
134e08005a Move USleep to utils/ 2017-07-18 11:06:54 -04:00
Austin Eng
2fbda87caf D3D12: Enable PureInstance test 2017-07-17 17:16:45 -04:00
Austin Eng
51ff013ee2 Add automatic readback alignment and packing for texture expectations
Texture expectations copy into a buffer with a 256-byte aligned row
pitch. Then, the rows are packed into an array to check expectations
against.
2017-07-17 17:16:45 -04:00
Austin Eng
36d82645c3 Add row pitch validation tests 2017-07-17 17:16:45 -04:00
Austin Eng
5ed02ee648 update existing unit tests with proper row pitch 2017-07-17 17:16:45 -04:00
Austin Eng
972a1e59a7 Update tests and examples to follow copy row pitch alignment constraints 2017-07-17 17:16:45 -04:00
Austin Eng
c5f8e7ae77 Update usage of CopyBufferToTexture and CopyTextureToBuffer to include row pitch 2017-07-17 17:16:45 -04:00
Austin Eng
deba8a4ea6 Add value type Align tests 2017-07-17 17:16:45 -04:00
Austin Eng
8867e5d8df Rename Align to AlignPtr 2017-07-17 17:16:45 -04:00
Corentin Wallez
e20c5ee9ff Split Pipeline in Render and Compute, test part 2017-07-17 15:25:16 -04:00
Corentin Wallez
55ebc25c0f NXTTest: Make GTest print the name of the backend 2017-07-17 13:48:17 -04:00
Corentin Wallez
23620b0dc7 OpenGL: Implement T->B copies
Also enable the basic end2end tests that are now passing.
InputStateTests isn't passing yet, for some reason the ReadPixels
returns pure black.
2017-07-17 13:48:17 -04:00
Corentin Wallez
bcee1e5981 NXTTest: expose SwapBuffers to test to make it easy to RenderDoc
RenderDoc uses presents as the points to start and end a capture, so to
debug test we have to do the following:

TEST_F(...)
    while(true) {
    	// All the test code
    	SwapBuffers();
    }
}
2017-07-13 15:41:43 -04:00
Corentin Wallez
de4a3c4c3b Fix framebuffer dimensions in InputStateTest
Also add validation that the framebuffer size matches its attachement
size and make a test for it.
2017-07-13 15:41:43 -04:00
Corentin Wallez
275817a93a Add proper defines for backend enablement 2017-07-13 14:55:23 -04:00
Austin Eng
77a29986b0 D3D12 Render Targets (#72)
Implements BeginRenderSubpass on the D3D12 backend. Descriptors for render target and depth stencil views are recorded in a descriptor heap for each framebuffer. For now, we still have the hack where no attachment renders to the backbuffer, so the CommandBuffer records those when necessary when it is submitted.

This PR also enables input states for D3D12 which are mostly working. One failure seems to be happening because our texture copies are not yet correct.
2017-07-12 17:36:36 -07:00
Corentin Wallez
0f833f30ed Enable warnings on Windows 2017-07-11 13:59:15 -04:00
Corentin Wallez
83e779d8f2 Fix all Windows warnings 2017-07-11 13:59:15 -04:00