Commit graph

2064 commits

Author SHA1 Message Date
FICTURE7
65ac00833a
Use branch instead of tailcall for recursive calls (#2282)
* Use branch instead of tailcall for recursive calls

Use a branch instead of doing a tailcall for recursive calls. This
avoids having to store the dispatch address, setting up the epilogue and
keeps guest registers in host registers for longer.

The rejit check is moved down into the entry block so that the rejit
behaviour remains the same as before.

* Set PTC version

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2021-05-20 09:31:45 -03:00
FICTURE7
0181068016
Add BIC/ORR Vd.T, #imm fast path (#2279)
* Add fast path for BIC Vd.T, #imm

* Add fast path for ORR Vd.T, #imm

* Set PTC version

* Fixup Exception to InvalidOperationException
2021-05-20 09:09:17 -03:00
gdkchan
49745cfa37
Move shader resource descriptor creation out of the backend (#2290)
* Move shader resource descriptor creation out of the backend

* Remove now unused code, and other nits

* Shader cache version bump

* Nits

* Set format for bindless image load/store

* Fix buffer write flag
2021-05-19 23:15:26 +02:00
EmulationFanatic
b5c72b44de
Merge pull request #2177 from riperiperi/feature/parallel-shader-cache
Allow parallel shader compilation when loading a shader cache
2021-05-19 11:39:19 -07:00
riperiperi
778011c12a Remove ForceDedicatedGpu, as the driver utilities will now do that. 2021-05-19 19:26:23 +01:00
riperiperi
0129250c2e
Pass CbufSlot when getting info from the texture descriptor (#2291)
* Pass CbufSlot when getting info from the texture descriptor

Fixes some issues with bindless textures, when CbufSlot is not equal to the current TextureBufferIndex.

Specifically fixes a random chance of full screen colour flickering in Super Mario Party.

* Apply suggestions from code review

Oops

Co-authored-by: gdkchan <gab.dark.100@gmail.com>

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2021-05-19 20:05:43 +02:00
FICTURE7
c805542b29
Allow LocalVariable to be assigned more than once (#2288)
* Allow `LocalVariable` to be assigned more than once

This allows us to write flow controls like loops and if-elses with
LocalVariables participating in phi nodes.

* Add `GetLocalNumber` to operand
2021-05-17 01:54:53 +02:00
riperiperi
212e472c9f
Use copy dependencies for the Intel/AMD view format workaround (#2144)
* This might help AMD a bit

* Removal of old workaround.
2021-05-16 20:43:27 +02:00
Mary
bec67dbef7
misc: Move configuration management to the Ryujinx project (#2269)
* Decouple configuration from Ryujinx.HLE and Ryujinx.Input

* Move Configuration to the Ryujinx project
2021-05-16 17:12:14 +02:00
Mary
f48828351c ci: Do not enforce userid on nightly PR comment
This avoid issues when two different users work on a single PR.
2021-05-14 11:08:46 +02:00
gdkchan
e318022b89
Fold constant offsets and group constant addresses (#2285)
* Fold constant offsets and group constant addresses

* PPTC version bump
2021-05-13 21:26:57 +02:00
LDj3SNuD
57ea3f93a3
PPTC meets ExeFS Patching. (#1865)
* PPTC meets ExeFS Patching.

* InternalVersion = 1865

* Ready!

* Optimized the PtcProfiler Load/Save methods.
2021-05-13 20:05:15 +02:00
gdkchan
a8022ca3a1
Fix race in SM initialization (#2280) 2021-05-12 00:57:21 +02:00
gdkchan
ebdbaa6db0
Fix a specific core migration bug on the scheduler (#2271) 2021-05-11 13:18:50 -03:00
Mary
701c427659
Miria: Fix GTK3 keyboard mapping (#2273)
I found some mistake I made back when I first wrote the mapping for
Miria.

This fix:
- an offset by one after the tilde key in the mapping.
- F30 being mapped to F29.
2021-05-08 14:53:28 +02:00
Mary
acb1647c86
Fix embedded game rendering (#2275)
This fix an issue when after a relaunch of a game containing other
games (embedded games), the renderer window size would be 1x1.

This bug was introduced by #2260.
2021-05-07 13:37:48 -03:00
Mary
7aed7808be
misc: Fix default value for GraphicsConfig.MaxAnisotropy (#2274)
As title say.
Doesn't change anything as the Ryujinx project set it.
2021-05-07 13:18:23 -03:00
Mary
b94dc01d43
SM instance & TIPC fixes (#2241)
This PR addresses the following issues:
- SM was previously instancied once and reused on all sessions. This
  could cause inconsistency on the service initialization.
- TIPC replies were not matching what is generated on hardware.
2021-05-05 23:44:26 +02:00
Mary
eb056218a1
audio: Implement a SDL2 backend (#2258)
* audio: Implement a SDL2 backend

This adds support to SDL2 as an audio backend.
It has the same compatibility level as OpenAL without its issues.

I also took the liberty of restructuring the SDL2 code to have one
shared project between audio and input.

The configuration version was also incremented.

* Address gdkchan's comments

* Fix update logic

* Add an heuristic to pick the correct target sample count wanted by the game

* Address gdkchan's comments

* Address Ac_k's comments

* Fix audren output

* Address gdkchan's comments
2021-05-05 23:37:09 +02:00
Ac_K
106512229e
ffmpeg: Redirect log output (#2266)
* ffmpeg: Redirect log output

* Remove leftover delegate

* Logging -> Log
2021-05-05 23:30:29 +02:00
Ac_K
f0fe434bd8
nsd: Cleanup the service and implement some calls (#2250)
* nim: Cleanup the service and implement some calls

* Fix symbol typo

* add ApplicationServerEnvironmentType enum

* Change condition
2021-05-05 23:16:51 +02:00
Mary
faac08e638
gtk3: Add base for future Vulkan integration (#2260)
* gtk3: Add base for future Vulkan integration

This PR puts in place the fondation for the future Vulkan integration on
the GTK3 UI.

This also updated SPB to 0.0.3-build14 that fixed a use after free on
XErrorHandler on Linux.

* Address rip's comments

* Merge GLWidget inside GLRenderer

* Clean up and deduplicate renderer implementations

* Address shahil's comments

* Address Ac_K's comments

* Address gdkchan's comments
2021-05-04 18:19:04 +02:00
Mary
1769510a28 Set FFmpeg.AutoGen library search path on Linux
This fix FFmpeg.AutoGen being unable to find system ffmpeg libraries on
Linux.
2021-05-03 10:09:49 +02:00
Ac_K
a00c5cad00
misc: Cleanup Discord Presence (#2262)
* ui: Cleanup Discord Presence

* Clean Timestamps
2021-05-02 22:17:34 +02:00
Mary
fcdfd8a482
Update to FFmpeg 4.4.0 (#2259)
* Update to FFmpeg 4.4.0

As the title say

* Fix warning from 4.4.0
2021-05-02 22:08:35 +02:00
Mary
3443023a08
hid: Rewrite shared memory management (#2257)
* hid: Rewrite shared memory management

This entirely rewrite our ancient (and original) HID shared memory
interface to be more usable and accurate.

HID update logics were updated to reflect those changes but should work
still the same way it previously did.

This need heavy testing just in case to avoid possible regressions.

* Silence warnings

* Address gdkchan's comments

* Address Ac_K's comments

* Address one missing nit
2021-05-02 22:01:30 +02:00
gdkchan
0e9823d7e6
Fix shader buffer write flag on atomic instructions (#2261)
* Fix shader buffer write flag on atomic instructions

* Shader cache version bump
2021-05-01 20:46:21 +02:00
Mark Araujo
1998a3a90a
Changes ordering of config.json and configuration files (#2253)
This allows configuration values to be written to log file for analysis
2021-04-30 21:39:42 +02:00
Ac_K
8a81be9eca
nfp: Increase Amiibo scanning delay (#2256) 2021-04-30 19:32:58 +02:00
gdkchan
20d2347971
Fix GetClockSnapshot not writing steady clock timepoint (#2249) 2021-04-26 23:56:14 +02:00
Caian Benedicto
ec97a8a1fa
Initialize hid inputs on activation (#2246) 2021-04-26 10:44:20 +02:00
EmulationFanatic
cac4f31dfa
Fix uint -> int typo. (#2245) 2021-04-25 02:50:00 +02:00
gdkchan
992133e9ca
Fix IsRegionInUse check on NV memory allocator (#2243) 2021-04-25 02:13:58 +02:00
Mary
305f06eb71
HLE: Fix integer sign inconcistency accross the codebase (#2222)
* Make all title id instances unsigned

* Replace address and size with ulong instead of signed types

Long overdue change.
Also change some logics here and there to optimize with the new memory
manager.

* Address Ac_K's comments

* Remove uneeded cast all around

* Fixes some others misalignment
2021-04-24 12:16:01 +02:00
Ac_K
c46f6879ff
account: add Custom User Profiles support (#2227)
* Initial Impl

* Fix names

* remove useless ContentManager

* Support backgrounds and improve avatar loading

* Fix firmware checks

* Addresses gdkchan feedback
2021-04-23 22:26:31 +02:00
Ac_K
3e61fb0268
mm: Cleaned up the service a bit (#2233) 2021-04-22 23:35:01 +02:00
Mary
c1cbdd45dc
Miria: Do not try to query keyboard input when controller isn't set (#2231)
This fix a possible crash with raw keyboard input since Miria.
I took the liberty to move the the keyboard update to avoid possible duplicate update if we end up having two keyboards in use.
2021-04-21 01:47:49 +02:00
gdkchan
4770cfa920
Only enable clip distance if written to on shader (#2217)
* Only enable clip distance if written to on shader

* Signal InstanceId use through FeatureFlags

* Shader cache version bump
2021-04-20 12:33:54 +02:00
FICTURE7
89791ba68d
Add inlined on translation call counting (#2190)
* Add EntryTable<TEntry>

* Add on translation call counting

* Add Counter

* Add PPTC support

* Make Counter a generic & use a 32-bit counter instead

* Return false on overflow

* Set PPTC version

* Print more information about the rejit queue

* Make Counter<T> disposable

* Remove Block.TailCall since it is not used anymore

* Apply suggestions from code review

Address gdkchan's feedback

Co-authored-by: gdkchan <gab.dark.100@gmail.com>

* Fix more stale docs

* Remove rejit requests queue logging

* Make Counter<T> finalizable

Most certainly quite an odd use case.

* Make EntryTable<T>.TryAllocate set entry to default

* Re-trigger CI

* Dispose Counters before they hit the finalizer queue

* Re-trigger CI

Just for good measure...

* Make EntryTable<T> expandable

* EntryTable is now expandable instead of being a fixed slab.
* Remove EntryTable<T>.TryAllocate
* Remove Counter<T>.TryCreate

Address LDj3SNuD's feedback

* Apply suggestions from code review

Address LDj3SNuD's feedback

Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>

* Remove useless return

* POH approach, but the sequel

* Revert "POH approach, but the sequel"

This reverts commit 5f5abaa247.

The sequel got shelved

* Add extra documentation

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Co-authored-by: LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>
2021-04-18 23:43:53 +02:00
riperiperi
3f126487ab Data should not be public for nvapi unicode string 2021-04-18 17:34:01 +01:00
riperiperi
9e68f5026e Fix skipping missing shaders 2021-04-18 17:34:01 +01:00
riperiperi
d6547abebf Use IntPtr for handles, remove unsafe keyword 2021-04-18 17:34:00 +01:00
riperiperi
1239c82d2f Forcibly enable threaded optimization on boot. 2021-04-18 17:34:00 +01:00
riperiperi
b1c3e01691 Nit 2021-04-18 17:34:00 +01:00
riperiperi
35eac315ab The task isn't required for loading compute binary. 2021-04-18 17:33:59 +01:00
riperiperi
a0aa09912c Use event to wake the main thread on task completion 2021-04-18 17:33:59 +01:00
riperiperi
20d560e3f9 The new host program needs to be saved even if it isn't valid. 2021-04-18 17:33:59 +01:00
riperiperi
ddf4b92a9c Implement parallel host shader cache compilation. 2021-04-18 17:33:58 +01:00
Mary
bb43219f1d
Amadeus: Fix low pass base gain related issues on delay effect in mono (#2224)
This adds missing parenthesis around low pass z computation.

This fixes FEZ audio gain issues inside rooms. (Ryujinx/Ryujinx-Games-List#3526)
2021-04-18 13:34:20 +02:00
gdkchan
40e276c9b5
Improve shader global memory to storage pass (#2200)
* Improve shader global memory to storage pass

* Formatting and more comments

* Shader cache version bump
2021-04-18 12:31:39 +02:00