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
Ben Constable
d54a5239a6
Fix missing depth stencil format and reference value setting
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
4526368263
Remove outdated backbuffer hack + reduce GL version to 4.4 ( #100 )
2017-07-31 11:25:06 -07:00
Corentin Wallez
4122b2e3f9
Metal: Implement push constants
2017-07-28 17:11:07 -04:00
Corentin Wallez
30beb65a7b
Metal: Make the MSL indices match the ones of PipelineLayout
...
Previously didn't tell SPIRV-Cross at which MSL resource indices the
different SPIRV binding should be, and were lucky that it's giving
indices in increasing order matched the PipelineLayout in all our
samples.
Fix this by making SPIRV->MSL compilation depend on the PipelineLayout
so we can tell SPIRV-Cross which binding goes where.
We should do the same for vertex attributes eventually as they are
hardcoded to start at kMaxBindingsPerGroup currently.
Also a couple unrelated cleanups (unused function, usage of
IterateBitSet).
2017-07-28 17:11:07 -04:00