Commit Graph

729 Commits (45ce25e84702383ef0dc0f7edef029556b96b2dd)

Author SHA1 Message Date
sunshineinabox 45ce25e847 Upon closer inspection actually descriptorIndex is only iterrated when there is a valid buffer, but bindings are always i+1. This could lead to potential errors. 2024-09-30 21:06:06 -07:00
sunshineinabox 8b0520d2cf
Merge branch 'master' into MoreDynamicStatesPartOne 2024-09-30 19:57:10 -07:00
sunshineinabox 6216566166 Update disk cache code generation version and use HashSet for processed pipelines
Use a hashset to compare against all generated pipelines vs only against the most recent one.
2024-09-30 18:15:37 -07:00
gdkchan 7d158acc3b
Do not try to create a texture pool if shader does not use textures (#7379) 2024-09-30 11:41:07 -03:00
sunshineinabox 7cc334b894 Resolve some errors in logic 2024-09-29 18:11:44 -07:00
sunshineinabox acbd9eb98f Set default Topology 2024-09-29 17:14:50 -07:00
sunshineinabox 95a0344eb4 Update shader cache handling to process old versions 2024-09-29 16:53:56 -07:00
sunshineinabox 4e501f1a70 Fix vertex buffer binding indices in Vulkan pipeline introduced from previous commit. 2024-09-28 10:46:01 -07:00
sunshineinabox afb0ce8785 Not needed 2024-09-28 09:17:58 -07:00
e2dk4r 5dbba07e33
sdl: set app name (#7370)
Ryujinx was not hinting application name, so on some platforms (e.g.
Linux) volume control shows Ryujinx as 'SDL Application'. This can cause
confusion.

This commit fixes name in volume control applets on some platforms.

see: https://wiki.libsdl.org/SDL2/SDL_HINT_APP_NAME
2024-09-28 10:44:23 +02:00
MaxLastBreath d86249cb0a
Convert MaxTextureCacheCapacity to Dynamic MaxTextureCacheCapacity for High Resolution Mod support. (#7307)
* Add Texture Size Capacity and 8GB Dram Build

* Update AutoDeleteCache.cs

* Dynamic Texture Cache (WIP)

* Change to float Multiplier, in-case it needs fine-tuning.

* Delete src/src.sln

* Update AutoDeleteCache.cs

* Format

* Fix Formatting

* Add DefaultTextureSizeCapacity and MemoryScaleFactor

- Also remove redundant New Lines

* Fix 4GB dram crashing

* Format newline

* Refractor

- Added Initialize() function to TextureCache and AutoDeleteCache
- Removed GetMaxTextureCapacity() function and instead added _maxCacheMemoryUsage
- Added private const MaxTextureSizeCapacity to AutoDelete Cache
- Added TextureCache.Initialize() to MemoryManager in order to fetch MaxGpuMemory at the right time.
- Moved and Changed Logger.Info for Gpu Memory to Logger.Notice and Moved it to PrintGpuInformation function.
- Opted to use a ternary operator for the Initialize function, I think it looks cleaner than bunch of if statements.

* Update src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs

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

* maxMemory to CacheMemory, use Clamp instead of Ternary. Changed MinTextureCapacity 1GiB to 512 MiB

* Update src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs

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

* Format comment

* comment context

* Increase TextureSize capacity for OpenGL back to 1024

- Added a new const ulong for OpenGLTextureSizeCapacity

* Fix changes from last commit.

* Adjust last OpenGL changes.

* Remove garbage VSC file

* Update src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs

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

* Update src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs

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

* Update src/Ryujinx.Graphics.Gpu/Image/AutoDeleteCache.cs

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

---------

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2024-09-26 14:33:38 -03:00
riperiperi 04d68ca616
GPU: Ensure all clip distances are initialized when used (#7363)
* GPU: Ensure all clip distances are initialized when used

* Shader cache version
2024-09-26 14:19:12 -03:00
sunshineinabox 5350e43f45 Theoretically avoid calling SignalStateChange when another command will set it 2024-09-22 18:33:16 -07:00
sunshineinabox 92f8d211c6 As SetPrimitiveTopology will call SignalStateChange so no need to call it again. 2024-09-22 17:25:34 -07:00
sunshineinabox 9fbfcae162
Merge branch 'master' into MoreDynamicStatesPartOne 2024-09-22 17:18:45 -07:00
sunshineinabox 5df2022a6b Only call SignalStateChange if there has been a change. 2024-09-22 17:03:35 -07:00
gdkchan 319507f2a1
Fix quads draws after DrawTexture on Vulkan (#7336) 2024-09-22 19:36:53 -03:00
sunshineinabox 72e57e4c6e Resolve validation error 2024-09-20 20:46:40 -07:00
gdkchan d717aef2be
Shader: Assume the only remaining source is the right one when all others are undefined (#7331)
* Shader: Assume the only remaining source is the right one when all other are undefined

* Shader cache version bump

* Improve comment
2024-09-19 21:23:09 -03:00
gdkchan 24ee8c39f1
Add support for sampler sRGB disable (#7312) 2024-09-19 14:38:30 -03:00
jhorv 73f985d27c
Replace passing by IMemoryOwner<byte> with passing by concrete MemoryOwner<byte> (#7171)
* refactor(perf): pass MemoryOwner<byte> around as itself rather than IMemoryOwner<byte>

* fix(perf): get span via MemoryOwner<byte>.Span property instead of through Memory property

* fix: incorrect comment change
2024-09-18 23:00:54 -03:00
gdkchan ef81658fbd
Implement support for shader ATOM.EXCH instruction (#7320)
* Implement support for shader ATOM.EXCH instruction

* Shader cache version bump

* Check type
2024-09-18 15:48:55 -03:00
gdkchan 062ef43eb4
Revert "Wait for async task to complete (#7122)" (#7318)
This reverts commit ccf96bf5e6.
2024-09-17 16:25:26 -03:00
gdkchan eb8132b627
Change image format view handling to allow view incompatible formats (#7311)
* Allow creating texture aliases on texture pool

* Delete old image format override code

* New format incompatible alias

* Missing bounds check

* GetForBinding now takes FormatInfo

* Make FormatInfo struct more compact
2024-09-17 15:52:30 -03:00
TSRBerry ccf96bf5e6
Wait for async task to complete (#7122)
This way exceptions thrown during the execution of CheckLaunchState()
will correctly invoke the unhandled exception handler
and cause Ryujinx to crash.
2024-09-17 15:42:00 -03:00
ZenoArrows f39e89ece7
Add area sampling scaler to allow for super-sampled anti-aliasing. (#7304)
* Add area sampling scaler to allow for super-sampled anti-aliasing.

* Area scaling filter doesn't have a scaling level.

* Add further clarification to the tooltip on how to achieve supersampling.

* ShaderHelper: Merge the two CompileProgram functions.

* Convert tabs to spaces in area scaling shaders

* Fixup Vulkan and OpenGL project files.

* AreaScaling: Replace texture() by texelFetch() and use integer vectors.

No functional difference, but it cleans up the code a bit.

* AreaScaling: Delete unused sharpening level member.

Also rename _scale to _sharpeningLevel for clarity and consistency.

* AreaScaling: Delete unused scaleX/scaleY uniforms.

* AreaScaling: Force the alpha to 1 when storing the pixel.

* AreaScaling: Remove left-over sharpening buffer.
2024-09-17 15:30:50 -03:00
gdkchan cf77c011e4
Change 6GB DRAM expansion to 8GB (#7313)
* Change 6GB DRAM expansion to 8GB

* Update texts and tooltips
2024-09-17 15:09:20 -03:00
gdkchan cd74ae1bbd
Implement fast DMA texture to texture copy (#7299)
* Implement fast DMA texture to texture copy

* PR feedback
2024-09-15 18:12:05 -03:00
Emmanuel Hansen 62216782ca
Make GetFunctionPointerForDelegate as explicit as possible (#7279)
Co-authored-by: gdk <gab.dark.100@gmail.com>
2024-09-15 17:39:10 -03:00
sunshineinabox 6e132e9fd7 Style correction 2024-09-13 15:28:21 -07:00
sunshineinabox bc14efe5f1 Avoid setting the dynamic state for feedback loop if it is not set avoids validation error. Also linewidth value is ignored if dynamic state is supported. 2024-09-13 15:22:05 -07:00
sunshineinabox b557dc805b Missed line 2024-09-13 10:44:39 -07:00
sunshineinabox 2d0c1c3a1c Code review suggestions 2024-09-13 08:13:44 -07:00
gdkchan 2f36a6665c
Implement Arm32 VSHLL and QADD16 instructions (#7301) 2024-09-12 18:22:30 -03:00
sunshineinabox dff81088e8 Replace Action array with a switch statment. 2024-09-09 22:03:50 -07:00
sunshineinabox 5a391f38fd Refactor Cull Mode to only send face. 2024-09-09 21:50:18 -07:00
sunshineinabox 2fd093d4b4 Avoid setting stride if dynamic state is supported 2024-09-09 21:17:44 -07:00
sunshineinabox f085b47b30 Address Feedback 2024-09-09 21:08:13 -07:00
sunshineinabox 01c6d5491e Code Review Suggestions 2024-09-09 18:53:40 -07:00
sunshineinabox 4a3b10fa9f
Apply suggestions from code review
Simple suggestions from code review

Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2024-09-09 18:11:35 -07:00
sunshineinabox d9c5b5c753 Correct typo 2024-09-09 11:04:33 -07:00
sunshineinabox 2a3069d9a1 Enable Vertex Input Binding Stride extended state when available on newer MVK 2024-09-09 11:02:07 -07:00
sunshineinabox 381abda2c8 Primitive restart is enabled/disabled based on the original topology before its converted to its topology class, make this behavior consistent 2024-09-09 09:01:00 -07:00
sunshineinabox 9bcc8374da Only attempt to change topology class if needed 2024-09-07 20:09:58 -07:00
sunshineinabox 1cb35a42db Rework to reduce code duplication and possibility of error.
Reduce number of pipelines?
2024-09-07 17:26:26 -07:00
sunshineinabox 2846e88a5d Clean up and some housekeeping 2024-09-04 19:51:26 -07:00
sunshineinabox 1fa1c7b01d Need to test this on Windows 2024-09-02 21:09:09 -07:00
sunshineinabox 91c3ac2701 Revert a change 2024-09-02 16:22:10 -07:00
sunshineinabox a7409e6fba Some missed changes 2024-09-02 12:40:29 -07:00
sunshineinabox 5e86d5e178 There will still be an issue with extension is supported and dynmaic state is not 2024-09-01 21:33:05 -07:00