Commit Graph

1690 Commits

Author SHA1 Message Date
Henrik Rydgård
9d65ff8873 Silence a few warnings. 2019-09-24 23:10:18 +02:00
Henrik Rydgård
e6a76e2956 Vulkan: Update API headers.
Mostly to get VK_EXT_exclusive_fullscreen for later.
2019-09-23 23:38:18 +02:00
Henrik Rydgård
2467fddc01 Vulkan GPU profiler: Measure the CPU time spent on the render thread recording command buffers. 2019-09-18 00:16:08 +02:00
Henrik Rydgård
50920266d1 Remove some logging, add a comment. 2019-09-17 10:52:28 +02:00
Henrik Rydgård
0462c01228 Workaround ARM Mali depth hardware bug. Fixes #11937
When triangles coincide with the Z=1 plane in specific ways, triggered
by Burnout Legends' sky for example, the depth buffer gets corrupted.

This is worked around here by slightly rescaling Z. This type of
workaround is recommended by ARM driver engineers.

Ugly but what can you do when the hardware is bugged. I've done quick
tests on a number of games with no issues.
2019-09-08 23:44:26 +02:00
Henrik Rydgård
2439c3efb1
Merge pull request #12306 from hrydgard/mali-driver-version-detection
Improve Mali driver version detection
2019-09-04 22:45:34 +02:00
Henrik Rydgård
025a9f4dae Improve Mali driver version detection 2019-09-04 21:46:07 +02:00
Henrik Rydgård
ab3c9fc21f Vulkan: Move scissor/viewport rotation into the VulkanRenderManager. Fixes #12303. 2019-09-03 23:26:44 +02:00
Henrik Rydgård
3af7229abc Bump up the descriptor pool size for the UI. Should fix #12299. 2019-09-02 18:39:10 +02:00
Henrik Rydgård
7bb6febc32 Add a few more checks. 2019-08-22 09:23:02 +02:00
Henrik Rydgård
05b2e11c5c Vulkan: Prevent some bad merging of renderpasses. Thanks Unknown for writing it up. 2019-08-21 21:30:36 +02:00
Henrik Rydgård
773cb5fa70 Stop renderpass merging at readbacks. 2019-08-21 21:13:56 +02:00
Henrik Rydgård
597b034b5c Minor optimization 2019-08-21 20:32:23 +02:00
Henrik Rydgård
93412aff3b Vulkan: Automatically merge render passes to the same target when possible.
Should speed things up a bit on mobile in some games that do stupid
things like GoW. Currently only enabled in GoW, but plan to enable this
globally as it should be quite cheap when nothing is detected.
2019-08-21 20:32:23 +02:00
Henrik Rydgård
e3f1e563f2 Improve renderpass profiling descriptions a little 2019-08-21 18:31:01 +02:00
Henrik Rydgård
66609b395f Vulkan: Profile individual render passes/steps. 2019-08-21 16:47:46 +02:00
Henrik Rydgård
06a71fdf49 Get rid of numQueries 2019-08-21 10:30:57 +02:00
Henrik Rydgård
5fcac1a9e2 Vulkan: Disable some bad validation. Things are right and work fine. 2019-08-21 10:23:36 +02:00
Henrik Rydgård
19a443819b Bugfixes to VK gpu profiling. Properly get the valid bits. 2019-08-21 09:02:40 +02:00
Henrik Rydgård
653afeb7ab Vulkan: Implement basic integrated GPU profiling.
Currently simply measures the total GPU time of the frame. Will later be
extended to get the execution time of individual render passes.
2019-08-21 00:03:00 +02:00
Unknown W. Brackets
010da8080c UI: Fix crash with no buttons in popup. 2019-08-18 12:00:21 -07:00
Unknown W. Brackets
4e3e00302b
Merge pull request #12253 from unknownbrackets/ui-hostname
Cleanup UI hostname entry
2019-08-18 10:33:08 -07:00
Unknown W. Brackets
30dcc2a13a UI: Validate address entered in settings. 2019-08-18 10:12:22 -07:00
Unknown W. Brackets
f52afb48ac UI: Cleanup hostname entry to use a dialog. 2019-08-17 17:18:43 -07:00
Unknown W. Brackets
8d3a4fae8e iOS: Ignore gl3stubInit() on iOS, to avoid warnings.
It always returns true anyway.
2019-08-17 12:01:22 -07:00
Unknown W. Brackets
3e51fc5a89 GPU: Avoid some unused var/func warnings. 2019-08-17 12:01:22 -07:00
Henrik Rydgård
d0a3410875 Typo fix 2019-08-13 00:22:47 +02:00
Henrik Rydgård
49e64f10d4 Minor code cleanup 2019-08-12 23:36:35 +02:00
Henrik Rydgård
ddb5208130 Vulkan: Reduce the amount of redundant stencil parameter sets 2019-08-12 23:19:07 +02:00
Henrik Rydgård
cf06b4a947 Vulkan: Image views: The driver is probably smart enough to recognize a no-swizzle, but let's use the proper method. 2019-08-12 23:09:47 +02:00
Silent
4da4e6a97a
Start as many worker threads as actually used (used to start more) 2019-08-11 14:03:54 +02:00
Silent
1a992bf023
Store std::thread in worker thread class by value and explicitly start it up, and don't use shared_ptr in thread pools 2019-08-11 14:03:53 +02:00
Silent
34109afb2d
Cleanup mutex usage in worker threads 2019-08-11 14:03:53 +02:00
Silent
400a6f3057
Remove 'started' bool from worker threads, as fixes for spurious wakeups made it obsolete 2019-08-11 14:03:53 +02:00
Silent
0639ffcfb5
Handle spurious wakeups on worker thread condition variables properly 2019-08-11 14:03:53 +02:00
Silent
6ac41a5767
Use move semantics for worker thread functors 2019-08-11 14:03:52 +02:00
Silent
1add9324a4
Clean up ThreadPool and WorkerThread constructors with C++11 features,
removes variable instantiation from constructor initializer lists
2019-08-11 14:03:52 +02:00
Henrik Rydgård
213e2ccefc Vulkan: Add missing barrier when rendering to a target that's already in COLOR_OPTIMAL layout.
Fixes #12215
2019-08-08 15:38:09 +02:00
Henrik Rydgård
3b0624ff9f Some changes and asserts. 2019-08-08 14:07:53 +02:00
Henrik Rydgård
ebe64c60e9 Vulkan: Improve the Metal Gear Acid 2 performance hack. 2019-08-08 11:49:35 +02:00
Cameron Cawley
ba7ea39a1c Move NKCodeFrom*.h into the relevant platform folders 2019-08-06 16:12:19 +01:00
Henrik Rydgård
75e2366a6d Vulkan: Actually fix #12202, an array was out of scope where it was used, causing garbage flags. 2019-08-01 17:46:46 +02:00
Henrik Rydgård
3d6bd6f0df Vulkan: Using VK_DEPENDENCY_BY_REGION on the backbuffer subpass causes tearing, let's not do it. Fixes #12202. 2019-08-01 14:56:58 +02:00
Henrik Rydgård
719aebfb8c Android: Disable building HLSL support in glslang, works around #12105 2019-07-23 22:57:06 +02:00
Unknown W. Brackets
c77f5da9ea Config: Don't save empty sections. 2019-07-14 15:07:13 -07:00
Unknown W. Brackets
ecf509c362 Config: Add game name to game-specific inis. 2019-07-14 15:07:03 -07:00
Unknown W. Brackets
c3ae97e237 Travis: Build Windows on Travis too. 2019-07-06 14:56:29 -07:00
Silent
2479427992
Windows: Properly check for hidden files when enumerating files 2019-07-02 19:17:52 +02:00
Henrik Rydgård
c5b9e9f718 Comment some confusing code 2019-06-25 21:37:40 +02:00
Henrik Rydgård
6cf97c4cee
Merge pull request #12123 from unknownbrackets/http-redirect
Support HTTP redirects in downloads
2019-06-24 12:28:09 +02:00
Henrik Rydgård
44685a7318
Merge pull request #12125 from unknownbrackets/debugger
Debugger: Fix subtexture readback crash
2019-06-24 06:52:27 +02:00
Unknown W. Brackets
3de796779c Debugger: Fix subtexture readback crash.
When the texture image is scaled, we don't properly know its size, so we
were allocating too small of a buffer.  Since this is only used for
debugging, let's just get the actual texture size.
2019-06-23 15:30:30 -07:00
Unknown W. Brackets
94e6950d48 http: Support redirects for load URL too.
Might as well, especially to keep old recent entries working.
2019-06-23 13:12:13 -07:00
Unknown W. Brackets
c5e2c0e6cd http: Support relative redirects too.
Per HTTP/1.1.
2019-06-23 12:22:10 -07:00
Unknown W. Brackets
17bc6a5a2d http: Support redirects for downloads. 2019-06-23 12:04:59 -07:00
Unknown W. Brackets
8c282db225 UI: Clear queued events on Event destruct.
May help a crash seen in #11890.
2019-06-23 11:13:14 -07:00
Unknown W. Brackets
65ac59021c Debugger: Fix connection in Firefox.
Firefox now requires HTTP/1.1 or higher, which is reasonable since 1.0 is
ancient.  The Upgrade response and WebSocket protocol handling are all
HTTP/1.1 safe, so let's just support both versions.
2019-06-22 22:09:05 -07:00
Henrik Rydgård
b8bde71efe Address feedback, delete some unused code. 2019-06-22 22:15:09 +02:00
Henrik Rydgård
ee294251c9 Fix the 270 degree rotation case 2019-06-21 11:58:41 +02:00
Henrik Rydgård
e943724905 Vulkan: Apply the desired pretransform when drawing to the backbuffer.
This should save a lot of memory bandwidth on mobile devices that can't
rotate images natively in the display engine. Fixes #12099.
2019-06-21 09:38:51 +02:00
Henrik Rydgård
8db14a3f67 Buildfix for cmake builds 2019-06-20 23:32:51 +02:00
Henrik Rydgård
2ed535af29 Update SPIRV-Cross 2019-06-20 00:41:47 +02:00
Henrik Rydgård
04335fe0f8 Upgrade glslang to latest 2019-06-20 00:35:19 +02:00
Henrik Rydgård
b7f43c265b Vulkan: Upgrade to latest headers 2019-06-20 00:30:08 +02:00
Henrik Rydgård
eb3faf5370 Fix some further static analysis warnings 2019-06-18 01:08:25 +02:00
Henrik Rydgård
a0dc85a9d7 Fix a bunch of inconsequential uninitialized variables 2019-06-18 00:18:40 +02:00
driver1998
2db67e1705 TextDrawerUWP: oops, forgot to release the objects used. 2019-06-07 21:50:00 +08:00
driver1998
eb9581b43e UWP: fix && in English UI labels 2019-06-07 05:40:06 +08:00
driver1998
8fab38ecdd TextDrawerUWP based on DirectWrite 2019-06-07 05:20:21 +08:00
Silent
6639a550f1
Improve WordWrapper:
- When wrapping before word, left trim whitespaces to prevent newlines from starting indented
- Change lastLineStart_ to size_t to cut down on nasty typecasts
- Replace operator += with explicit call to append to make intent more clear and reduce memory allocations
2019-05-30 19:24:31 +02:00
Silent
bb2ba8086b
Improved Show in Folder:
- Not spawning cmd.exe anymore, rather using the same way Chromium does to spawn a shell window with a file focused
- Hid a nonfunctional "Show In Folder" button for UWP builds
2019-05-23 19:59:08 +02:00
Henrik Rydgård
efa1406d8f VS2017: Add hack to automatically select the newest installed Windows 10 SDK. VS2019 already does this by default if you specify 10.0.
Should hopefully fix the buildbot.
2019-05-19 15:23:25 +02:00
Cameron Cawley
8afc2b72ef Remove base/arch.h 2019-05-15 20:06:23 +01:00
driver1998
eb99044a4f Fix d3d11_loader on x86 2019-05-12 11:17:54 +08:00
driver1998
21d2008676 Use D3DCompiler_47.dll for D3D9 context. 2019-05-12 11:17:10 +08:00
Henrik Rydgård
a7ab5d5dba Oops, missed these two 2019-05-10 23:46:31 +02:00
Henrik Rydgård
ff65b813d9 Assorted warning fixes 2019-05-10 23:26:34 +02:00
Henrik Rydgård
2f26297062 Clean up some more ifdefs 2019-05-10 23:25:57 +02:00
Henrik Rydgård
20d666ff55 Remove DbgNew.h forced include in ARM debug builds, doesn't work for some reason. 2019-05-10 23:18:31 +02:00
Henrik Rydgård
1f40aa4828 Add WindowsSDKDesktopARM64Support to vcxproj files 2019-05-10 22:44:12 +02:00
Henrik Rydgård
22d9ab4dbe Fix #12023, accidental disabling of the GL backend on non-Windows ARM platform caused by #12013. 2019-05-09 23:59:29 +02:00
Henrik Rydgård
c3fab33354 Revert "Remove default SDK version from project files"
Seems to have been the wrong thing to do, see:
https://developercommunity.visualstudio.com/content/problem/140294/windowstargetplatformversion-makes-it-impossible-t.html

Though due to the bug described there, there's no perfect solution, just
some ugly ones (which I might try later). Anyway, I guess most people
will move on to VS 2019 anyway..

This reverts commit 056494522e.
2019-05-09 23:58:23 +02:00
Henrik Rydgård
989b564fa4 Game server: Reject bad URLs 2019-05-07 21:47:50 +02:00
driver1998
0b714f599f Update .gitignore 2019-05-04 23:54:36 +08:00
driver1998
0aa33d53c0 Disable features not available on Windows ARM32/ARM64
ARM32: OpenGL & DirectInput
ARM64: OpenGL
2019-05-04 22:45:16 +08:00
driver1998
04744f28d6 Fix ssize_t in libzip for Windows ARM64 2019-05-04 22:45:16 +08:00
driver1998
392918d7ef Add Crash() for Windows ARM64 2019-05-04 22:45:15 +08:00
driver1998
5072584781 Fix neon headers for MSVC ARM64
MSVC uses arm64_neon.h for ARM64, arm_neon.h is ARM32 only.
2019-05-04 22:45:15 +08:00
driver1998
763b85d723 Update Visual Studio project files for Windows ARM32/ARM64 2019-05-04 22:45:15 +08:00
LunaMoo
056494522e Remove default SDK version from project files 2019-04-27 23:01:41 +02:00
LunaMoo
280f7fec39 Fix VS2019 builds and remove _xp dependency
(drops Win XP support, allows latest SDK etc.)
2019-04-25 23:56:55 +02:00
Henrik Rydgård
ed1aa74827 Address feedback from #11936 (support memory types without CACHED as a backup) 2019-03-26 10:39:51 +01:00
Henrik Rydgård
60889767bf Vulkan: Request cached memory for readbacks. First try coherent too but also support non-coherent cached memory.
Should speed up readbacks slightly.

This is just a common sense optimization, I haven't measured it. Writes to
coherent non-cached memory is OK due to hardware write combining, but for
reads you really want cached to avoid a memory transaction for every
single read (instead reading full cache lines).
2019-03-25 21:40:25 +01:00
Henrik Rydgård
703fdc5561 MSVC project files: Fix silly search/replace error from #11883 2019-03-24 11:17:47 +01:00
Unknown W. Brackets
c7c45f0aca http: Fix warning on compare in url decode. 2019-03-23 07:25:58 -07:00
Henrik Rydgård
b0048525a1
Merge pull request #11884 from hrydgard/vulkan-buffer-usage
Vulkan: Tighten up push buffer usage flags a little bit.
2019-03-18 11:17:49 +01:00
Henrik Rydgård
7790e61b12
Merge pull request #11866 from unknownbrackets/keyup
UI: Pass touch/button releases to all screens
2019-03-18 11:16:35 +01:00
Henrik Rydgård
1ab9f6cc95
Merge pull request #11883 from hrydgard/windows-fp-precise
Windows: Change FP model to Precise. See #11382
2019-03-18 11:16:19 +01:00
Unknown W. Brackets
a99549c451 UI: Avoid using game info cache in savedata sort.
It can change mid-sort causing the sorting results to be inconsistent,
which will crash many implementations of std::stable_sort.

Also, fix an issue where it kept resorting after it didn't need to and
make it strictly ordered for equal dates/sizes.

Fixes #11892.
2019-03-17 06:34:21 -07:00
Henrik Rydgård
06b04f65a0 Vulkan: Narrow down buffer usage flags a little bit. 2019-03-14 12:41:39 +01:00
Henrik Rydgård
4d5af330a7 Windows: Change FP model to Precise. See #11384 2019-03-14 10:59:35 +01:00
Henrik Rydgård
7362cccee4 Vulkan subpass dependencies: Handle VK_IMAGE_LAYOUT_UNDEFINED without debug-asserting. 2019-03-12 22:34:41 +01:00
Henrik Rydgård
624587c594 Fix a VK validation failure when opening the homebrew menu 2019-03-11 16:42:41 +01:00
Unknown W. Brackets
1205753289 UI: Pass touch/button releases to all screens.
This way, if you go into a menu and release a button, it still gets
noticed.  This also goes for axis centering (and therefore vkeys.)

Also, move TOUCH_RELEASE_ALL to all screen switches.
2019-03-03 17:50:54 -08:00
Henrik Rydgård
2d5acc83b6 Use MSG_NOSIGNAL for some more send() calls. Didn't fix anything though.
See #11853
2019-03-01 08:35:35 +01:00
Henrik Rydgård
1f4c1cee2d Disable more texcoord math on terrible-precision PowerVR (it's really awful). Fixes #9189. 2019-02-26 10:39:17 +01:00
Henrik Rydgård
0cd3ac06d0 Avoid trying to create a FileLoader for empty filenames
Assorted cleanup
2019-02-25 21:35:51 +01:00
Henrik Rydgård
c1427f5981 VulkanImage: Fix issue where we'd try to free dedicated allocations from the allocator_ instead of Vulkan directly.
Snuck in some minor cleanups.
2019-02-24 22:23:26 +01:00
Henrik Rydgård
58c240045e Make window resize work with Vulkan. Seems more stable now. 2019-02-23 15:53:05 +01:00
vit9696
63f81f96fd Disable GLEW on macOS 2019-02-23 13:15:23 +03:00
vit9696
27d216ea25 Fix postprocessing shader support on macOS
Check GL_ARB_shading_language_420pack availability, which SPIRV-Cross assumes
present by default, causing explicit binding location generation during shader
translation.
2019-02-22 06:34:37 +03:00
Unknown W. Brackets
bb6aa99b9e Qt: Correct text bind on first draw of string.
Previously, the first frame we drew a new string was using the UI texture,
typically.
2019-02-17 08:11:16 -08:00
Henrik Rydgård
7e939802b5
Merge pull request #11787 from unknownbrackets/range-cull
GLES: Disable range culling on VideoCore/Vivante
2019-02-10 20:46:37 +01:00
Unknown W. Brackets
957c3d5b89 GLES: Disable range culling on VideoCore/Vivante.
Was only disabled before on Vivante GL3/GLES3 devices.
2019-02-10 11:36:23 -08:00
Henrik Rydgård
c509650bec OpenGL: Disable the mapped buffer strategy for Adreno (Qualcomm).
It's a race during shutdown between the EmuThread writing commands, and
the render thread which just lost the buffer.
2019-02-10 20:13:39 +01:00
Henrik Rydgard
f38a6650b1 VK code cleanup: Just a little helper for handling dedicated allocation for images. 2019-02-07 14:56:29 +01:00
Henrik Rydgård
54c6c148fb Detect PCI device ID where available (not in GL?) 2019-02-06 22:43:31 +01:00
Henrik Rydgard
e30daa8027 Remove unused API, assorted cleanup.
No longer enable the geometry shader feature, no plans to use it.
2019-02-05 21:31:43 +01:00
Henrik Rydgard
014668b9bc Update glslang to latest version 2019-02-05 18:07:18 +01:00
Henrik Rydgard
32f37723f9 Properly use VK_KHR_dedicated_allocation to make some drivers extra happy 2019-02-05 18:07:18 +01:00
Henrik Rydgard
8e1a5ef3d6 Minor refactor of physical device property/feature detection, to allow for more extension use. 2019-02-05 18:07:17 +01:00
Henrik Rydgard
0aedf3755f Fix checkbox bug introduced in #11758. Fixes #11761. 2019-02-04 13:22:58 +01:00
Henrik Rydgård
60bd2d8a60
Merge pull request #11758 from unknownbrackets/jitflags
Add flags to turn off parts of jit
2019-02-04 00:40:34 +01:00
Unknown W. Brackets
304c90934b UI: Add bitfield checkbox. 2019-02-03 14:57:08 -08:00
Henrik Rydgard
f339a0c15b VK: Minor cleanup, turn off unfinished and probably wrong use of dedicated allocation feature 2019-01-31 14:09:21 +01:00
Henrik Rydgard
ff633e2cc6 Update Vulkan headers to SDK 1.1.97 2019-01-31 13:39:18 +01:00
Henrik Rydgård
bb4d91c958 If we lose the Vulkan device, recommend the user to switch to Direct3D11.
:-(
2019-01-30 17:57:20 +01:00
Henrik Rydgard
add5e3c1fa DeleteDirRecursively: Don't leak the find handle on failure (win32)
Don't close invalid handles.
2019-01-25 20:18:53 +01:00
Henrik Rydgård
ac8d1deebd Update armips submodule with bugfix. Also lang. 2019-01-22 08:38:01 +01:00
Henrik Rydgård
b572dc52a5 Remove usage of deprecated function readdir_r (and ugly Blackberry hack diren_large) 2019-01-08 12:29:59 +01:00
Henrik Rydgård
5a1fa60087 Try to support Qt keyboard input directly. Partially fixes #11653 (nickname crash on mac) 2019-01-07 00:07:25 +01:00
Henrik Rydgård
12f295c4a5 GLES: Detect Vivante GPU, disable vertex range culling
Should work-around #11703
2019-01-03 12:43:32 +01:00
Unknown W. Brackets
809c0f3e2c http: Correct typo.
Oops, somehow deleted an important character when pushing up.
2018-12-29 08:16:56 -08:00
Henrik Rydgård
127330feec
Merge pull request #11700 from unknownbrackets/http-error
http: Report errors reading discs
2018-12-27 21:45:53 +01:00
Unknown W. Brackets
359afb2d6b http: Add timeout on no response.
Firewalls can cause this, by opening a connection but never responding.
2018-12-27 10:15:58 -08:00
Henrik Rydgård
8e17caf351
Merge pull request #11694 from unknownbrackets/draw-bugs
Vulkan: Limit stencil workaround to Adreno 5xx
2018-12-26 20:46:09 +01:00
Unknown W. Brackets
58ef662a65 GLES: Remove FBO_UNUSABLE bug check.
Was no longer affecting behavior...
2018-12-23 20:27:22 -08:00
Unknown W. Brackets
adeca2c3ba GLES: Move some vendor bug checks to Draw. 2018-12-23 20:27:22 -08:00
Unknown W. Brackets
e46701dee6 GLES: Specify glsl version precisely in depal.
Should prevent more of #11588 on vertex shaders, and may help Apple
devices some too.
2018-12-23 20:08:08 -08:00
Unknown W. Brackets
9a3de5cb1c GPU: Move dual source blending bug check to Draw.
This also allows the ini setting to avoid it on Intel.
2018-12-23 14:11:57 -08:00
Unknown W. Brackets
f8ce9b08ba Vulkan: Limit stencil workaround to Adreno 5xx. 2018-12-23 14:11:57 -08:00
Unknown W. Brackets
99ed2e4722 http: Parse port in ipv6 addresses. 2018-12-21 22:31:47 -08:00
Henrik Rydgård
d047955686 This should finally repro one of the Adreno bugs 2018-12-20 11:00:15 +01:00
Henrik Rydgård
2c83574377 Finish up the test 2018-12-19 13:48:58 +01:00
Henrik Rydgård
c2319cd6d1 thin3d: Make the stencil ref value dynamic state (all APIs support this directly). 2018-12-19 13:48:58 +01:00
Henrik Rydgård
df98721e73 Write rough framework for GPU discard test screen 2018-12-19 13:48:54 +01:00
Henrik Rydgård
8686960180 Delete some unused DNS code, just because. 2018-12-19 13:46:50 +01:00
Henrik Rydgård
683a4e0fb2
Merge pull request #11676 from unknownbrackets/gles-depth
WIP - GLES: Download depth values via shader
2018-12-19 09:58:38 +01:00
Henrik Rydgård
a135dc1547 thin3d: Remove unused shader language support 2018-12-18 14:29:48 +01:00
Henrik Rydgård
956af61ff5 Fix ridiculous bug in thin3d.h. Only worked by accidental matchup between shader IDs.. 2018-12-18 14:29:48 +01:00