Commit Graph

1402 Commits

Author SHA1 Message Date
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
Unknown W. Brackets
9ff812b313 arm64jit: Negate in ADDI2R/SUBI2R as well.
Should've done this at the same time as CMN.  It's not as common, mostly
catches addu calls, but it's good to have these generic for other uses.
2017-12-30 11:11:04 -08:00
Unknown W. Brackets
c00044c5d8 arm64jit: Avoid arithmetic movs.
ORR is the preferred encoding and may be faster on some chips.
2017-12-29 17:30:18 -08:00
Unknown W. Brackets
b59c0d0b45 arm64jit: Use CMN for CMPI2R if possible.
It's not hit all that often, but it is hit.
2017-12-29 17:30:13 -08:00
Unknown W. Brackets
1ecce2a2e1 arm64jit: Reuse code in I2R funcs. 2017-12-29 17:30:07 -08:00
Unknown W. Brackets
b21af3321a arm64jit: Allow ANDI2R/etc. with zero.
Since they're all possible anyway, and it's easy to forget to special case
0.
2017-12-28 14:36:37 -08:00
Unknown W. Brackets
6fd17fb026 arm64jit: Use reg sum for LDR/STR.
Skips an add, and should be less ops anyway.
2017-12-28 10:19:55 -08:00
Unknown W. Brackets
257a4fdd12 arm64jit: Reprotect fixed code after icache flush. 2017-12-27 19:33:04 -08:00
Unknown W. Brackets
4a27e99ee9 arm64jit: Remove buggy icache invalidate.
This is always of size 0, and crashes on iOS anyway...
2017-12-27 19:30:10 -08:00
Greg V
52234dae91 Remove VULKAN_STATIC 2017-12-26 16:09:31 +03:00
Greg V
f3783bdb44 Add support for Vulkan on Wayland 2017-12-26 16:09:27 +03:00
Unknown W. Brackets
a7b3a1eb96 Vulkan: Decimate the texture allocator.
Thin3D wasn't calling Begin/End, which lead to leaks eventually and OOM.

Was causing softgpu to crash.
2017-12-24 10:39:42 -08:00
Henrik Rydgård
7f758d52dc Statically link a vulkan loader on Linux. Use to to init vulkan on X11. Unfortunately, it's broken. 2017-12-21 11:02:11 +01:00
Henrik Rydgård
ea387b2a48 WIP vulkan on linux stuff 2017-12-21 10:48:00 +01:00
Henrik Rydgård
b0528f3794 Vulkan: Fix bug where we'd do the initial layout transition for an image before binding memory to it. Should help the issue uncovered in #10413 2017-12-20 16:40:09 +01:00
Henrik Rydgård
2250ef799c Avoid including platform-specific headers in VulkanContext.h 2017-12-18 12:54:25 +01:00
Henrik Rydgård
ef66892f70 Update vulkan headers, add linux .so loader lib for easy builds, like Sascha does. 2017-12-15 16:40:38 +01:00
Henrik Rydgård
e488227398 Just some log cleanup 2017-12-15 16:33:49 +01:00
Henrik Rydgård
b4a44c5e02 Another buildfix, sigh. Also extend the safe region a little bit to the thing from a couple commits ago. 2017-12-13 22:28:30 +01:00