Commit graph

470 commits

Author SHA1 Message Date
jduncanator
e30388b230 Asynchronously log messages to the Console window (#395)
* Logging: Asynchronously log messages to the Console window

Writing to the Console blocks until the write completes. This has the potential to block any code path that logs to the application logger.

By queuing up log messages in an asynchronous queue and returning without blocking, we can speed up code paths that heavily log to the console (for example stubbed services like ServiceHid).

From testing this results in a roughly 8% time decrease between Ryujinx startup and the splash screen in Super Mario Odyssey on my system - 00:03:19.591 down to
00:03:04.354. Depending on your system, YMMV.

* Logging: Resolve code styling issues
2024-02-22 19:13:54 -05:00
emmauss
451fa73b3b Implement loading of profile image (#391)
* implement loading of profile image

* rename icon to profilepicture

* rename icon file
2024-02-22 19:13:54 -05:00
gdkchan
b3c6177f7b Fix exception throw message for unimpl texture formats (#398) 2024-02-22 19:13:53 -05:00
ReinUsesLisp
a53611dcd8 Shaders: Handle Ipa PASS argument as needed in Fragment Shaders (#392) 2024-02-22 19:13:53 -05:00
HorrorTroll
4c247f04a5 Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format (#377)
* Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format

* Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format

* Revert "Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format"

This reverts commit aea5c9db3a.

* Conflicts fix

* Wrong fix

* E

* e
2024-02-22 19:13:53 -05:00
gdkchan
6a357d693e Improve handling on QueryGet on the gpu (#397) 2024-02-22 19:13:53 -05:00
LDj3SNuD
b0fdc50e8e Add Fcvtns_S, Fcvtns_V, Fcvtnu_S, Fcvtnu_V (AOpCodeSimd) FP & Umlal_V, Umlsl_V, Saddl_V, Ssubl_V, Usubl_V instructions; add 8 FP & 16 S/Umlal_V, S/Umlsl_V, S/Uaddl_V, S/Usubl_V Tests. (#390)
* Update AOpCodeTable.cs

* Update AInstEmitSimdCvt.cs

* Update Pseudocode.cs

* Update Instructions.cs

* Update CpuTestSimd.cs

* Update AOpCodeTable.cs

* Update AInstEmitSimdArithmetic.cs

* Update Instructions.cs

* Update CpuTestSimdReg.cs

* Update CpuTestSimd.cs

* Update AOpCodeTable.cs

* Update AInstEmitSimdArithmetic.cs

* Update Instructions.cs

* Update CpuTestSimdReg.cs

* Add QCFlagBit.

* Add QCFlagBit.
2024-02-22 19:13:53 -05:00
Merry
81b68e076b Ryujinx.Tests: Add unicorn to test framework (#389)
* Ryujinx.Tests: Add unicorn to test framework

* CpuTestSimdArithmetic: Comment out inaccurate results
2024-02-22 19:13:53 -05:00
ReinUsesLisp
3953fe522b Implement SSY/SYNC shader instructions (#382)
* Use a program counter to control shaders' flow

* Cleanup

* Implement SSY/SYNC

* Address feedback

* Fixup commentary

* Fixup Ssy instruction
2024-02-22 19:13:53 -05:00
ReinUsesLisp
1dc5d67162 Fixup HasColor for depth/stencil values (#379) 2024-02-22 19:13:53 -05:00
HorrorTroll
2a1a94a197 Add R32_G32 texture format (#383) 2024-02-22 19:13:53 -05:00
LDj3SNuD
d6f80069fe Add SHADD, SHSUB, UHSUB, SRHADD, URHADD, instructions; add 12 Tests. (#380)
* Update AOpCodeTable.cs

* Update AInstEmitSimdArithmetic.cs

* Update Instructions.cs

* Update CpuTestSimdReg.cs

* Update CpuTest.cs

* Update CpuTestSimd.cs

* Update CpuTestSimdCrypto.cs
2024-02-22 19:13:53 -05:00
ReinUsesLisp
be06f80f57 Use mirrored texture wraps when available (#361) 2024-02-22 19:13:53 -05:00
ReinUsesLisp
3fbe50f3db Implement vertex instancing (#381) 2024-02-22 19:13:53 -05:00
emmauss
ba57d37112 Update BSD service implementation (#363)
* Update BSD service to handle libnx's 'smart IPC buffers' for address info

* Use existing "GetBufferType0x21" for certain BSD socket methods

* Parse address port as unsigned short

* Fix bounds check on reading the IPC buffer

* Implement Read, Write methods

* rebased and cleaned

* addressed nits

* remove unused swap method

* fixed alignments
2024-02-22 19:13:53 -05:00
ReinUsesLisp
1e263d84fb Implement multiple rendertarget attachments and depth writting (#375)
* Add depth writting

* Implement multiple attachments

* Address feedback
2024-02-22 19:13:52 -05:00
gdkchan
773c315c9d Fix BinarySearchLt to return less than rather than less than or equal value (#372) 2024-02-22 19:13:52 -05:00
ReinUsesLisp
f19d9a3aaa Avoid querying and setting texture bindings in hot code (#376) 2024-02-22 19:13:52 -05:00
Thomas Guillemard
d64d56a3b3 Improve LM implementation (#373)
- Manage end of the log packet correctly.
- Add drop count, time, and program name parsing.
- Use the correct buffer type. (0x21 not 0x9)
- Prefix unknown fields with "Field"
2024-02-22 19:13:52 -05:00
Thomas Guillemard
1ad79b3032 SvcSetHeapSize: match kernel check for invalid size (#374)
This fix games like DK Country
2024-02-22 19:13:52 -05:00
ReinUsesLisp
8aac21ac9a Avoid gpr overwritting on Ld_C instruction (#371)
* Avoid gpr overwritting on LD_C instruction

* Address feedback

* Ignore invalid registers
2024-02-22 19:13:52 -05:00
ReinUsesLisp
cd0b375682 Use signed and unsigned vertex types (#370) 2024-02-22 19:13:52 -05:00
LDj3SNuD
3abd56876c Add AESD, AESE, AESIMC, AESMC instructions; add 4 simple Tests (closed box). (#365)
* Create CpuTestSimdCrypto.cs

* Update AOpCodeTable.cs

* Create AInstEmitSimdCrypto.cs

* Update ASoftFallback.cs

* Create ACryptoHelper.cs
2024-02-22 19:13:52 -05:00
ReinUsesLisp
0cf9510db3 Rendertarget attachments, texture and image changes (#358)
* Add multiple color outputs for fragment shaders

* Add registers and gal enums

* Use textures for framebuffers and split color and zeta framebuffers

* Abstract texture and framebuffer targets as an image

* Share images between framebuffers and textures

* Unstub formats

* Add some formats

* Disable multiple attachments

* Cache framebuffer attachments

* Handle format types

* Add some rendertarget formats

* Code cleanup

* Fixup half float types

* Address feedback

* Disable multiple attachments in shaders

* Add A4B4G4R4 image format

* Add reversed section for image enums
2024-02-22 19:13:52 -05:00
gdkchan
d297c815c6 Fix MapPhysicalMemory when block position is less than map position (#359)
* Fix MapPhysicalMemory when block position is less than map position

* Only try to free pages that are actually mapped

* Only unmap after freeing the memory
2024-02-22 19:13:52 -05:00
LDj3SNuD
2bbf1a9b0d Add SHA256H, SHA256H2, SHA256SU0, SHA256SU1 instructions; add 4 Tests (closed box). (#352)
* Update CpuTestSimd.cs

* Update CpuTestSimdReg.cs

* Update Pseudocode.cs

* Update Instructions.cs

* Update Bits.cs

* Update Integer.cs

* Update AOpCodeTable.cs

* Create AInstEmitSimdHash.cs

* Update ASoftFallback.cs
2024-02-22 19:13:52 -05:00
gdkchan
e2f56dc5ba Code style fixes and nits on the HLE project (#355)
* Some style fixes and nits on ITimeZoneService

* Remove some unneeded usings

* Remove the Ryujinx.HLE.OsHle.Handles namespace

* Remove hbmenu automatic load on process exit

* Rename Ns to Device, rename Os to System, rename SystemState to State

* Move Exceptions and Utilities out of OsHle

* Rename OsHle to HOS

* Rename OsHle folder to HOS

* IManagerDisplayService and ISystemDisplayService style fixes

* BsdError shouldn't be public

* Add a empty new line before using static

* Remove unused file

* Some style fixes on NPDM

* Exit gracefully when the application is closed

* Code style fixes on IGeneralService

* Add 0x prefix on values printed as hex

* Small improvements on finalization code

* Move ProcessId and ThreadId out of AThreadState

* Rename VFs to FileSystem

* FsAccessHeader shouldn't be public. Also fix file names casing

* More case changes on NPDM

* Remove unused files

* Move using to the correct place on NPDM

* Use properties on KernelAccessControlMmio

* Address PR feedback
2024-02-22 19:13:52 -05:00
gdkchan
13ec6bc774 Remove artificial call count limit for EndGl (#357) 2024-02-22 19:13:51 -05:00
ReinUsesLisp
5df3f11e26 Implement PointCoord and PointSize shader attributes (#353)
* Implement PointCoord and PointSize shader attributes

* Address feedback
2024-02-22 19:13:51 -05:00
gdkchan
0547a73420 More flexible memory manager (#307)
* Keep track mapped buffers with fixed offsets

* Started rewriting the memory manager

* Initial support for MapPhysicalMemory and UnmapPhysicalMemory, other tweaks

* MapPhysicalMemory/UnmapPhysicalMemory support, other tweaks

* Rebased

* Optimize the map/unmap physical memory svcs

* Integrate shared font support

* Fix address space reserve alignment

* Some fixes related to gpu memory mapping

* Some cleanup

* Only try uploading const buffers that are really used

* Check if memory region is contiguous

* Rebased

* Add missing count increment on IsRegionModified

* Check for reads/writes outside of the address space, optimize translation with a tail call
2024-02-22 19:13:51 -05:00
emmauss
b2abd99588 Implement ITimeZone 201, 202 (#327)
* Implement ITimeZone 201, 202

* fix alignment

* fix array count

* fix mismatching datetime kind and timezone
2024-02-22 19:13:51 -05:00
gdkchan
0e65d99f53 Zero out bits 63:32 of scalar float operations with SSE intrinsics (#273) 2024-02-22 19:13:51 -05:00
ReinUsesLisp
bf374b2c44 Reset cache on command buffer execution instead of sync calls (#341)
Also resets const buffer cache on CbData calls.
Non-const buffer data might also change while a command buffer is
executing but that's very unlikely.
2024-02-22 19:13:51 -05:00
gdkchan
372a47b6be Better support for user accounts (#349)
* Better support for user accounts

* Nits

* Check for invalid ids
2024-02-22 19:13:51 -05:00
emmauss
00c8721991 Implement IProfile Get and GetBase (#266)
* implement IProfile Get(Base)

* use default user

* changed userid
2024-02-22 19:13:51 -05:00
gdkchan
526094bba4 Fix FMUL and TEXS shader instructions (#347) 2024-02-22 19:13:51 -05:00
emmauss
f3f91ea3cf Implement AcquireNpadStyleSetUpdate event (#306)
* implement get npad set event

* move npad style set event to hid service

* fix spacing

* change event to field

* dispose event
2024-02-22 19:13:51 -05:00
gdkchan
d74d0072fc Add partial support to the TEX.B shader instruction (#342)
* Add partial support to the TEX.B shader instruction, fix for mixed indexed and non-indexed drawing

* Better exception
2024-02-22 19:13:51 -05:00
LDj3SNuD
302240c8de Add Sadalp_V, Saddlp_V, Uadalp_V, Uaddlp_V instructions; add 8 Tests. (#340)
* Update Instructions.cs

* Update CpuTestSimd.cs

* Update AOpCodeTable.cs

* Update AInstEmitSimdArithmetic.cs
2024-02-22 19:13:50 -05:00
Unknown
c05b24f330 fix DockedMode variable
delete unneeded spaces

fix DockedMode variable

fix DockedMode variable

change PerformanceMode cast to int
align ICommonStateGetter Commands
2024-02-22 19:13:50 -05:00
emmaus
9d5b0c7496 implemented ListDisplays 2024-02-22 19:13:50 -05:00
emmauss
0c4d613f1b fix dock mode style issues 2024-02-22 19:13:50 -05:00
greggameplayer
9dbc5f0f4c Add the ability to set or not docked mode via config file (#227)
* Add a toggleable DockedMode bool
2024-02-22 19:13:50 -05:00
LDj3SNuD
64810c9ac7 Add Sqdmulh_S, Sqdmulh_V, Sqrdmulh_S, Sqrdmulh_V instructions; add 6 Tests. Now all saturating methods are on ASoftFallback. (#334)
* Update Instructions.cs

* Update CpuTestSimd.cs

* Update CpuTestSimdReg.cs

* Update AOpCodeTable.cs

* Update AInstEmitSimdArithmetic.cs

* Update AInstEmitSimdHelper.cs

* Update ASoftFallback.cs

* Update CpuTestAlu.cs

* Update CpuTestAluImm.cs

* Update CpuTestAluRs.cs

* Update CpuTestAluRx.cs

* Update CpuTestBfm.cs

* Update CpuTestCcmpImm.cs

* Update CpuTestCcmpReg.cs

* Update CpuTestCsel.cs

* Update CpuTestMov.cs

* Update CpuTestMul.cs

* Update Ryujinx.Tests.csproj

* Update Ryujinx.csproj

* Update Luea.csproj

* Update Ryujinx.ShaderTools.csproj

* Address PR feedback (further tested).

* Address PR feedback.
2024-02-22 19:13:50 -05:00
gdkchan
7a02548c0c Fix load/store exclusive/atomic pairwise instructions (#337) 2024-02-22 19:13:50 -05:00
ReinUsesLisp
7bdf17ce9d Low level graphics API prerequisites (#319)
* Add GalPipelineState and IGalPipeline

* Separate UploadVertex call

* Add ConstBuffer cache

* Move Vertex Assembly into GalPipelineState

* Move Uniform binds to GalPipelineState

* Move framebuffer flip into a buffer

* Rebase

* Fix regression

* Move clear values from VertexEndGl to ClearBuffers

* Rename obscure names O->Old S->New
2024-02-22 19:13:50 -05:00
greggameplayer
96c44b35a5 Add SetScreenShotImageOrientation (#310)
* Add SetScreenShotImageOrientation

* add a stubbed print
2024-02-22 19:13:50 -05:00
gdkchan
d3572c972c Fix race condition on IdDictionary (#333) 2024-02-22 19:13:50 -05:00
Darabat
17e327e443 Changing shader decompiler to avoid vec2 and vec3 types, which were causing specific crashes. (#332)
* Changing shader decompiler to avoid vec2 and vec3 types, which were causing specific crashes.

* aligning code

* step back

* Redoing changes

* Redoing changes

* Redoing changes and avoiding concatenations

* redoing changes
2024-02-22 19:13:50 -05:00
gdkchan
c029b66908 Fix silly copy/paste error on float variant of the FMINNM instruction 2024-02-22 19:13:50 -05:00