Commit graph

680 commits

Author SHA1 Message Date
Unknown W. Brackets
cdf378d20c GLES: Prevent race condition on shutdown.
emuThreadState might become STOPPED before the last frame has been run,
which can cause WaitUntilQueueIdle to hang.

It's simpler just to wait until StopThread() is called, since it now is.
This will line up properly with run_.
2018-02-11 11:40:11 -08:00
Unknown W. Brackets
48b4a5f378 Android: Fix race condition on shutdown. 2018-02-10 16:55:48 -08:00
Henrik Rydgård
ae19c48138 Cleanup the Windows thread stuff to work like the other platforms. Not quite perfect yet. 2018-02-07 16:00:29 +01:00
Henrik Rydgård
7f30037e45 Android: Fix emuthread management to exit cleanly without hanging. Helps with task switching on Android. 2018-02-07 13:11:43 +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
26b146a247 Buildfixes 2018-01-30 12:28:44 +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
19ab367591 Fix some accidental extra-indentation 2018-01-28 19:26:42 +01:00
Henrik Rydgård
bd3a681fd3 Enough JNI/threading hackery to get it to run on Android! Broken readbacks make it crash alot though. 2018-01-28 17:30:33 +01:00
Henrik Rydgård
7abb8702ce Work towards threaded GL on Android. Now TextDrawer barfs on wrong JNI context. 2018-01-28 17:29:27 +01:00
Henrik Rydgård
fdca06d208 More work on shutdown, still hanging though. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
062608ad78 Start moving the framebuffer stuff over to the render manager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
5d3c1e7871 Additional header cleanup 2018-01-20 21:55:25 +01:00
Henrik Rydgård
133bef575a Split Android graphics context implementations into their own files. 2018-01-20 21:47:16 +01:00
Henrik Rydgård
1a97f62dc9 Fix running the CPU test from the UI. 2018-01-04 18:10:41 +01:00
Unknown W. Brackets
766b40aad8 GPU: Reset GPUBackend on graphics init.
This way, when using a port that doesn't support Vulkan, it doesn't just
silently use upside down GL, etc.
2017-12-26 16:02:55 -08:00
Unknown W. Brackets
d6da758ed3 GPU: Remove duplicate BACKEND constants. 2017-12-26 15:55:24 -08:00
Henrik Rydgård
2250ef799c Avoid including platform-specific headers in VulkanContext.h 2017-12-18 12:54:25 +01:00
Henrik Rydgård
6f0b382d9e Move vulkan debug callback out from WindowsVulkanContext into a file that can be shared with other platforms later. 2017-12-13 19:29:42 +01:00
Unknown W. Brackets
2943bbdbfd UI: Cancel loaders on shutdown.
Improves backend switching / locking / etc. performance when the recent
list has games that aren't currently available.

Also, remove unnecessary duplicate gameinfo flush on EGL loop shutdown.
Already happens in NativeShutdownGraphics().
2017-12-09 16:48:38 -08:00
Henrik Rydgård
58fd674bbf Try to fix build with the old Android build system too... 2017-12-08 10:25:42 +01:00
Henrik Rydgård
1076e358e0 Also update Application.mk for the old build system. 2017-12-07 23:47:54 +01:00
Henrik Rydgård
7d0fc9ce65 Rework GL lost-device to work more like Vulkan. Gets rid of gl_lost manager etc. 2017-12-07 15:05:59 +01:00
Unknown W. Brackets
9c046d7518 Android: Fix race condition on lock/unlock.
This might be related to the recreate from bad orientation - sometimes, it
was pause/resuming pretty quick, which would get stuck waiting for a join.
2017-12-03 20:32:17 -08:00
Unknown W. Brackets
79f03a0767 Android: Fix crash on shutdown/restart.
The text drawing textures needed to be deleted before shutting down their
allocator.  Fixes #10244.
2017-12-03 14:39:00 -08:00
Henrik Rydgård
51a6c67502 Crash in a more appropriate place if missing a drawcontext (happens on really weak devices only) 2017-11-29 19:29:53 +01:00
Henrik Rydgård
6ea669368c Crash reports from 5% rollout of 1.5: Make some asserts dbg_asserts for now, try to fix an issue with framebuffers when postproc is enabled. 2017-11-29 18:53:52 +01:00
Henrik Rydgård
234f30a372 Minor error checking improvement 2017-11-26 14:52:26 +01:00
Henrik Rydgård
ee759d83e3 Oops, android buildfix 2017-11-22 14:42:01 +01:00
Henrik Rydgård
b1fce1c61a Android: Fix #9697 where we'd hang if we lacked permission and got a filename as a command. 2017-11-21 13:55:14 +01:00
Henrik Rydgård
27a60f5e58 Fix message asserts on Android. Add more of them to check things in Vulkan code. 2017-11-20 12:11:47 +01:00
Henrik Rydgård
1fb7560a14 Android: When creating shortcuts, put the file path in data, not in Extras.
Actually, let's keep extras around now for very limited backwards compatibility but check data first.
2017-11-16 14:45:47 +01:00
Henrik Rydgård
a1e593b6ba Fix the "vulkan not found" message on android. Fixes #10034 2017-11-16 13:45:15 +01:00
Unknown W. Brackets
b1554ef061 Vulkan: Cut down on asserts during init.
In case something is horribly wrong, or our desired settings aren't
compatible, let's try to stumble our way out.

More things can fail, but the goal is to detect failure or at least be
able to render UI settings to swap out of Vulkan.
2017-11-12 21:56:55 -08:00
Henrik Rydgård
b8dc4d1fb8 Buildfixes for Android 2017-11-12 16:55:36 +01:00
Henrik Rydgård
1c76d28843 Avoid double-initializing the Vulkan backbuffer on startup. 2017-11-10 13:13:56 +01:00
Henrik Rydgård
ee768ca949 Logging improvements, avoid resetting the Android text drawer unnecessarily 2017-11-10 13:02:24 +01:00
Henrik Rydgård
3cc5d8f40a More minor vulkan fixes and cleanups. Don't actually call "Resized" if the size stays the same. 2017-11-10 12:41:06 +01:00
Henrik Rydgård
0a2b20bf59 More logging and tweaking 2017-11-10 12:09:42 +01:00
Henrik Rydgård
6eb58b1252 Keep the draw context up to date in a bunch of places. More logging. 2017-11-09 16:28:22 +01:00
Henrik Rydgård
ec504756e0 Vulkan: Improve init/shutdown logging on Android. Fix a bug where we'd not run InitDeviceObjects on GPU_Vulkan sometimes. 2017-11-09 16:02:05 +01:00
Henrik Rydgård
4e04780adc Upgrade glslang to a fresh version (used to compile Vulkan shaders). Might help #10065 ?) 2017-11-09 13:36:18 +01:00
Henrik Rydgård
c6c90d4cbc Improve Vulkan device selection mechanism to prefer discrete GPUs 2017-11-09 12:21:20 +01:00
Unknown W. Brackets
ebe9dcafde Vulkan: Wait for queue idle in DestroyBackbuffers.
Otherwise it's only done after destroying Draw, so no need to mutex.
2017-11-05 08:44:14 -08:00
Henrik Rydgård
5018e400f2 Remove some code duplication 2017-11-01 14:51:15 +01:00
Henrik Rydgård
ca7a2d06ca Vulkan: Implement stencil upload (for Star Ocean). 2017-11-01 14:18:39 +01: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
b9ba525de1 Don't call functions in asserts, they get compiled out in release... 2017-10-20 14:45:00 +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
Unknown W. Brackets
7db9dfb50b Headless: Reduce some duplication.
We can share the screenshot code for SDL.
2017-09-20 09:25:28 -07:00