Commit Graph

971 Commits

Author SHA1 Message Date
Henrik Rydgård
0a413a18a7 GL render manager: Add some more dirty tracking. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
958078f603 GL render manager: Merge BindInputLayout into BindVertexBuffer. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
f99fa02ba7 Run the depal stuff, seems a bit broken. Add some state filtering. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
970458a0c2 Scissor fix 2018-01-27 15:10:17 +01:00
Henrik Rydgård
7c17cb6754 Fix showing savestate screenshots (needed mips) 2018-01-27 15:10:17 +01:00
Henrik Rydgård
1241abc887 Make sure we set GL_TEXTURE_MAX_LEVEL somewhere. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
9094410fd1 gl-render-manager: Need to actually bind newly created textures. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
8a1e7347b9 GL render manager: Various fixes and cleanup including a buffered rendering fix, rect primitive fix 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
7e3e652963 Fix more gl-render-manager problems 2018-01-27 15:10:17 +01:00
Henrik Rydgård
51f467a7b3 Kill off the GL state cache 2018-01-27 15:10:17 +01:00
Henrik Rydgård
f3282dcfda Delete the gl name cache (might resurrect it on the GLQueueRunner side if needed later). Other cleanup and fixes. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
46e1fbb788 Initial texture work. Bugfix indexed drawing 2018-01-27 15:10:17 +01:00
Henrik Rydgård
bd6818198a More GLRenderManager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
376d92fcc9 Start messing with the draw engine... 2018-01-27 15:10:17 +01:00
Henrik Rydgård
9340260802 Finish the shader manager (almost) 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
a3bcd91a31 Fix clears and textures. Things still broken due to memory overwrites. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
e1bb4441d8 First garbage graphics output! 2018-01-27 15:10:17 +01:00
Henrik Rydgård
b8e4ae08a7 Even more gl-render-manager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
9babdb712c More gl-render-manager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
dc72a8696f More work on gl-render-manager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
dd91cb0f8e Begin implementing GLQueueRunner and GLRenderManager 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
d4400b358a UI: Actually offset text shadow.
It wasn't actually visible before, since it was strictly underneath text
that was usually white.
2018-01-01 22:58:07 -08:00
Kentucky Compass
6a9a511337 add an include for PPSSPP_PLATFORM 2017-12-30 22:44:41 -08:00
Kentucky Compass
2a3c4408d2 Fix build on iOS (only iOS 9 and up support thread_local) 2017-12-30 20:57:45 -08:00
Henrik Rydgård
b9d0bf9842 Remove outdated comment. 2017-12-31 00:10:55 +01:00
Henrik Rydgård
b5e5d72a0a Complete the separation of depth and stencil renderpass flags 2017-12-30 22:52:22 +01:00
Henrik Rydgård
a0f718ace1 Start separating depth and stencil renderpass actions, only internally in the Vulkan code so far. 2017-12-30 22:40:57 +01:00
Henrik Rydgård
1e64919392 Vulkan: Create renderpass objects on demand. Just a refactoring to prepare for some later features/optimizations. 2017-12-30 22:35:43 +01: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
Unknown W. Brackets
52c4293896 Profiler: Show the slowest thread's categories.
May or may not be ideal, but this was the easiest solution...
2017-12-30 10:45:51 -08:00
Unknown W. Brackets
b9cd883811 UI: Only default focus visible things.
Also, default focus perm button.
2017-12-29 17:55:40 -08:00
Henrik Rydgård
8ebbb82c0a
Merge pull request #10459 from unknownbrackets/ui-resized
UI: Trigger view recreate on static sized screens
2017-12-27 11:07:35 +01:00
Unknown W. Brackets
c0f0bc88af UI: Trigger view recreate on static sized screens.
If a screen doesn't size via layout, it needs to recreate views on resize,
which is what the resized() method is for.
2017-12-27 01:13:47 -08:00
Unknown W. Brackets
56835fc017 Qt: Fix OpenGL init.
Needs to check extensions before creating thin3d, as others do.
2017-12-26 16:04:19 -08: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
Unknown W. Brackets
78ebe942ab Vulkan: Cleanup unused code. 2017-12-21 11:43:05 -08:00
Unknown W. Brackets
75aa65908c GLES: Pack without stride where possible.
This may possibly help #10425 in case the behavior is different when going
over width when reading pixels.
2017-12-21 11:41:53 -08:00
Henrik Rydgård
ea387b2a48 WIP vulkan on linux stuff 2017-12-21 10:48:00 +01:00
Henrik Rydgård
2bdae5b338
Merge pull request #10420 from hrydgard/core-cleanup
Some core cleanup
2017-12-20 11:25:11 +01:00
Henrik Rydgård
4f1e0de9a9 Add missing includes. Remove some more unnecessary #ifdef _DEBUG checks - the debugger is supposed to work in release mode too. 2017-12-20 11:24:05 +01:00
Henrik Rydgård
e8825666c9
Merge pull request #10419 from hrydgard/vulkan-init-cleanup
Avoid including platform-specific headers in VulkanContext.h
2017-12-20 10:56:32 +01:00
Henrik Rydgård
740d0504ad Move QtMain.cpp and PCMain.cpp to more sensible locations. Native isn't standalone anymore... 2017-12-19 18:04:26 +01:00
Henrik Rydgård
1a5d1081f9 Get rid of the old custom "Event" sync primitive. 2017-12-19 15:38:18 +01:00
Henrik Rydgård
2822a4f187 Win32: Use the standard thread APIs to manage the emu thread. 2017-12-19 15:27:56 +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
e488227398 Just some log cleanup 2017-12-15 16:33:49 +01:00
Unknown W. Brackets
09bbd58b62 UI: Allow skipping transitions on set current tab. 2017-12-12 21:34:17 -08:00
Unknown W. Brackets
e7c9bb2a17 UI: Fix AnchorLayout size when wrapping content.
Without this, they don't actually report back their measured size when
they are set to wrap content, but just keep 0.
2017-12-12 00:19:38 -08:00
Unknown W. Brackets
d9282d4e76 UI: Pass UNSPECIFIED through on scroll views.
Otherwise we could end up with zero width things, just because they wrap
content.
2017-12-12 00:18:37 -08:00
Unknown W. Brackets
52ee2f7790 UI: Give ItemHeaders intrinsic size. 2017-12-12 00:16:05 -08:00
Unknown W. Brackets
48c0407f21 UI: Add flex pressure to tab content.
On vertical game settings, didn't end up with size at all.  But even with
that fixed, they don't properly fill their parent.
2017-12-11 23:05:08 -08:00
Unknown W. Brackets
ed2ac95bbb UI: Always clip tab contents.
So they don't overlap tabs or etc. on transition.
2017-12-10 14:57:58 -08:00
Unknown W. Brackets
21272a4c24 UI: Clip scissor to screen. 2017-12-10 14:57:57 -08:00
Unknown W. Brackets
f3c01cf19c UI: Transition tab strips on select.
Following their orientation setting.
2017-12-10 14:57:56 -08:00
Unknown W. Brackets
753e59c027 UI: Allow negative left/right for anchor layouts. 2017-12-10 14:57:56 -08:00
Unknown W. Brackets
6783394ae1 UI: Add tween for translating anchor offsets. 2017-12-10 14:57:55 -08:00
Unknown W. Brackets
bab66e8542 Windows: Fix UI text measurements with &.
These APIs don't take into account &&, which caused Homebrew && Demos to
be too wide.
2017-12-10 14:57:54 -08:00
Henrik Rydgård
da3a7fbc5f
Merge pull request #10385 from unknownbrackets/ui-tween
UI: Add a soft fade when selecting choices / etc.
2017-12-10 23:11:37 +01:00
Unknown W. Brackets
bdac150aab UI: Reset transitions after too long a time. 2017-12-10 12:21:57 -08:00
Henrik Rydgård
bb530ea21c Make a minor correction to Vulkan driver version display. 2017-12-10 19:11:00 +01:00
Unknown W. Brackets
b00f6ac8c1 UI: Transition button and item focus/presses.
Just a quick touch of transition.
2017-12-10 09:00:53 -08:00
Unknown W. Brackets
6194ef60be UI: Add an event for tween finish. 2017-12-10 09:00:53 -08:00
Unknown W. Brackets
46ea88e096 UI: Add delay to tweens.
Also allow them to start out in an invalid state and accept first divert.
2017-12-10 09:00:52 -08:00
Henrik Rydgård
2031b2a4cd And yet another case of the same problem as the previous commit. 2017-12-10 14:50:34 +01:00
Unknown W. Brackets
7b6e73b37a UI: Always apply tweens after restore.
Fixes "Loading game..." persisting on load state, since that view was
created VISIBLE, and the tween wasn't making it INVISIBLE.
2017-12-09 18:18:23 -08:00
Unknown W. Brackets
cf6ccfca99 UI: Persist tween data on view recreate. 2017-12-09 14:10:42 -08:00
Henrik Rydgård
99b34c7b45 Use glslang to translate GLSL 1.x postshaders to GLSL 3.0 or later to appease strict GL Core drivers. Should fix #10362
Fixed small bugs, now tested and working on mac.

Add spirv-cross to cmake build
2017-12-08 10:25:42 +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
Henrik Rydgård
bd40479224 Vulkan: Add facility to auto-generate mipmap levels. Not yet used.
Intended for replacement textures and optional quality improvements
later.
2017-12-07 09:28:18 +01:00
Henrik Rydgård
cf5ede493b
Merge pull request #10247 from unknownbrackets/ui-tween
UI: Show a loading message during shader preload
2017-12-06 14:24:21 +01:00
Henrik Rydgård
e3eb6d36b1
Merge pull request #10113 from unknownbrackets/core-context
Request a core profile in OpenGL (after 1.5.0)
2017-12-06 14:10:58 +01:00
Henrik Rydgård
85b743c732 Just some debug output for future decisions 2017-12-05 11:42:51 +01:00
Henrik Rydgård
c4e8c509d6 RIFF: Add check for truncated files, cleanup a little more. 2017-12-04 18:01:51 +01:00
Henrik Rydgård
b3b57f1b47 Try to protect against bad data in RIFF files (used for menu background audio only) 2017-12-04 17:41:06 +01:00
Henrik Rydgård
b47251dbd4 Even more cleanup of RIFFReader 2017-12-04 17:34:47 +01:00
Henrik Rydgård
210b70ff0c Kill off more unused code in RIFFReader 2017-12-04 17:30:16 +01:00
Henrik Rydgård
1c0a0fefdb Remove write support from chunk_file, rename to RIFFReader 2017-12-04 17:27:47 +01:00
Henrik Rydgård
14a263d5b6 Reformat chunk_file. Don't usually reformat whole files, but this was too ugly to work on :P 2017-12-04 17:23:29 +01:00
Henrik Rydgård
ab95dcae91
Merge pull request #10249 from unknownbrackets/minor
More minor cleanups
2017-12-04 09:49:44 +01:00
Unknown W. Brackets
5846016247 Vulkan: Allow shutdown with init commands.
On startup, when immediately shutting down, there will be init commands
from creating the backbuffers.  Rather than fight this, just free them.

This fixes hangs when locking/unlocking Android.
2017-12-03 20:32:17 -08:00
Unknown W. Brackets
a5998e6dc7 Vulkan: Swap in more forceful asserts.
Just in case of unexpected format issues.
2017-12-03 19:22:03 -08:00
Unknown W. Brackets
715a7b7318 Global: Silence some unused declaration warnings.
These things aren't used on Android.
2017-12-03 19:22:03 -08:00
Unknown W. Brackets
c29ae5ff56 fixup! UI: Ensure tweens always complete. 2017-12-03 11:49:34 -08:00
Unknown W. Brackets
f23c7cf93b UI: Apply tweens on Update(). 2017-12-03 10:40:09 -08:00
Unknown W. Brackets
e32545b9c9 UI: Ensure tweens always complete. 2017-12-03 10:28:53 -08:00
Unknown W. Brackets
b4b850bce8 UI: Add a simple tween class. 2017-12-03 09:39:50 -08:00
Unknown W. Brackets
7ab3e58dec UI: Add colorBlend() helper. 2017-12-03 09:39:28 -08:00
Unknown W. Brackets
66832d2180 SDL: Use core profile, fixing old Mac GL issues.
This applies to all platforms, but falls back to a compat profile if
core is not available.
2017-12-03 07:00:55 -08:00
Henrik Rydgård
6abdbde47e Fix bugs in VulkanImage allocator support 2017-12-03 10:50:25 +01:00
Henrik Rydgård
d0c248368d Use a VulkanDeviceAllocator for thin3d textures. Many devices have a hard limit on the total number of allocs and it's unnecessary to have the UI put pressure on that. 2017-12-03 10:29:41 +01:00
Henrik Rydgård
4c114c1b1a
Merge pull request #10236 from unknownbrackets/text-wrap
UI: Fix text wrapping issues
2017-12-03 02:19:41 +01:00
Unknown W. Brackets
4ad7107151 UI: Wrap text properly with explicit newlines.
Fixes the non-Android part of #10217.
2017-12-02 14:38:59 -08:00
Unknown W. Brackets
68a5861f60 UI: Send messages to dialog parents by default.
If it has no sendMessage(), it probably still makes sense to send to the
parent (especially cpu change, clear cache, etc.)

This fixes the ability to change CPU cores ingame, and also fixes other
settings which weren't properly clearing caches.
2017-12-02 11:55:04 -08:00
Henrik Rydgård
b84c15c663 Vulkan: Remove misguided assert about backbuffer clearing mode. 2017-12-02 11:05:10 +01:00
Henrik Rydgård
5fbbb3e115 Try a silly workaround for an otherwise unexplainable crash seen in Google Play Console 2017-12-01 19:56:53 +01:00
Henrik Rydgård
04515946e6 Comment, minor cleanup 2017-12-01 18:47:01 +01:00
Henrik Rydgård
44b6300760 Checks and paranoia in response to a crash report.. 2017-12-01 12:17:10 +01:00
Unknown W. Brackets
9a71ac726b Module: Stop reporting bad magic numbers.
We get these a lot, and they seem to be related to corrupt isos, not
related to actual emulation issues we can do anything about.

Even if there's a game trying to load an SFO as a PRX out there somewhere,
we'll never find it among all the noise.
2017-11-30 15:17:02 -08:00
Henrik Rydgård
b6f69b71ab Still seeing asserts in this function, weakening remaining to debug-only.. but these really shouldn't trigger. 2017-11-30 16:29:15 +01:00
Henrik Rydgård
b4bca7d7a0 VKRFramebufer: Just some checks to be slightly safer in case creation failed.. 2017-11-30 01:26:59 +01:00
Henrik Rydgård
0d60c3f386 Fix UI crash when keyboard navigating out of popup list. 2017-11-30 01:21:03 +01:00
Henrik Rydgård
b52285287d Vulkan: Avoid duplicate image pre-transitions (actually eliminated later anyway, but a small saving) 2017-11-30 00:40:55 +01:00
Henrik Rydgård
168d89284c Vulkan transitions after render: Add a missing case that seems like it could be common? 2017-11-29 22:14:01 +01:00
Henrik Rydgård
04913be779 Move pushbuffer map/unmap to the .cpp file to avoid inlining (for stack traces) 2017-11-29 20:13:38 +01:00
Henrik Rydgård
bc959470e5 Loosen up some asserts that seem to trigger unexpectedly... need investigation. 2017-11-29 19:07:07 +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
Unknown W. Brackets
affb57bd23 UI: Fix alphaMul clamping. 2017-11-25 14:08:51 -08:00
Unknown W. Brackets
bd1ed897cf Global: Fix some warnings. 2017-11-25 14:08:49 -08:00
Henrik Rydgård
bfec850933 Revert "Temporary hack (see #10163): Ignore the VK_ERROR_INITIALIZATION_FAILED from vkQueueSubmit."
This reverts commit 50cd4a56cb.
2017-11-24 10:36:50 +01:00
Henrik Rydgård
50cd4a56cb Temporary hack (see #10163): Ignore the VK_ERROR_INITIALIZATION_FAILED from vkQueueSubmit. 2017-11-24 09:20:22 +01:00
Unknown W. Brackets
3431653791 UI: Draw actual, not aligned, text width.
No need to overdraw.
2017-11-23 09:05:17 -08:00
Unknown W. Brackets
826e9d2ee1 UI: Clear font bitmap after aligning size.
Otherwise we get remnants from previous draws, oops.
2017-11-23 09:04:15 -08:00
Henrik Rydgård
c04ead1023 When drawing text using our truetype backends, round coordinates to pixels. Fixes #10180 2017-11-23 15:07:59 +01:00
Henrik Rydgård
3ecd7b4c02 Get rid of collision-prone font cache keys. Stress the font cache a little less on slider dialogs. 2017-11-22 22:44:34 +01:00
Henrik Rydgård
e6be86ce74 ARM buildfix 2017-11-22 11:01:42 +01:00
Henrik Rydgård
b6911d2764 Add a hidden debug option [Graphics]GfxDebugSplitSubmit to try to narrow down some Vulkan issues, see #10163. Also improve some asserts. 2017-11-22 10:47:04 +01:00
Henrik Rydgård
33e500a681
Merge pull request #10168 from hrydgard/gpu-vendor-detect
Cleanup GPU vendor detection a bit, use it to avoid the issue mentioned in #9545
2017-11-21 20:51:31 +01:00
Henrik Rydgård
2e9d59ad10 Android: Use __android_log_assert facility to get pretty message-asserts into crash dumps. 2017-11-21 18:06:26 +01:00
Henrik Rydgård
fde26e9472 Fix gl scissor rect issue. Fixes #10119 2017-11-21 16:45:29 +01:00
Henrik Rydgård
2c86217552 Cleanup GPU vendor detection a bit, use it to avoid the issue mentioned in #9545 2017-11-21 16:19:28 +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
766ddf9148 Temporarily turn off Vulkan threading on AMD, see issue #10097. 2017-11-16 21:40:00 +01:00
Henrik Rydgård
de67c9feff Vulkan screenshots: Fix R/G swap bug. Thanks unknown. 2017-11-15 17:07:38 +01:00
Henrik Rydgård
96d6f1cae5 Make sure the device supports transfers from swapchain images when taking screenshots. 2017-11-15 13:57:22 +01:00
Henrik Rydgård
10792cc8e7 Windows/Vulkan: implement screenshots. Something is iffy with the red/blue swap though... 2017-11-15 13:18:29 +01:00
Henrik Rydgård
3594623a8d Vulkan: Show the preferred depth-stencil format in the feature list. 2017-11-15 09:08:30 +01:00
Henrik Rydgård
8bfdf7b1b2 Fix annoying little flicker when starting a game. 2017-11-13 15:45:31 +01:00
Henrik Rydgård
d02bb59dd7
Merge pull request #10115 from hrydgard/unify-spline-bezier
Unify Execute_Spline and Execute_Bezier
2017-11-13 11:21:38 +01:00
Henrik Rydgård
14e9c9da80 Minor cleanup, fix a comment. 2017-11-13 10:35:31 +01:00
LunaMoo
a84a336787 Nitpicking! Correct minor version for non Nvidia. 2017-11-13 10:21:40 +01:00
Henrik Rydgård
c3c4ec4cc9
Merge pull request #10111 from unknownbrackets/vulkan-minor
Vulkan: Cut down on asserts during init
2017-11-13 09:50:30 +01:00
Henrik Rydgård
68c7b7dfec Fix driver version display on Vulkan. Enable dualsrc blend on newer AMD drivers. Fixes #10109 2017-11-13 09:44:35 +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
232e30f4db Vulkan: When deriving stencilref from color, don't forget to update the value.
Plus minor cleanups.
2017-11-12 19:33:21 +01:00
Henrik Rydgård
93e148fed6 Vulkan: Implement post-processing. The Vulkan backend is now "feature-complete", and GL is now legacy :P
Bit hacky but works.
2017-11-12 16:12:26 +01:00
Henrik Rydgård
afa5b23abb Vulkan readback: Resize the readback buffer dynamically as necessary. 2017-11-12 09:54:30 +01:00
Unknown W. Brackets
ffbdb15975 SoftGPU: Fix crash when stride is 0.
This happens in Star Ocean 1.
2017-11-11 17:45:47 -08:00
Henrik Rydgård
edfea7aed3 Remove unused pointer. 2017-11-11 20:22:45 +01:00
Henrik Rydgård
e18a023ce8 Vulkan: Noticed a framebuffer refcount leak, and changed my mind regarding those :) Let's do it this way instead. 2017-11-11 19:41:43 +01:00
Henrik Rydgård
9519b89056 Experimenally disable dual source blending on AMD too for Vulkan, see #10065 2017-11-10 18:28:38 +01:00
Henrik Rydgård
378e01625c Fix a few more device-loss bugs. 2017-11-10 15:10:36 +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
f3eeafc728 Change Android logging ID from "NativeApp" to "PPSSPP" 2017-11-10 12:37:54 +01:00
Henrik Rydgård
0a2b20bf59 More logging and tweaking 2017-11-10 12:09:42 +01:00
Henrik Rydgård
8b42d83123 Vulkan: Remove duplicate depalShaderCache, fix a number of instances where we didn't use the deleter properly.
Plus more logging, of course.
2017-11-09 17:25:37 +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
ba846fdbc5 Show textual names of Vulkan GPU vendors 2017-11-09 12:30:07 +01:00