Commit Graph

81 Commits

Author SHA1 Message Date
Exzap
a2c518354f Remove unnecessary include 2023-03-02 16:44:22 +01:00
Exzap
466ad8d35e Latte/Vulkan: Set RoundingModeRTE for all float types
Seems like GLSL's unpackHalf2x16() is affected by the 16bit rounding setting
2023-03-02 16:22:28 +01:00
Exzap
f8ea594447 Latte: Small refactor for shader decompiler
Latte: Small refactor for shader decompiler
2023-03-02 16:22:19 +01:00
Exzap
4a564e2447 Latte/Vulkan: Set shader rounding mode via VK_KHR_SHADER_FLOAT_CONTROLS 2023-03-02 16:22:05 +01:00
lisa-wolfgang
4c697d3755
Add cross-platform "disable screen saver" setting (#497) 2023-02-24 22:10:07 +01:00
Exzap
9d25b88368 Latte: Add support for MIN_DX10 shader instruction 2023-02-22 13:37:14 +01:00
Crementif
05e0f349e0
debugger: Disable Linux read/write breakpoints for now (#669)
It seems that there's some differences for some distros so until a proper solution is found, just disable it for now.
2023-02-20 00:29:32 +01:00
Crementif
6d75776b28
Add GDB stub for debugging (#657)
* Implement GDB stub debugger

Can be enabled by using the "--enable-gdbstub" option (and the debugger GUI, although that's untested) which'll pause any game you launch at start-up. Will start at port 1337 although it'll eventually be user-editable. The code is a bit weirdly sorted and also just needs a general cleanup, so expect that eventually too. And uses egyptian braces but formatting was easier to do at the end, so that's also something to do.

It has been tested to work with IDA Pro, Clion and the standalone interface for now, but I plan on writing some instructions in the PR to follow for people who want to use this. Memory breakpoints aren't possible yet, only execution breakpoints.

This code was aimed to be decoupled from the existing debugger to be able to be ported to the Wii U for an equal debugging experience. That's also why it uses the Cafe OS's thread sleep and resuming functions whenever possible instead of using recompiler/interpreter controls.

* Add memory writing and floating point registers support

* Reformat code a bit

* Format code to adhere to Cemu's coding style

* Rework GDB Stub settings in GUI

* Small styling fixes

* Rework execution breakpoints

Should work better in some edge cases now. But this should also allow for adding access breakpoints since it's now more separated.

* Implement access breakpoints

* Fix some issues with breakpoints

* Fix includes for Linux

* Fix unnecessary include

* Tweaks for Linux compatibility

* Use std::thread instead of std::jthread to fix MacOS support

* Enable GDB read/write breakpoints on x86 only

* Fix compilation for GCC compilers at least

The thread type varies on some platforms, so supporting this is hell... but let's get it to compile on MacOS first.

* Disable them for MacOS due to lack of ptrace

---------

Co-authored-by: Exzap <13877693+Exzap@users.noreply.github.com>
2023-02-19 15:41:49 +01:00
goeiecool9999
05d82b09e9
Add back missing flag to keep background image in background (#667) 2023-02-19 14:52:19 +01:00
goeiecool9999
cbb79fd34c
Separate imgui contexts for TV and Pad windows. (#664) 2023-02-18 11:56:43 +01:00
Exzap
f3ff919be2
Code clean up + replace some wstring instances with utf8 (#640) 2023-01-29 13:53:31 +01:00
Exzap
404af95a2c Latte: Less aggressive texture readback
By mistake we would read affected textures back after every single drawcall. As an optimization if the same texture gets drawn to multiple times we'll try to only read it back once at the end of the sequence.
2023-01-27 09:57:10 +00:00
Exzap
387b712959 Logging: Add TextureReadback logtype and clean up code 2023-01-27 09:57:10 +00:00
Exzap
9bbfd33842 Latte: FragCoord w should not be reciprocal
Fixes rendering in various Virtual Console DS titles
2023-01-27 09:57:10 +00:00
Exzap
43b5ad2f1c PPCInterpreter: Improve overflow handling 2023-01-27 09:57:10 +00:00
Exzap
4b5014c16a coreinit: Fix memory mapping API
Fixes Unity based games freezing on boot
2023-01-27 09:57:10 +00:00
goeiecool9999
33bd10b4e0
Vulkan: Use the correct resolution for out-of-date check (#595) 2022-12-29 00:19:05 +01:00
SSimco
fcab8f8f1a
Linux: Add CMake find module for wayland + make wayland optional (#572) 2022-12-15 08:44:14 +01:00
SSimco
fca7f5dfe4
Linux: Add Vulkan support for wayland (#553) 2022-12-07 16:45:25 +01:00
Exzap
2c81d240a5
Make codebase more CPU-agnostic + MacOS disclaimer (#559) 2022-12-07 01:48:24 +01:00
Tom Lally
445b0afa95
Better screenshot error handling (#552) 2022-12-05 17:16:08 +01:00
Tom Lally
dd538d477c
Correctly create screenshot directory if it does not exist (#551) 2022-12-03 17:57:32 +01:00
Tom Lally
b361b154d8
Cross-platform screenshots (#543)
Co-authored-by: Tom Lally <tomlally@protonmail.com>
Co-authored-by: Exzap <13877693+Exzap@users.noreply.github.com>
2022-12-02 04:51:07 +01:00
goeiecool9999
2cfb7f3737
Automatically scale imgui text based on display pixel density (#545) 2022-12-01 15:58:08 +01:00
goeiecool9999
d3721c3f46
Fix render resolution at different UI scales (#514) 2022-11-30 13:39:32 +01:00
goeiecool9999
a3476c7b7c
macOS: Workaround for MoltenVK stride limitation (#534) 2022-11-30 01:26:42 +01:00
goeiecool9999
bc104859f3
Vulkan: return to more conventional swapchain sync method, encapsulate more code (#525) 2022-11-25 09:51:47 +01:00
goeiecool9999
cbdf381b31
Fix gamepad hotkey and game profile setting (#510) 2022-11-24 12:29:29 +01:00
goeiecool9999
f4c2d16a3a
Attempt to fix flicker on resize, don't recreate if image was already acquired. (#522) 2022-11-21 19:06:35 +01:00
goeiecool9999
3a94a276da
Vulkan: Further simplify swapchain code (#502) 2022-11-21 16:47:43 +01:00
goeiecool9999
9ce52ad83a
Linux/macOS: Implement overlay CPU/memory statistics (#480) 2022-11-20 19:53:45 +01:00
goeiecool9999
57c8dec335
fix two if statements checking range of number wrong (#494) 2022-11-17 15:42:08 +01:00
goeiecool9999
e9d10a9581
Linux+OpenGL: Implement GUI vsync setting (#477) 2022-11-13 08:29:25 +01:00
goeiecool9999
4d68446f14
Vulkan: Further swapchain code improvements. (#473) 2022-11-11 08:14:38 +01:00
bslhq
be287a1f4e
ImGui: match all begin()/end() (#470) 2022-11-09 02:45:40 +01:00
goeiecool9999
138510106c
Vulkan: Fix freeze when closing pad view (#435) 2022-11-06 00:40:00 +01:00
goeiecool9999
348d86648f
Vulkan: Refactor swapchain code (#399) 2022-11-04 15:22:29 +01:00
Tillsunset
521f2fb707
MacOS: Workaround for Metal stride limitation (#445) 2022-11-03 12:51:32 +01:00
goeiecool9999
a129d22a57
Vulkan: Experimental fix for self-dependency barriers during renderpass (#431) 2022-11-03 00:43:26 +01:00
goeiecool9999
c3182aedd9
GeneralSettings: Update vsync after settings close (#401) 2022-10-31 17:54:26 +01:00
Tillsunset
9ebbfb3ae2
Fix some compiler warnings (#416) 2022-10-26 14:47:44 +02:00
gurrgur
3869b47c35
OpenGL: Bind back buffer before clearing (#222) (#414) 2022-10-26 14:07:34 +02:00
gurrgur
76c75f767b
Use portable format specifiers (#411)
Fixes #387
2022-10-25 20:38:29 +02:00
Exzap
028b3f7992
Make controller button code thread-safe (#405)
* Refactor spinlock to meet Lockable requirements
* Input: Refactor button code and make it thread-safe
2022-10-23 15:47:42 +02:00
MythicalPlayz
753040f73a
Added Boot Image for Gamepad (#372) 2022-10-17 11:26:32 +02:00
Exzap
ada8bbb3b4
Linux/MacOS: Greatly improve performance (#370)
std::unordered_set is implemented as a flat hashtable on libstdc++ which makes clearing expensive due to invoking memset on the entire table. To get the best performance across all platforms this replaces the unordered_set with a custom high-performance sparse bitset
2022-10-14 13:45:40 +02:00
SSimco
d6ba61cf64
Add support for non portable mode (#356) 2022-10-12 08:03:26 +02:00
Exzap
52cc7c5996
Follow imgui recommendation and streamline build dependencies (#355) 2022-10-11 01:43:15 +02:00
goeiecool9999
431c5a101f
Linux: Print demangled symbols on backtrace (#312) 2022-10-10 02:35:04 +02:00
Tillsunset
b724a657e6
MoltenVk: Add missing texture decoders (#332) 2022-10-08 15:07:54 +02:00