187 Commits

Author SHA1 Message Date
Corentin Wallez
a8ec80ba57 Vulkan: Add some simple command pool / buffer management 2017-11-23 09:26:26 -05:00
Corentin Wallez
9018236b38 Vulkan: Keep track of finished operations with fences 2017-11-23 09:26:26 -05:00
Corentin Wallez
315e9268bb Vulkan: Start buffers, hack SetSubData and MapRead 2017-11-22 18:25:20 -05:00
Corentin Wallez
b8387a62a6 RefCounted: make copy constructor arg const 2017-11-22 18:25:20 -05:00
Corentin Wallez
0216233a83 Vulkan: Create device and load all entry points 2017-11-22 18:25:20 -05:00
Corentin Wallez
33f7bfe322 OpenGL: Apply vertex/index buffers just before draw.
Previously we would modify the GL state as soon as we saw
SetIndex/VertexBuffers. This GL state is owned by the VAOs in the
InputState and was disappearing on a Pipeline change. Fix this by
applying the index / vertex buffers lazily.
2017-11-21 17:34:16 -05:00
Corentin Wallez
6d9a3b82c6 Vulkan: Create VkInstance and register debug report 2017-11-21 16:09:15 -05:00
Corentin Wallez
f2adf6d5bd Vulkan: Load Vulkan library and gather global info 2017-11-21 16:09:15 -05:00
Corentin Wallez
2eb113d690 Noop d3d12_platform.h cleanup 2017-11-21 16:09:15 -05:00
Corentin Wallez
e862a33dac Add TextureFormat::B8G8R8A8Unorm 2017-11-20 09:59:03 -05:00
Corentin Wallez
405dcd636a Make the index format part of the pipeline state. 2017-11-20 09:59:03 -05:00
Corentin Wallez
ff57ccbcf1 OpenGL: Fix rendered textures being flipped.
This was because the clip space of OpenGL has an inverted Y compared to
other APIs. This commit:
 - Updates SPIRV-Cross to the latest version
 - Uses the new vertex.flip_vert_y option in ShaderModuleGL
 - Enables tests that are now passing in GL.
2017-11-16 11:42:38 -05:00
Kai Ninomiya
921fb5e1ce remove initialUsage from SwapChain::Configure 2017-09-15 14:02:02 -07:00
Kai Ninomiya
169809c458 use TransitionUsageImpl 2017-09-15 14:02:02 -07:00
Kai Ninomiya
720a5d9366 d3d12: add implicit transition for subpass attachments 2017-09-15 14:02:02 -07:00
Kai Ninomiya
ee7b6b1b62 Update SwapChain to configure texture usage
Explicitly configure swap chain usage in bindings and examples

Fix missing case in switch

Make swap chain Present usage implicit

Author: Austin Eng <enga@google.com>
2017-09-15 14:02:02 -07:00
Kai Ninomiya
08a0081c13 Change SetPipelineCommon to return void (#124)
This is to avoid a potential future problem if SetPipelineCommon were to
ever return false (which is currently not possible), some state might
have been modified incorrectly.
2017-08-31 10:56:15 -07:00
Kai Ninomiya
da42198478 Remove the last few null=backbuffer hacks (#125)
I missed these in #94.
2017-08-31 10:47:54 -07:00
Corentin Wallez
916046c956 Add stub Vulkan backend 2017-08-29 13:37:24 -07:00
Corentin Wallez
7218ed19a1 end2end: Add push constant tests 2017-08-23 09:49:35 -04:00
Corentin Wallez
9a72ea09a9 Metal: Recreate the compiler everytime we use it. 2017-08-23 09:49:35 -04:00
Corentin Wallez
2f96e129ef Metal: Fix SetBindGroup assert 2017-08-23 09:49:35 -04:00
Corentin Wallez
91b475f369 OpenGL: Allow separate VS and FS push constants 2017-08-23 09:49:35 -04:00
Corentin Wallez
1b6f7535aa OpenGL: Reset viewport to FB size at each subpass 2017-08-23 09:49:35 -04:00
Corentin Wallez
a214b7f12d OpenGL: Fix push constants disappearing on pipeline change 2017-08-23 09:49:35 -04:00
Corentin Wallez
3ef4121d4e Metal: Free pipeline descriptor on error. 2017-08-23 09:49:35 -04:00
Corentin Wallez
770f25f335 Fix XCode Analyse false positive 2017-08-23 09:49:35 -04:00
Austin Eng
a384c61f7a Fix indexing error 2017-08-18 12:49:45 -04:00
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
9b4150d5fd Fix RecomputeHaveAspectVertexBuffers check 2017-08-15 19:40:10 -04:00
Austin Eng
dd37e5017f Fix bug with EnsureTextureUsage 2017-08-15 19:40:10 -04:00
Austin Eng
d9568e2ca9 Reset vertex buffers aspect when pipelines change and fix bug where inputsSet is not cleared 2017-08-15 19:40:10 -04: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
37d11539a4 Add compute to D3D12 backend 2017-08-14 17:39:36 -04:00
Austin Eng
fb19c3606b Add RGBA8Uint texture format 2017-08-14 17:38:56 -04:00
Kai Ninomiya
ba7a3224ea fix accidentally lost from #105 (#109) 2017-08-11 18:06:25 -07:00
Kai Ninomiya
b985431c82 Load operations (#105)
* load ops: design + implementation (all backends)

* Animometer/glTFViewer: use just one subpass per frame
2017-08-11 14:36:20 -07: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
6366a019db Validate render subpass for SetBlendColor and SetStencilReference 2017-08-07 18:51:48 -04:00
Austin Eng
3a8f48504d opengl: Fix multiple render target setup with glDrawBuffers 2017-08-07 18:51:48 -04:00
Austin Eng
8dc3bd1808 opengl: Implement blend state 2017-08-07 18:51:48 -04:00
Austin Eng
fb4265387c Add SetBlendColor command 2017-08-07 18:51:48 -04:00
Austin Eng
476e5cbe30 Metal: Apply BlendState to RenderPipeline 2017-08-07 18:51:48 -04:00
Austin Eng
4820dbd7ee D3D12: Apply blend state to render pipeline 2017-08-07 18:51:48 -04:00
Austin Eng
31fc0d234c D3D12 & Metal: Blend state conversions 2017-08-07 18:51:48 -04:00
Austin Eng
94bebe517d Add BlendState to NXT API 2017-08-07 18:51:48 -04:00
Ben Constable
2c05f4d8fc Remove comment per code review feedback 2017-08-01 18:45:33 -04:00
Ben Constable
ea507ddf77 Code review feedback 2017-08-01 18:45:33 -04:00