Commit graph

151 commits

Author SHA1 Message Date
Henrik Rydgård
8d0209c7e4 Stop leaking framebuffers on shutdown. Fix other shutdown issues. 2017-11-01 21:43:08 +01:00
Henrik Rydgård
ca7a2d06ca Vulkan: Implement stencil upload (for Star Ocean). 2017-11-01 14:18:39 +01:00
Henrik Rydgård
6a8f72a327 Use the global curFrame counter. No need for a vector for pushing cmdbufs. 2017-11-01 08:47:50 +01:00
Henrik Rydgård
ed2731d197 Vulkan: Fix depal and shader blending. 2017-10-31 12:35:00 +01:00
Henrik Rydgård
07dfda0633 Vulkan depal code now passes validation, but produces black. 2017-10-31 12:35:00 +01:00
Henrik Rydgård
3f503ca297 Implement the rest of Vulkan framebuffer depal. Not yet working though. 2017-10-31 12:34:59 +01:00
Henrik Rydgård
6e9cd933b2 Implement GetFramebufferAPITexture for Vulkan 2017-10-31 12:34:30 +01:00
Henrik Rydgård
97dced543e Share the conversion code between vulkan and D3D, fixing the missing format thing. 2017-10-29 14:42:51 +01:00
Henrik Rydgård
93c785b76d Color-convert directly during the readback, saves a copy. Like we already do in D3D11. 2017-10-29 10:56:36 +01:00
Henrik Rydgård
34b65c0ca9 Fix Vulkan framebuffer readbacks, as long as they're in R8G8B8A8. 2017-10-28 18:41:54 +02:00
Henrik Rydgård
b98d4e5c9d Vulkan: Rough untested implementation of synchronous readbacks. 2017-10-28 18:03:27 +02:00
Henrik Rydgård
717ec2387b VulkanRenderManager: Split out BeginFrame and EndFrame from Run 2017-10-28 16:47:08 +02:00
Henrik Rydgård
3f918ed328 Refactor: Split out VulkanQueueRunner from VulkanRenderManager
Should be no functionality change, but good to do before adding more
functionality.
2017-10-27 22:11:01 +02:00
Henrik Rydgård
613cc46285 Remove a bad check making us use the wrong way to copy depth buffers. Add a cap so we can try to unify BlitFramebufferDepth later. 2017-10-26 10:57:00 +02:00
Henrik Rydgård
8639664a6a Warning fixes, CMakeLists.txt/Android.mk fixes 2017-10-26 10:57:00 +02:00
Henrik Rydgård
b5e06f3c7d VulkanRenderManager: BindPipeline should really be its own command. Tighten up some image transitions. 2017-10-26 10:57:00 +02:00
Henrik Rydgård
c788dc896a Synchronization is HARD. need a rethink, methinks. 2017-10-26 10:56:59 +02:00
Henrik Rydgård
1c5bd0f8dc Move the VulkanRenderManager stuff to thin3d, fits in better there. 2017-10-26 10:56:59 +02:00
Henrik Rydgård
02f76ae4a8 Rendering basics now works. 2017-10-26 10:56:59 +02:00
Henrik Rydgård
833916a906 A multitude of fixes. The UI now works correctly, though of course ingame still broken. 2017-10-26 10:56:59 +02:00
Henrik Rydgård
0a0494ef8e It builds! With some shortcuts, of course. 2017-10-26 10:56:59 +02:00
Henrik Rydgård
417b96a1b0 Use RenderManager for thin3d stuff 2017-10-26 10:56:59 +02:00
Henrik Rydgård
84ed793adf Initial work on render queue manager 2017-10-26 10:56:59 +02:00
Henrik Rydgård
eabaf6ddcd Bit more Vulkan barrier cleanup. 2017-10-21 13:05:52 +02:00
Henrik Rydgård
804aa79376 Various Vulkan image transition fixes and related 2017-10-20 18:09:05 +02:00
Henrik Rydgård
5da165fad6 More work towards passing 1.61 Vulkan validation layers 2017-10-20 17:19:07 +02:00
Henrik Rydgård
d0b9e5ed8f Initial work on passing the latest Vulkan validation checks. 2017-10-20 14:47:36 +02:00
Henrik Rydgård
017d3da067 Allow D3D9 context creation to bail if shader compilation fails (D3D9 runtime not installed).
Fixes an issue where after switching to D3D9 on a PC without the D3D9 runtime, it's impossible to start PPSSPP anymore.
2017-10-20 11:53:07 +02:00
Henrik Rydgård
21d3c54401 Have GetFramebufferDimensions return the backbuffer size for null in all backends. 2017-10-20 11:11:04 +02:00
Henrik Rydgård
16e68aa7c7 Get rid of BindFramebufferForRead 2017-10-10 14:49:07 +02:00
Henrik Rydgård
8c1bfb876f Assorted cleanup of Vulkan init code. Show Vulkan extensions in system info. 2017-08-28 13:47:31 +02:00
Henrik Rydgård
7ddf704804 Vulkan: Fix bug sometimes causing the wrong renderpass to be ended at exit, causing crashes. 2017-08-18 17:24:03 +02:00
Henrik Rydgård
b9b2656e93 More vulkan microoptimizations. Add more profiler scopes. 2017-08-18 13:48:11 +02:00
Henrik Rydgård
560eaa5390 Vulkan: Add code (disabled) to be able to run with more in-flight frames. Only improves performance marginally and needs more testing. 2017-08-17 17:57:37 +02:00
Henrik Rydgård
0bf92a4fa2 Font rendering code runs but it sure ain't right 2017-06-05 23:09:11 +02:00
Unknown W. Brackets
83d017848e Vulkan: Allow blit/copy of depth or stencil only.
Docs say nothing about this not working, and it works on NVIDIA, from what
I can tell.
2017-06-01 20:58:33 -07:00
Henrik Rydgård
44423f3ba2 Vulkan: Implement BlitFramebuffer 2017-05-30 09:38:09 +02:00
Henrik Rydgård
4c8dc24834 Vulkan: Implement depth buffer copies. Not sure all the barriers are right.. 2017-05-30 09:38:08 +02:00
Henrik Rydgård
137b79c708 Fix more review comments. 2017-05-30 09:38:05 +02:00
Henrik Rydgård
f762285b9c Vulkan: Some barrier optimization 2017-05-30 09:36:17 +02:00
Henrik Rydgård
38b50501c2 Clearing fix, drawpixels fix/hack 2017-05-30 09:36:17 +02:00
Henrik Rydgård
c173da49d3 Fix a number of bugs and stuff affecting Vulkan on Mali 2017-05-30 09:36:17 +02:00
Henrik Rydgård
bd9f3af0bd Add a way to query the current renderpass (for debug checks) 2017-05-30 09:36:17 +02:00
Henrik Rydgard
0c70735bc4 Buffered rendering is starting to work, though still kinda broken. 2017-05-30 09:36:17 +02:00
Henrik Rydgård
2b93338255 Vulkan backend: Fix various issues, can almost run in buffered now (except the final blit) 2017-05-30 09:36:17 +02:00
Henrik Rydgard
32728553bd Further steps towards Vulkan framebuffer support 2017-05-30 09:36:17 +02:00
Henrik Rydgård
a7dd6d6085 Further steps towards Vulkan framebuffer support 2017-05-30 09:36:17 +02:00
Henrik Rydgård
6bcfe539f7 Use vulkan-style clear-on-bind when switching render targets. Not optimally used yet.
Also removes a bunch of redundant render target binds.
2017-05-30 09:36:17 +02:00
Henrik Rydgård
35aefe4a2a BindBackBufferAsRenderTarget is now replaced with BindFramebufferAsRT(nullptr) 2017-05-30 09:36:17 +02:00
Henrik Rydgård
3b6fa9be87 Start work on separating frame from backbuffer renderpass 2017-05-30 09:36:17 +02:00