Commit Graph

1137 Commits

Author SHA1 Message Date
Unknown W. Brackets
70c78effb0 Use Android system props for CPU info fallback.
Some devices don't provide any useful information at all, such as the
Galaxy S7.
2016-05-23 21:18:57 -07:00
Henrik Rydgard
0a58424e75 Vulkan: Remove validation layer that is now included in standard_validation 2016-05-18 23:53:17 +02:00
Unknown W. Brackets
9cda186f4b Remove __TIME__ from Log.h.
This seems to cause more ccache misses, and I don't think it's terribly
useful really.
2016-05-14 10:40:21 -07:00
Henrik Rydgard
52517ab609 Fix the fix 2016-05-08 22:32:08 +02:00
Henrik Rydgard
ed0a0378d7 Another buildfix 2016-05-08 22:27:20 +02:00
Unknown W. Brackets
9280bb3eda Merge pull request #8715 from unknownbrackets/tex-replace
Initial texture replacement support
2016-05-01 09:58:16 -07:00
Henrik Rydgard
ffe4c266ef Add CodeBlockCommon base class to remove further arch-specificity in JitBlockCache
Remove unused ArmThunk.
2016-05-01 11:40:00 +02:00
Henrik Rydgard
a5be0976bd Remove preprocessor hacks to choose JIT implementation.
Opens up for having multiple JIT implementations available at runtime,
which could be use for experimenting with new JIT compiler types or for
unit testing one JIT on another architecture.

Very few of the newly virtual calls are on any sort of critical path so
hopefully there will not be a performance loss.
2016-05-01 11:39:53 +02:00
Unknown W. Brackets
9ffc717de1 Properly save 16-bit textures for replacements. 2016-05-01 00:30:47 -07:00
Henrik Rydgård
0c1e7dcc18 Use the OS to clear the CPU cache instead of the gcc builtin. Experiment for the S7 issues. 2016-04-09 16:16:45 +02:00
Henrik Rydgard
617bcebcd6 Update to latest vulkan header (1.0.8) 2016-04-07 22:53:37 +02:00
Henrik Rydgard
5cd3956575 Reformat VulkanContext.cpp (fix tab indentation) 2016-04-03 00:01:56 +02:00
Henrik Rydgard
e1f660ebc1 Update vulkan structure init to the new style 2016-04-02 23:57:23 +02:00
Henrik Rydgard
32f5930e15 Move clear handling to FramebufferVulkan, center the clear properly in non-buffered. more cleanup. 2016-03-31 00:50:50 +02:00
Henrik Rydgard
731af0d0b4 Add some infrastructure for 2D drawing, to be used by the Vulkan framebuffer manager 2016-03-31 00:49:10 +02:00
Henrik Rydgard
40d05e292c Cleanup in FramebufferVulkan to reduce the size of future diffs 2016-03-28 20:23:29 +02:00
Henrik Rydgard
a8c386b94c Make VulkanImage a little more flexible (make it possible to create depth images)
Just preparation.
2016-03-28 18:25:05 +02:00
Unknown W. Brackets
8dd93576ec Vulkan: Ignore queued frees after destroy.
We flush slabs so this gives false assertions in some cases.
2016-03-27 12:38:15 -07:00
Unknown W. Brackets
048a12f589 Buildfix.
Some compilers didn't like that, oops.
2016-03-27 09:25:25 -07:00
Unknown W. Brackets
3352608027 Vulkan: Free texture slabs on exit. 2016-03-27 08:30:43 -07:00
Unknown W. Brackets
16570f10bd Vulkan: Handle texture allocation failure.
Users hit out of memory even using desktop GL devices, and it will
definitely be possible on mobile and desktop Vulkan.
2016-03-27 08:30:42 -07:00
Unknown W. Brackets
27a5697a96 Vulkan: Use the slab allocator for textures. 2016-03-27 08:30:42 -07:00
Unknown W. Brackets
62b6432121 Vulkan: Allocate forwards in device slabs. 2016-03-27 08:30:41 -07:00
Unknown W. Brackets
87d65e696c Vulkan: Correct alloc near slab end. 2016-03-27 08:30:40 -07:00
Unknown W. Brackets
9921fd2ea7 Vulkan: Don't bother with extra userdata, comments.
Was a failed attempt to avoid new/delete.
2016-03-27 08:30:40 -07:00
Unknown W. Brackets
bd7c431532 Vulkan: Increase new size for new slabs. 2016-03-27 08:30:39 -07:00
Unknown W. Brackets
973a9f6124 Vulkan: Delay frees for device memory slabs. 2016-03-27 08:30:38 -07:00
Unknown W. Brackets
7d5a8aa470 Vulkan: Protect better against memory alloc errors. 2016-03-27 08:30:38 -07:00
Unknown W. Brackets
f0dc921ed5 Vulkan: Setup a pool memory manager for textures. 2016-03-27 08:30:37 -07:00
Unknown W. Brackets
e7ea1da99f Vulkan: Swizzle instead of converting colors. 2016-03-26 15:02:06 -07:00
Unknown W. Brackets
adc9946641 Vulkan: Ask for COHERENT staged texture memory. 2016-03-26 12:18:49 -07:00
Henrik Rydgård
b0329e8106 Merge pull request #8657 from unknownbrackets/vulkan-resize
Support resizing the screen on Vulkan
2016-03-22 09:22:58 +01:00
Unknown W. Brackets
963b18e6c2 Vulkan: Prep for resize, destroy surface on exit.
I suppose this is a validation layer bug, it didn't report the leak.
2016-03-21 19:41:20 -07:00
Henrik Rydgard
b97e02febe Typo fixes. Delete irrelevant comments 2016-03-21 20:23:53 +01:00
Henrik Rydgard
dff585e440 VulkanContext: Detect the appropriate depth buffer format to use, expose it.
This should help AMD compatibility.
2016-03-21 20:11:49 +01:00
Henrik Rydgård
6831f6fc46 Merge pull request #8650 from unknownbrackets/vulkan-buf
Vulkan: Cache only device in push buffers
2016-03-21 08:27:50 +01:00
Henrik Rydgård
2a35d4b4c5 Merge pull request #8653 from unknownbrackets/warnings
Warning fixes from clang
2016-03-21 08:27:25 +01:00
Unknown W. Brackets
2d34c0a8bc Vulkan: Free anything pending before the device.
This includes, for example, device memory and etc.
2016-03-21 00:02:59 -07:00
Unknown W. Brackets
9c3e12ead0 Remove some unused things reported by clang. 2016-03-20 23:14:08 -07:00
Unknown W. Brackets
d90527e41e Correct some missing overrides. 2016-03-20 23:05:05 -07:00
Unknown W. Brackets
6d947a057e Vulkan: Handle oversized push buf allocations. 2016-03-20 22:49:38 -07:00
Unknown W. Brackets
9fd040eed0 Vulkan: Cache only device in push buffers. 2016-03-20 22:49:38 -07:00
Unknown W. Brackets
e3d9630b9a Vulkan: Handle oom slightly better. 2016-03-20 15:25:59 -07:00
Unknown W. Brackets
9e4389cbf5 Vulkan: Defrag buffers when growing. 2016-03-20 15:20:42 -07:00
Unknown W. Brackets
f2513ffcd6 Vulkan: Allocate more buffers on overflow. 2016-03-20 15:15:13 -07:00
Unknown W. Brackets
ef1dc583a2 Fix various minor warnings. 2016-03-20 14:17:51 -07:00
Unknown W. Brackets
87eadad326 Fix a failed lock release warning. 2016-03-20 14:16:54 -07:00
Henrik Rydgard
0b1cfaf751 Be more economical with UBO pushbuffer space by reusing the last data when possible. 2016-03-20 19:35:31 +01:00
Henrik Rydgard
5d19f3dfb8 Decode vertex data directly into the vertex pushbuffer, saving a memcpy. 2016-03-20 19:35:03 +01:00
Henrik Rydgard
5d45413dab Fix a resource leak. Request COHERENT memory for pushbuffers. 2016-03-20 19:35:03 +01:00
Henrik Rydgard
2c61b1e763 Change the VulkanPushBuffer API to allow for adding support for dynamic growth 2016-03-20 19:35:03 +01:00
Henrik Rydgard
5d56537a16 Move VulkanPushBuffer into VulkanMemory.h 2016-03-20 19:31:02 +01:00
Henrik Rydgard
966cb89d41 Vulkan: Fix our use of dual source blending, re-enable if available. 2016-03-20 19:31:02 +01:00
Unknown W. Brackets
82f3df1e06 Vulkan: Initial support for aniso filtering. 2016-03-20 19:31:02 +01:00
Henrik Rydgard
da50370328 Split out VulkanTexture from VulkanContext.cpp/h into VulkanImage.cpp/h 2016-03-20 19:31:02 +01:00
Henrik Rydgard
e45c24b75f Show how much pushbuffer space is used each frame.
Optimizing this number (by avoiding redundant UBO uploads etc) will probably help performance.
2016-03-20 19:31:02 +01:00
Henrik Rydgard
84e649f74b Vulkan: Enable mipmapping 2016-03-20 19:31:02 +01:00
Henrik Rydgard
8a62724316 Upload PSP textures through a push buffer instead of image copy. More flexible. 2016-03-20 19:31:02 +01:00
Henrik Rydgard
5ea01ffff6 Add a secondary way to upload textures - through buffers. 2016-03-20 19:31:02 +01:00
Unknown W. Brackets
82205a4660 Handle Vulkan init errors more gracefully. 2016-03-20 19:31:02 +01:00
Henrik Rydgard
fe270c592a Typo fix 2016-03-20 19:31:02 +01:00
Henrik Rydgard
b0098f7961 Replace ugly workaround with VK_LAYER_LUNARG_unique_objects which prevents handle reuse.
See https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/121
2016-03-20 19:31:02 +01:00
Henrik Rydgard
575cc890b7 Turn off annoying "debug flicker" I used to see if we were swapping buffers properly early on
Also minor logging changes, refine the false-positive debug layer check
2016-03-20 19:31:02 +01:00
Henrik Rydgard
5ca012e83d Fix a bunch of new vulkan validation layer failures. 2016-03-20 19:31:02 +01:00
Henrik Rydgard
6e2e0bfa33 Should not specify the Vulkan patch version when requesting Vulkan 1.0. 2016-03-20 19:31:02 +01:00
Unknown W. Brackets
c92790c5a8 Specify a useful app version when loading Vulkan. 2016-03-20 19:31:02 +01:00
Henrik Rydgard
432fbe30d1 Vulkan: We're doing dual src blending wrong (GLSL part, not sure how to do it right) so disable it. 2016-03-20 19:31:02 +01:00
Henrik Rydgard
b06cf4e688 Re-fix depth buffer initialization 2016-03-20 19:30:39 +01:00
Henrik Rydgård
9c457da4c9 Gets the Vulkan backend running, but not drawing correctly, on Android.
Not sure what's wrong, I get a yellow flashing screen.
2016-03-20 19:30:39 +01:00
Scott Mansell
77420f799e VulkanLoader: Detect loader failure on windows. 2016-03-20 19:30:39 +01:00
Scott Mansell
e97a6c6f77 VulkanLoader: Load vkDestroySurfaceKHR 2016-03-20 19:30:39 +01:00
Henrik Rydgard
d325aa2b30 Hook up Vulkan on Android, no idea if it works. Move VulkanContext to Common. 2016-03-20 19:30:11 +01:00
Henrik Rydgard
2481714a8e Load Vulkan dynamically. Fix Android build (though - Vulkan is not working on Android yet) 2016-03-20 19:30:11 +01:00
Henrik Rydgard
4063f7e0db Fill out GPU_Vulkan.cpp with what's mostly a copy of GLES_GPU.cpp 2016-03-20 19:30:11 +01:00
Henrik Rydgard
2a71e164f5 Enable vulkan validation 2016-03-20 19:25:30 +01:00
Henrik Rydgard
2a449f78bb More vulkan fixing 2016-03-20 19:25:30 +01:00
Henrik Rydgard
eedd81988c Implement a trivial SPIR-V disassembler, just for fun 2016-03-20 19:18:35 +01:00
Henrik Rydgard
c8457d39ed Fix a bunch of compiler warnings, delete some unused code 2016-03-13 15:17:31 +01:00
Henrik Rydgard
ec6559537b Android EGL: Experiment: Only apply the 16-bit workaround on really old devices. 2016-03-13 15:17:31 +01:00
Unknown W. Brackets
f1f046d885 Remove now-unused mutex implementation. 2016-03-06 14:49:16 -08:00
Unknown W. Brackets
da03b80c97 Standardize on just one mutex implementation. 2016-03-06 14:49:15 -08:00
Henrik Rydgard
88f25fd50e x86-64: Fix L bit in VEX instruction emitter. Ported fix from Citra.
Currently unused in the emulator, though.
2016-02-28 13:07:24 +01:00
Henrik Rydgard
05d4caeeaf Buildfix 2016-02-21 12:14:44 +01:00
Henrik Rydgard
76e1d074ec Logging improvements in EGL init 2016-02-21 11:40:02 +01:00
Henrik Rydgard
35b6c7341b Fix a bunch of memory leaks, after enabling file+line-number memory leak tracking for the MS Debug CRT.
Few of these were serious, most were on-exit, but good to have a cleaner memory report after running.
2016-02-10 15:36:10 +01:00
Unknown W. Brackets
f1afb50fd1 Shutdown EGL properly when quitting render loop. 2016-02-07 16:30:40 -08:00
Henrik Rydgard
da528d15ad ARM32 emitter: Tighten up distance check for forward jumps. Was off by one. 2016-01-30 21:38:42 +01:00
Henrik Rydgard
e0cba1dd5a EGL: Try again with ES 2 if we fail to create an ES 3 context. 2016-01-24 11:33:02 +01:00
Henrik Rydgård
19b0858d5e Merge pull request #8490 from unknownbrackets/ui-tweaks
Show save state titles in the save state manager
2016-01-24 00:51:04 +01:00
Unknown W. Brackets
6a5096e546 Save the game title in savestates, if available.
So that the UI can show them.  Old savestates still load fine, just don't
have the title.
2016-01-23 12:56:36 -08:00
Henrik Rydgard
81fe914137 More EGL heuristics 2016-01-23 19:16:46 +01:00
Henrik Rydgard
1d6e48b817 Even more EGL logging 2016-01-23 18:42:05 +01:00
Henrik Rydgard
1a02274def A little bit more EGL logging 2016-01-23 18:31:34 +01:00
Henrik Rydgard
4155712113 Improve EGL logging, fallback to a really simple config if the normal one fails. May help #8469, if not may at least give us more info. 2016-01-23 13:17:53 +01:00
Henrik Rydgard
3ba911bf07 Replace some calls to fopen with File::OpenCFile (utf8). 2016-01-17 15:59:20 +01:00
Unknown W. Brackets
da78ec0b4d Use USING_WIN_UI for desktop Windows console. 2016-01-03 15:10:50 -08:00
Unknown W. Brackets
d165680ee7 Don't assume _MSC_VER / _WIN32 mean x86/x64. 2016-01-03 15:07:36 -08:00
Henrik Rydgård
b29f46f9ac Merge pull request #8363 from unknownbrackets/jit-alloc
Jit: Properly re-allocate when jit is freed a lot
2016-01-03 18:55:12 +01:00
Unknown W. Brackets
f3a616df24 Jit: Properly re-allocate when jit is freed a lot.
Fixes #8334.
2016-01-02 13:24:58 -08:00
Henrik Rydgard
ae3458ec6e Buildfixes linux 2016-01-01 14:40:17 +01:00