Commit graph

1009 commits

Author SHA1 Message Date
gdkchan
e4cea29bac Add XML documentation to Ryujinx.Graphics.Gpu.Shader 2024-02-22 19:14:40 -05:00
gdkchan
1a622faeeb Add XML documentation to Ryujinx.Graphics.Gpu.Memory 2024-02-22 19:14:40 -05:00
gdkchan
5b4b5856f0 Change GPU errors to debug and reduce log messages 2024-02-22 19:14:40 -05:00
gdkchan
e5f8cafeb3 Fix typos pointed out by LDj3SNuD 2024-02-22 19:14:40 -05:00
gdkchan
aee3dd5568 Remove some error logging to avoid log spam 2024-02-22 19:14:40 -05:00
gdkchan
fc8175689b Fix missing S8 format on texture compatibility check 2024-02-22 19:14:40 -05:00
gdkchan
836019f030 Add XML documentation to Ryujinx.Graphics.Gpu.Image 2024-02-22 19:14:40 -05:00
gdkchan
06030a5387 Fix AstcDecoder Success property never being set to true 2024-02-22 19:14:40 -05:00
gdkchan
872b2e5aea Some code cleanup 2024-02-22 19:14:39 -05:00
gdkchan
ab37a9fed1 Add basic error logging to the GPU 2024-02-22 19:14:39 -05:00
Alex Barney
b6b9054f8f ASTC optimizations (#845)
* ASTC optimizations

* Move code to Ryujinx.Common

* Support 3D textures

* Address feedback

* Remove ASTC logging

* Use stackalloc instead of a Buffer20 struct

* Code style and cleanup

* Respond to feedback

* Rearrange public/private property ordering
2024-02-22 19:14:39 -05:00
gdkchan
8a33757506 Reimplement limited bindless textures support 2024-02-22 19:14:39 -05:00
gdkchan
874a574b96 Initialize GPU physical memory accessor from KProcess, to allow homebrew that never maps anything on the GPU to work 2024-02-22 19:14:39 -05:00
gdkchan
ae1e5ba5f5 Stop memory modification check when a invalid address is found 2024-02-22 19:14:39 -05:00
gdkchan
25880caf22 Fix exception on shader translator when adding goto temp variable 2024-02-22 19:14:39 -05:00
gdkchan
c29722ca44 Support CC on FSET shader instruction, fix CC on ISET.BF shader instruction 2024-02-22 19:14:39 -05:00
gdkchan
1cc0d8ae11 Support texture rectangle targets (non-normalized coords) 2024-02-22 19:14:39 -05:00
gdkchan
147787b114 Partial support for shader memory barriers 2024-02-22 19:14:39 -05:00
gdkchan
39398258a8 Copy 16 bytes at a time for layout conversion, if possible 2024-02-22 19:14:39 -05:00
gdkchan
874fede031 Remove some usings that are not needed 2024-02-22 19:14:39 -05:00
gdkchan
3c37c94ed1 Correct non-constant offset rewrite for texelFetch 2024-02-22 19:14:39 -05:00
gdkchan
0e1f133afe Support non-constant texture offsets on non-NVIDIA gpus 2024-02-22 19:14:38 -05:00
gdkchan
c6ed61422a Use correct shared memory size (in words, not bytes) 2024-02-22 19:14:38 -05:00
gdkchan
a60638a2b6 Ensure a valid shared memory size is used 2024-02-22 19:14:38 -05:00
gdkchan
f9a31701da Use dispatch params shared memory size when available 2024-02-22 19:14:38 -05:00
gdkchan
f93c027a8e Use maximum shared memory size supported by hardware 2024-02-22 19:14:38 -05:00
gdkchan
6832d03ffb Fix draw indexed flag not being cleared for instanced draws, also avoid state updates in the middle of a indexed draw 2024-02-22 19:14:38 -05:00
gdkchan
e41e003d15 Support 3D ASTC textures (using 2D blocks) 2024-02-22 19:14:38 -05:00
gdkchan
fe6279b8fa Support bindless texture gather shader instruction 2024-02-22 19:14:38 -05:00
gdkchan
3e1c91ea95 Support depth clip mode and disable shader fast math optimization on NVIDIA as a workaround for compiler bugs (?) 2024-02-22 19:14:38 -05:00
gdkchan
4507ebbca6 Fix wrong maximum id on sampler pool in some cases 2024-02-22 19:14:38 -05:00
gdkchan
d1dddbe402 Support shared color mask, implement more shader instructions
Support shared color masks (used by Nouveau and maybe the NVIDIA
driver).
Support draw buffers (also required by OpenGL).
Support viewport transform disable (disabled for now as it breaks some
games).
Fix instanced rendering draw being ignored for multi draw.
Fix IADD and IADD3 immediate shader encodings, that was not matching
some ops.
Implement FFMA32I shader instruction.
Implement IMAD shader instruction.
2024-02-22 19:14:37 -05:00
gdkchan
914fb9bc45 Initial support for the guest OpenGL driver (NVIDIA and Nouveau) 2024-02-22 19:14:37 -05:00
gdk
bca8e0f58e Add a pass to turn global memory access into storage access, and do all storage related transformations on IR 2024-02-22 19:14:37 -05:00
gdk
6a38d22dd7 Fix texture 0 not being bound for compute 2024-02-22 19:14:37 -05:00
gdk
14064061a2 Partial support for branch with CC, and fix a edge case of branch out of loop on shaders 2024-02-22 19:14:37 -05:00
gdk
889090fb6a Simplified F2I shader instruction codegen 2024-02-22 19:14:37 -05:00
gdk
31dd3ecf34 Implement HSET2 shader instruction and fix errors uncovered by Rodrigo tests 2024-02-22 19:14:37 -05:00
gdk
290762192e Fix shader code comparison method 2024-02-22 19:14:37 -05:00
gdk
d767af9985 Optimize RangeList by not doing an allocation on every call to the Find methods 2024-02-22 19:14:37 -05:00
gdk
10c9ef35c6 Add PSET shader instruction 2024-02-22 19:14:37 -05:00
gdk
731d58e42d Revert "Simplify shader uniform buffer access codegen"
This reverts commit 2fe9ebaf118d690be8d0cb302529dd359d7c402b.
2024-02-22 19:14:37 -05:00
gdk
517f5d4ff0 Simplify shader uniform buffer access codegen 2024-02-22 19:14:36 -05:00
gdk
0b2cf9c6cd Improved and simplified window texture presentation 2024-02-22 19:14:36 -05:00
gdk
7e6ba6b554 Small optimizations on texture and sampler pool invalidation 2024-02-22 19:14:36 -05:00
gdk
b19ac2b1cf Correct ordering of compute buffer bind 2024-02-22 19:14:36 -05:00
gdk
06c510932b Share texture pool cache between graphics and compute 2024-02-22 19:14:36 -05:00
gdk
c5f633b892 Separate sub-channel state 2024-02-22 19:14:36 -05:00
gdk
39bf6c5239 Remove TranslatorConfig struct 2024-02-22 19:14:36 -05:00
gdk
acd6245584 Add R2P shader instruction 2024-02-22 19:14:36 -05:00