Commit Graph

1899 Commits

Author SHA1 Message Date
lynxnb 22a3a79eb3 Fix Transifex language resource mapping for `pt-BR` 2023-03-05 12:55:15 +01:00
lynxnb b724bc2309 Adjust default OSC opacity and color 2023-03-05 12:45:07 +01:00
KikiManjaro 1282362fce Add color selection to OSC
* Add bold text and antialiasing for osc buttons
* Fix osc dpad and button position (widder than taller)
* Set default OSC color to white background with black text
2023-03-05 12:45:07 +01:00
KikiManjaro 66d2965c63 Fix resetControls for opacity of OSC 2023-03-05 12:45:07 +01:00
Abandoned Cart 1f608da8e0 Drop local app path in preview summary 2023-03-05 11:48:46 +01:00
Abandoned Cart bcd38460be Align ChipGroup to center when space exists 2023-03-05 11:42:20 +01:00
Billy Laws 750dfb8f00 Disable extended dynamic state on <r42 mali drivers 2023-03-04 18:55:44 +00:00
Billy Laws acf118155d Submit an execution on invalidate{Sampler,TextureHeader}Cache accesses 2023-03-04 18:55:44 +00:00
Billy Laws 6ce5202b8e Add exceptions for some more unimplemented maxwell draw regs 2023-03-04 18:55:44 +00:00
Billy Laws 7150ce0d1d Allow disabling the freeing of texture guest memory
This helps to prevent issues that result from the overlapping of buffer and texture data, by only ever syncing back textures if they are actually used as RTs, which are much less likely to overlap buffers.
2023-03-04 18:55:44 +00:00
Billy Laws 5e8cdfda92 Don't populate colour targets with an empty write mask
Avoids breaking VK spec in BOTW, as it has the same colour attachment bound twice, but the former is masked out entirely.
2023-03-04 18:55:44 +00:00
Billy Laws 8baf06c9ab Never free memory for GPU dirty buffers
Fixes Persona 5 textures in some cases due to overlaps with textures.
2023-03-04 18:55:44 +00:00
Billy Laws 1dd13e90b0 Use channel sequence number for TIC cache validity tracking
Fixes some OpenGL games which update a TIC with I2M but never end up triggering an execution otherwise.
2023-03-04 18:55:44 +00:00
Billy Laws 34fddfccba Only clear requested aspect for depth/stencil clears
Fixes water in Skyrim (depth was being cleared when only stencil should have been)
2023-03-04 18:55:44 +00:00
Billy Laws 330f402398 Clear chained fence cycles on the waiter thread
This avoids some sporadic random crashes that happen during fence cycle destruction in BOTW/SMO.
2023-03-04 18:55:44 +00:00
lynxnb 787f2bde02 Enable localization for app strings
A setting has been added to override the system default language, should a user want a different language for the app.
2023-02-27 22:19:53 +01:00
transifex-integration[bot] 8e7455fb04 Initial translations sync with Transifex
* Apply translations in fr
* Apply translations in ru
* Apply translations in b+zh+Hans
* Apply translations in b+zh+Hant
* Apply translations in de
* Apply translations in el
* Apply translations in ja
* Apply translations in ar
* Apply translations in ta
* Apply translations in pl
* Apply translations in ko
* Apply translations in es
* Apply translations in pl
* Apply translations in in
* Apply translations in it
* Apply translations in b+es+419
* Apply translations in hu
2023-02-27 22:19:53 +01:00
lynxnb e1eb16bbd4 Workaround Android using the old code for Indonesian 2023-02-27 22:19:53 +01:00
lynxnb 778b647887 Add Transifex configuration file 2023-02-27 22:19:53 +01:00
lynxnb 3b849393c2 Fix capitalization in settings title strings 2023-02-27 19:56:53 +01:00
lynxnb aa1da257f8 Add an option to copy global settings to per-game ones 2023-02-27 19:56:53 +01:00
lynxnb 485bd2031c Only hide `validation_layer` setting on release instead of debug category 2023-02-27 19:56:53 +01:00
lynxnb b2228a93da Reorder settings pt.2 2023-02-27 19:56:53 +01:00
lynxnb ddfa9013a9 Use a proper tag for `AppItem` in intent extras and arguments 2023-02-27 19:56:53 +01:00
lynxnb 2f4778247c Use per-game settings during emulation 2023-02-27 19:56:53 +01:00
lynxnb 1a11aaa651 Add per-game settings configuration functionality 2023-02-27 19:56:53 +01:00
lynxnb 0467614dc0 Add per-game support to `EmulationSettings`
Implements support for retrieving per-game emulation settings
2023-02-27 19:56:53 +01:00
lynxnb cd426d9f18 Split `PreferenceSettings` into `AppSettings` and `EmulationSettings`
`PreferenceSettings` was removed in favor of:
* `AppSettings`: stores general purpose settings mostly used for UI configuration and state
* `EmulationSettings`: stores emulation-related settings, most of these are passed to native emulation code
2023-02-27 19:56:53 +01:00
lynxnb 854ea1a42d Make `NativeSettings` a serializable data class 2023-02-27 19:56:53 +01:00
lynxnb ee98aaaed1 Add a method to return format in `AppItem` 2023-02-27 19:56:53 +01:00
lynxnb d1fd44e32e Move preference fragment to a separate file for modularity 2023-02-27 19:56:53 +01:00
lynxnb a683978e8c Split preferences to multiple files for reusability 2023-02-27 19:56:53 +01:00
lynxnb e7c176a8e5 Reorder preferences and introduce new categories 2023-02-27 19:56:53 +01:00
lynxnb a1ca84f95e Move Kotlin settings to a dedicate package 2023-02-27 19:56:53 +01:00
lynxnb 180d1efd4d Revert "Toggle DisableFrameThrottling setting by clicking on FPS"
This commit reverts PR #2037. Passing `NativeSettings` to emulation code through a member reference, instead of a local variable, caused unpredictable crashes when using custom GPU drivers (v615+) on some Qualcomm SoCs.
The exact cause of the issue remains unknown, my best guess is that it was caused by an incorrect optimization performed on the Kotlin bytecode in release mode, which caused an issue when reading memory that had been forked, because of running emulation in a separate process.
Runtime settings modification will be reimplemented in the future via an alternative method.
2023-02-27 19:00:52 +01:00
PixelyIon 22f8cc5970 Stub indirect layer VI service functions
Indirect layers are used by the game to render layer on its own, the game allocates a buffer with the size from `GetIndirectLayerImageRequiredMemoryInfo` and uses `GetIndirectLayerImageMap` to draw the applet contents into the buffer. 

As we don't LLE applet implementations nor do our HLE implementations draw equivalent applets, we cannot submit this to the guest. As a result, these functions are stubbed with the framebuffer being cleared to red. 

Stubbing these functions allows titles such as Dark Souls to not crash while initializing indirect layers.
2023-02-22 23:23:08 +05:30
lynxnb dba191d2dc Fix deadlock on settings in `PresentationEngine` after callback
Accessing the settings class during the execution of the `OnChangedCallback` results in a deadlock, as accesses to values are protected by a mutex. Instead, we now keep a local copy of the relevant settings and update those with the new value.
2023-02-20 21:45:30 +00:00
lynxnb fc9b34846c Fix KtSettings JNI usage
* Use a global ref for NativeSettings JNI instance
* Always use the JNI env from the JNI call to ensure it's safe to use in the current thread
2023-02-20 21:45:30 +00:00
lynxnb 5b0a397165 Update native settings after toggling frame throttling 2023-02-20 21:45:30 +00:00
Matesic Darko f850271e2d toggle DisableFrameThrottling setting by clicking on FPS display
s/jSurface/vkSurface
2023-02-20 21:45:30 +00:00
TheASVigilante 3168e8efc0 Address review 2023-02-20 18:17:35 +00:00
TheASVigilante b780e2b755 Deallocate Unmapped memory pages
Reduces memory usage buildup over time, may affect performance.
2023-02-20 18:17:35 +00:00
Billy Laws 7296f8503d Enable always attempt to enable robustness 2023-02-20 18:01:49 +00:00
Billy Laws d45f9e4d26 Loosen some texture WaR sync when possible
By keeping track of the stages reading the image we can do more fine-grained WaR prevention, as opposed to waiting for all commands to complete.
2023-02-20 18:01:49 +00:00
Billy Laws 6ee8a919e5 Use pipeline barriers, as opposed to an ext dependency for RP barrier
Allows for waiting on compute shaders, which are not a graphics stage.
2023-02-20 18:01:49 +00:00
Billy Laws ee68facc5d Apply RP barrier masks for every draw, rather than the 1st in RP
I missed that addSubpass was only called once-per-subpass, meaning that if a new barrier req was discovered several draws into the RP it wouldn't be applied. Split out barriers into a seperate function to avoid this.
2023-02-20 18:01:49 +00:00
Billy Laws bb20b145a8 Hash subpass dependencies in RP cache 2023-02-20 18:01:49 +00:00
Billy Laws 99bf7dbb36 Implement usage based implicit renderpass barrier generation
Full pipeline barriers between every RP can be extremely expensive on HW, by analysing the inputs and outputs of a draw it's possible to construct a much more optimal barrier that only syncs what is neccessary.
2023-02-20 18:01:49 +00:00
Billy Laws 7a759326b3 Don't break RPs on view pointer changes
Sometimes view pointers may change despite the underlying Vulkan image view not actually changing, so use vk::ImageViews for tracking to keep RP breaks to a minimum.
2023-02-20 18:01:49 +00:00
Billy Laws a02e1a2536 R.I.P. Subpasses 2023-02-20 18:01:49 +00:00