Commit graph

3377 commits

Author SHA1 Message Date
sunshineinabox
bf36a10bf6
Merge branch 'master' into MoreDynamicStatesTesting 2024-05-19 17:49:21 -07:00
riperiperi
eb1ce41b00
GPU: Migrate buffers on GPU project, pre-emptively flush device local mappings (#6794)
* GPU: Migrate buffers on GPU project, pre-emptively flush device local mappings

Essentially retreading #4540, but it's on the GPU project now instead of the backend. This allows us to have a lot more control + knowledge of where the buffer backing has been changed and allows us to pre-emptively flush pages to host memory for quicker readback. It will allow us to do other stuff in the future, but we'll get there when we get there.

Performance greatly improved in Hyrule Warriors: Age of Calamity. Performance notably improved in TOTK (average). Performance for BOTW restored to how it was before #4911, perhaps a bit better.

- Rewrites a bunch of buffer migration stuff. Might want to tighten up how dispose stuff works.
- Fixed an issue where the copy for texture pre-flush would happen _after_ the syncpoint.

TODO: remove a page from pre-flush if it isn't flushed after a certain number of copies.

* Add copy deactivation

* Fix dependent virtual buffers

* Remove logging

* Fix format issues (maybe)

* Vulkan: Remove backing swap

* Add explicit memory access types for most buffers

* Fix typo

* Add device local force expiry, change buffer inheritance behaviour

* General cleanup, OGL fix

* BufferPreFlush comments

* BufferBackingState comments

* Add an extra precaution to BufferMigration

This is very unlikely, but it's important to cover loose ends like this.

* Address some feedback

* Docs
2024-05-19 16:53:37 -03:00
sunshineinabox
f7bdfd1836 Whitespace 2024-05-19 11:15:29 -07:00
sunshineinabox
0441e040a6 Combine compatibility check. 2024-05-19 10:43:07 -07:00
sunshineinabox
73ead467d6 Missed enabling Dynamic State 2024-05-19 10:35:29 -07:00
sunshineinabox
b082bb2a83 Enable VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT 2024-05-19 00:24:07 -07:00
sunshineinabox
908d555f8e Some more small changes 2024-05-18 22:14:38 -07:00
sunshineinabox
e84bb5cba0 Formatting 2024-05-18 21:48:27 -07:00
sunshineinabox
4e49ee85a6 Implement VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT 2024-05-18 21:46:22 -07:00
sunshineinabox
3257709c24 Small fix 2024-05-18 17:20:20 -07:00
sunshineinabox
5a0f1eaf01 Fix formatting 2024-05-18 16:13:12 -07:00
sunshineinabox
d1d2d4b205 Enable VK_EXT_extended_dynamic_state3 this time without seizures. 2024-05-18 16:06:21 -07:00
sunshineinabox
e8c572ef24 Reverted previous commit as it caused mass seizures, disable for now. 2024-05-18 15:55:16 -07:00
sunshineinabox
ad6ebebcd7 Revert "Enable the extension..."
This reverts commit 8bbdaab9a1.
2024-05-18 15:53:24 -07:00
sunshineinabox
8bbdaab9a1 Enable the extension... 2024-05-18 15:32:36 -07:00
sunshineinabox
24467c3dcf More comments and formatting fixes 2024-05-18 15:22:23 -07:00
sunshineinabox
6345786ea5 Add Some Comments 2024-05-18 14:57:53 -07:00
sunshineinabox
116dd738d4 Avoid unncessary state changes? 2024-05-18 14:32:53 -07:00
sunshineinabox
cf1c9ed9ec Misc 2024-05-17 17:41:09 -07:00
sunshineinabox
9d8070f20f Implement VK_EXT_extended_dynamic_state3 2024-05-17 16:32:05 -07:00
TSRBerry
2f427deb67
Fix another NullReferenceException (#6826) 2024-05-17 20:11:30 -03:00
sunshineinabox
d5f9ed6a2e Use device features to enable to disable LogicOp Extended Dynamic State
Improve index counting
2024-05-17 15:12:50 -07:00
sunshineinabox
b5574ac65f Enable if supported. 2024-05-17 15:12:50 -07:00
sunshineinabox
c12d7a79f4 ExtDynamicState2 2024-05-17 15:12:50 -07:00
sunshineinabox
4bdba0aa01 Some missed values 2024-05-17 15:12:50 -07:00
sunshineinabox
cf3cc69162 Revert unrelated changes. 2024-05-17 15:12:50 -07:00
sunshineinabox
8ca3b5a880 Use Viewport and Scissor with count.
Topology Dynamic State is not working as intended. Need to add check to set correct Topology class. Circle back to this later. For now revert it.

Some minor fixes.
2024-05-17 15:12:50 -07:00
sunshineinabox
247adc0318 Use Correct namespace 2024-05-17 15:12:50 -07:00
sunshineinabox
865eb6b69a LineWidth is not supported on MoltenVK 2024-05-17 15:12:50 -07:00
sunshineinabox
cc085bcc92 Check if widelines is supported. 2024-05-17 15:12:50 -07:00
sunshineinabox
33f2a08254 No need to by reference 2024-05-17 15:12:50 -07:00
sunshineinabox
558b1db792 Resolve MoltenVK (future version) warning.
Flags are not set for deriving pipelines so remove unnecessary basePipelineIndex value.
2024-05-17 15:12:50 -07:00
sunshineinabox
b14cdf3e52 Primitive Topolgy DynamicState maybe causing performance degredation. 2024-05-17 15:12:50 -07:00
sunshineinabox
d12c441e67 More Dynamic States 2024-05-17 15:12:50 -07:00
sunshineinabox
638d74ebe6 Make StencilOp, FrontFace and CullMode Dynamic States. Also prevent Vertex Input Binding Stride dynamic state from enabling with MoltenVK. 2024-05-17 15:12:50 -07:00
sunshineinabox
d92d8d5b05 Dynamic state for Depth Bounds should not be passed to PipelineDynamicStateCreateInfo as the command to set them is never called.
Do not pass pointer to viewport and scissor as those dynamic states should be supported on all devices.

Same as above for DepthBias values.
2024-05-17 15:12:50 -07:00
TSRBerry
8f51938e2b
Disable keyboard controller input while swkbd is open (foreground) (second attempt) (#6808)
* Block input updates while swkbd is open in foreground mode

* Flush internal driver state before unblocking input updates

* Rename Flush to Clear and remove unnecessary attribute

* Clear the driver state only if the GamepadDriver isn't null
2024-05-17 16:58:03 -03:00
gdkchan
4d84df9487
Update audio renderer to REV12: Add support for splitter biquad filter (#6813)
* Update audio renderer to REV12: Add support for splitter biquad filter

* Formatting

* Official names

* Update BiquadFilterState size + other fixes

* Update tests

* Update comment for version 2

* Size test for SplitterDestinationVersion2

* Should use Volume1 if no ramp
2024-05-17 16:46:43 -03:00
MutantAura
9ec8b2c01a
Change Deflate compression level to Fastest. (#6812) 2024-05-16 14:19:37 -03:00
SamusAranX
091230af22
Improves some log messages and fixes a typo (#6773)
* Improves some log messages and fixes a typo

* oops

* Update src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs

Co-authored-by: Ac_K <Acoustik666@gmail.com>

* Log config file path

---------

Co-authored-by: Ac_K <Acoustik666@gmail.com>
Co-authored-by: TSR Berry <20988865+TSRBerry@users.noreply.github.com>
2024-05-15 18:10:47 +02:00
Isaac Marovitz
3aea194606
Add Enhancement label to Feature Requests (#6804) 2024-05-15 12:06:58 +02:00
gdkchan
cdccf89e10
Revert "Disable keyboard controller input while swkbd is open (foreground) (#…" (#6805)
This reverts commit a3dc295c5f.
2024-05-15 02:20:24 -03:00
Ac_K
2ca0b17339
New Crowdin updates (#6590)
* New translations en_us.json (Arabic)

* New translations en_us.json (Russian)

* New translations en_us.json (Chinese Traditional)

* New translations en_us.json (French)

* New translations en_us.json (Russian)

* New translations en_us.json (Spanish)

* New translations en_us.json (Arabic)

* New translations en_us.json (German)

* New translations en_us.json (Greek)

* New translations en_us.json (Hebrew)

* New translations en_us.json (Italian)

* New translations en_us.json (Japanese)

* New translations en_us.json (Korean)

* New translations en_us.json (Polish)

* New translations en_us.json (Russian)

* New translations en_us.json (Turkish)

* New translations en_us.json (Ukrainian)

* New translations en_us.json (Chinese Simplified)

* New translations en_us.json (Chinese Traditional)

* New translations en_us.json (Portuguese, Brazilian)

* New translations en_us.json (Thai)

* New translations en_us.json (French)

* New translations en_us.json (Arabic)

* New translations en_us.json (Italian)

* New translations en_us.json (Korean)

* New translations en_us.json (Russian)

* New translations en_us.json (Ukrainian)

* New translations en_us.json (Chinese Simplified)

* New translations en_us.json (Arabic)

* New translations en_us.json (Polish)

* New translations en_us.json (Turkish)

* New translations en_us.json (Arabic)

* New translations en_us.json (Chinese Traditional)

* New translations en_us.json (Russian)

* New translations en_us.json (French)

* New translations en_us.json (Thai)

* New translations en_us.json (Spanish)

* New translations en_us.json (Arabic)

* New translations en_us.json (German)

* New translations en_us.json (Greek)

* New translations en_us.json (Hebrew)

* New translations en_us.json (Italian)

* New translations en_us.json (Japanese)

* New translations en_us.json (Korean)

* New translations en_us.json (Polish)

* New translations en_us.json (Russian)

* New translations en_us.json (Turkish)

* New translations en_us.json (Ukrainian)

* New translations en_us.json (Chinese Simplified)

* New translations en_us.json (Chinese Traditional)

* New translations en_us.json (Portuguese, Brazilian)

* New translations en_us.json (Thai)

* New translations en_us.json (French)

* New translations en_us.json (Arabic)

* New translations en_us.json (Chinese Traditional)

* New translations en_us.json (Arabic)

* New translations en_us.json (Italian)

* New translations en_us.json (Arabic)

* New translations en_us.json (Italian)

* New translations en_us.json (Spanish)

* New translations en_us.json (Russian)

* New translations en_us.json (Russian)

* New translations en_us.json (Thai)

* New translations en_us.json (Spanish)

* New translations en_us.json (Arabic)

* New translations en_us.json (German)

* New translations en_us.json (Greek)

* New translations en_us.json (Hebrew)

* New translations en_us.json (Italian)

* New translations en_us.json (Japanese)

* New translations en_us.json (Korean)

* New translations en_us.json (Polish)

* New translations en_us.json (Russian)

* New translations en_us.json (Turkish)

* New translations en_us.json (Ukrainian)

* New translations en_us.json (Chinese Simplified)

* New translations en_us.json (Chinese Traditional)

* New translations en_us.json (Portuguese, Brazilian)

* New translations en_us.json (Thai)

* New translations en_us.json (French)

* New translations en_us.json (Chinese Traditional)

* New translations en_us.json (Arabic)

* New translations en_us.json (Russian)

* New translations en_us.json (Turkish)

* New translations en_us.json (Chinese Simplified)

* New translations en_us.json (Russian)

* New translations en_us.json (Chinese Simplified)

* New translations en_us.json (Russian)

* New translations en_us.json (Portuguese, Brazilian)

* New translations en_us.json (German)
2024-05-14 17:47:03 +02:00
Isaac Marovitz
47639e6eeb
Bump Avalonia.Svg (#6603)
* Bump Avalonia.Svg

* Remove using

* Bump Version

* Remove other reload
2024-05-14 17:36:11 +02:00
gdkchan
cd78adf07f
Add missing lock on texture cache UpdateMapping method (#6657) 2024-05-14 17:23:13 +02:00
TSRBerry
a3dc295c5f
Disable keyboard controller input while swkbd is open (foreground) (#6646)
* Block input updates while swkbd is open in foreground mode

* Flush internal driver state before unblocking input updates

* Rename Flush to Clear and remove unnecessary attribute
2024-05-14 17:14:39 +02:00
gdkchan
2ef4f92b07
Make TextureGroup.ClearModified thread safe (#6686) 2024-05-14 17:06:36 +02:00
yell0wsuit
2b6cc4b353
Add the "Auto" theme option in setting (#6611)
* Add "Follow OS theme" option

* Update App.axaml.cs

* Add "Follow OS theme" option

* Update App.axaml.cs

* Remove `this`

* Remove annotation for nullable reference

* Change into switch expression to make it concise

* Change comments to XML docs

* Update en_US.json

* Fix icons in About dialog do not response to "auto" theme

The theme icons seemingly use Dark variant event when the OS theme is light. In addition, I added ThemeManager common to make it accessible for both App and AboutWindow

* Newline at the end

* newline moment

* Update ThemeManager.cs

* bait to switch to lf

* change to lf

* temp. revert

* Add back ThemeManager.cs common, pls pass the format check

* I found the mistake: should have put `ThemeManager.OnThemeChanged();` in try block

Finally solve the formatting check

* test formatting

* Update App.axaml.cs

* Ok i seem to forget to add version lol

* Fix info CA1816
2024-05-14 17:00:03 +02:00
Gavin Zyonse
075575200d
Update compatibility information in README.md (#6801) 2024-05-14 16:58:48 +02:00
gdkchan
3a3b51893e
Add support for bindless textures from storage buffer on Vulkan (#6721)
* Halve primitive ID when converting quads to triangles

* Shader cache version bump

* Add support for bindless textures from storage buffer on Vulkan
2024-05-14 16:47:16 +02:00