Commit Graph

1420 Commits

Author SHA1 Message Date
Unknown W. Brackets
f65481668c Vulkan: Fix a log formatting issue. 2018-04-14 10:47:06 -07:00
Unknown W. Brackets
7811c03c3b Vulkan: Report old allocations when enabled. 2018-04-06 21:43:18 -07:00
Unknown W. Brackets
3445a82567 Vulkan: Allow reusing memory more aggressively.
This causes allocated slabs to get reused more, which means more smaller
slabs are kept around.  However, it also reduces fragmentation.
2018-04-06 21:42:32 -07:00
Unknown W. Brackets
1c253ee271 Vulkan: Add code to track allocator usage info.
This way we can potentially debug leaks, if any.
2018-04-06 21:42:32 -07:00
Henrik Rydgård
6505f7762c GCC buildfix (can't use things without definitions in templates).
Could also have included base/logging.h but meh.
2018-03-27 16:28:33 +02:00
Henrik Rydgård
d125fa00e1 Make sure the renderpass cache hashmap is never accessed from the main thread at runtime. Should help #10811 2018-03-27 14:45:41 +02:00
aliaspider
4113ba74f2 libretro: msvc build fix. 2018-03-24 22:47:12 +01:00
aliaspider
686717eb71 add missing include. 2018-03-24 11:40:16 +01:00
aliaspider
ed12b95091 Windows/Vulkan: use the width and height arguments in ReinitSurface when
provided.
2018-03-24 11:09:55 +01:00
Henrik Rydgård
da8d5fa280
Merge pull request #10767 from aliaspider/temp
fix cmake build for mingw and msvc.
2018-03-24 09:24:53 +01:00
aliaspider
f94e9b1e74 set _WIN32_WINNT to 0x0601 in stdafx.h 2018-03-23 22:54:12 +01:00
Henrik Rydgård
fb798cf6b2 Win32 textdrawer: Fix rare crash affecting Patapon 2 in savedata manager. See 10764. 2018-03-23 10:27:08 +01:00
aliaspider
54d9406713 fix mingw and msvc cmake builds. 2018-03-23 03:18:13 +01:00
aliaspider
8fcf93e462 vulkan: perform delete callbacks first since they can also queue
deletes.
2018-03-22 22:23:28 +01:00
aliaspider
fc9a5ff65c prevent use-after-free. 2018-03-22 22:10:05 +01:00
aliaspider
2d1128db76 fix va_list reuse without a va_copy. 2018-03-22 22:04:49 +01:00
Henrik Rydgård
f76e5e70a7 Enable FlushInstructionCache on UWP, it's been allowed finally.
Minor warning fixes, UWP buildfix

Retarget UWP project to latest SDK.
2018-03-20 20:30:33 +01:00
Henrik Rydgård
8f87a9f5c5 Vulkan: De-duplicate pipelines when storing cache
The new variety of renderpasses with different transitions causes
duplication. Hopefully drivers are smart enough to re-use work
between similar pipelines as much as possible...
2018-03-19 11:18:37 +01:00
Henrik Rydgård
216bab8a4a Vulkan: Fix a barrier to be more permissive, there's no outstanding writes from the GPU to wait for. 2018-03-18 09:57:17 +01:00
Henrik Rydgård
473c87273f Maybe slightly safer vulkan detection code. Might help #10732 2018-03-17 19:22:59 +01:00
Henrik Rydgård
08c3e13517 Do more detailed checks for Vulkan availability. Should hopefully solve #10729. 2018-03-17 11:36:16 +01:00
Henrik Rydgård
614cabb115 Implement pipeline/shader cache for Vulkan, to avoid shader compile stutters on second and subsequent runs.
The raw pipeline cache got pretty large. Instead, store IDs like GL.

There's still a disabled option to store the pipeline cache objects.
2018-03-16 21:03:03 +01:00
Henrik Rydgård
3cd92b4d90 Vulkan: Add a (disabled) facility to force image layouts to GENERAL, for debugging barrier issues 2018-03-15 16:23:23 +01:00
Henrik Rydgård
cd75c46d47 Sort Vulkan function pointers by use. Might save us a cacheline or two during command submission.. 2018-03-12 20:05:50 +01:00
Henrik Rydgård
9f9903c02e Fixes to vulkan restart logic on Android. Should help #10696 2018-03-11 17:14:11 +01:00
Henrik Rydgård
1e940f4973 Buildfix, warning fixes 2018-03-01 13:50:56 +01:00
Henrik Rydgård
ee752f5399 Some error handling and assert improvements, trying to understand #10662 2018-03-01 12:21:58 +01:00
Henrik Rydgård
83c82a5ebd GL: Fix depal issue where we forgot to set vp/scissor properly. Update some asserts. 2018-02-28 18:45:14 +01:00
Henrik Rydgård
39bf5b1f55 Minor naming and init cleanups in VulkanTexture 2018-02-26 10:50:29 +01:00
Henrik Rydgård
eb73cc23cd Some log level changes. 2018-02-26 10:48:29 +01:00
Henrik Rydgård
e1852321a0 Vulkan: Remove the old method of uploading images. 2018-02-25 12:15:29 +01:00
Henrik Rydgård
eb014e8c6b Try to be more consistent when initializing vulkan structs. 2018-02-25 12:15:29 +01:00
Henrik Rydgård
5f8118b82b Separate T3DCreate* into its own header to avoid including Windows.h etc in some cases. 2018-02-25 10:27:59 +01:00
Unknown W. Brackets
0e2a586c1b Global: Fix some type comparison/shadow warnings. 2018-02-11 07:03:23 -08:00
Unknown W. Brackets
2bec3bf3ac Windows: Trigger StopThread() on shutdown.
Otherwise, we end up hanging in the loop waiting for emuThreadState to
become STOPPED.  It actually has, but ThreadFrame() will block until a new
frame is queued... while will never happen, because the emuthread has
stopped.
2018-02-10 16:55:44 -08:00
Henrik Rydgård
c3629b4a53 Warning fixes 2018-02-04 13:42:04 +01:00
Henrik Rydgård
67b8c4527d b.sh: Add a build option for address sanitizer. When enabled, we turn on some compatibility options to make it work right. 2018-01-31 14:29:23 +01:00
Henrik Rydgård
22e28e218b
Merge pull request #10411 from hrydgard/gl-render-manager
GL render manager - new faster GL multithreading
2018-01-31 12:22:07 +01:00
Henrik Rydgård
c60c8ed68a Debug visualization for the Vulkan memory allocator. Shows some interesting behaviour. 2018-01-29 19:38:10 +01:00
Henrik Rydgård
fdca06d208 More work on shutdown, still hanging though. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
57615344e4 Fix for deletes, add some debugging stuff 2018-01-27 15:10:17 +01:00
Henrik Rydgård
af6431986d OpenGL: Now run GL on a secondary thread. Sync issues remain. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
2656ad7d40 Vulkan: Use push_back instead of resize(+1) 2018-01-27 15:10:17 +01:00
Henrik Rydgård
42f2312030 Remove the old CPU threading remains, start redesigning interfaces. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
60a966c5ec PushBuffer added. Thin3d works now on top of GLRenderManager, except framebuffers. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
133bef575a Split Android graphics context implementations into their own files. 2018-01-20 21:47:16 +01:00
Greg V
025c382b9b Check for Vulkan Xlib/Wayland surface support before enabling
The Vulkan loader will error if a requested extension is not available,
and the nvidia proprietary driver does not support the Wayland one.
2018-01-12 22:18:58 +03:00
Henrik Rydgård
b9726245ac Vulkan: Use VK_KHR_DEDICATED_ALLOCATION for frame buffers for minor speedup on some GPUs. Check for the debug report extension before enabling it. 2017-12-30 21:31:43 +01:00
Henrik Rydgård
25a9573f8b Typo fix 2017-12-30 21:30:31 +01:00
Henrik Rydgård
191c4ddb0d Add a bit of logging to try to figure out #10477 2017-12-30 21:04:05 +01:00