Commit graph

875 commits

Author SHA1 Message Date
gdkchan
c1a2b2206a Add XML documentation to Ryujinx.Graphics.Gpu.State 2020-01-05 13:48:39 -03:00
gdkchan
4c09bc5756 Add XML documentation to Ryujinx.Graphics.Gpu.Shader 2020-01-05 13:48:39 -03:00
gdkchan
f399134ae5 Add XML documentation to Ryujinx.Graphics.Gpu.Memory 2020-01-05 13:48:39 -03:00
gdkchan
f1014e802d Change GPU errors to debug and reduce log messages 2020-01-05 13:48:39 -03:00
gdkchan
9f23e6b460 Fix typos pointed out by LDj3SNuD 2020-01-05 13:48:39 -03:00
gdkchan
d1cdf6015b Remove some error logging to avoid log spam 2020-01-05 13:48:39 -03:00
gdkchan
730f9556fa Fix missing S8 format on texture compatibility check 2020-01-05 13:48:39 -03:00
gdkchan
28559e8811 Add XML documentation to Ryujinx.Graphics.Gpu.Image 2020-01-05 13:48:39 -03:00
gdkchan
b6ca70cba6 Fix AstcDecoder Success property never being set to true 2020-01-05 13:48:39 -03:00
gdkchan
9302bdd9b7 Some code cleanup 2020-01-05 13:48:39 -03:00
gdkchan
3de3202394 Add basic error logging to the GPU 2020-01-05 13:48:39 -03:00
Alex Barney
259d4febc7 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
2020-01-05 13:48:39 -03:00
gdkchan
7b0465b008 Reimplement limited bindless textures support 2020-01-05 13:48:38 -03:00
gdkchan
ff31ac3529 Initialize GPU physical memory accessor from KProcess, to allow homebrew that never maps anything on the GPU to work 2020-01-05 13:48:38 -03:00
gdkchan
90c6a2eef6 Stop memory modification check when a invalid address is found 2020-01-05 13:48:38 -03:00
gdkchan
a0f5aa5d78 Fix exception on shader translator when adding goto temp variable 2020-01-05 13:48:38 -03:00
gdkchan
b97c24d3c5 Support CC on FSET shader instruction, fix CC on ISET.BF shader instruction 2020-01-05 13:48:38 -03:00
gdkchan
eaa3804894 Support texture rectangle targets (non-normalized coords) 2020-01-05 13:48:38 -03:00
gdkchan
adcb5bbe54 Partial support for shader memory barriers 2020-01-05 13:48:38 -03:00
gdkchan
95d7686a81 Copy 16 bytes at a time for layout conversion, if possible 2020-01-05 13:48:38 -03:00
gdkchan
808a8fb3ca Remove some usings that are not needed 2020-01-05 13:48:38 -03:00
gdkchan
ab60879d64 Correct non-constant offset rewrite for texelFetch 2020-01-05 13:48:38 -03:00
gdkchan
c0941fcd92 Support non-constant texture offsets on non-NVIDIA gpus 2020-01-05 13:48:38 -03:00
gdkchan
c286508354 Use correct shared memory size (in words, not bytes) 2020-01-05 13:48:38 -03:00
gdkchan
c8b49ecf0f Ensure a valid shared memory size is used 2020-01-05 13:48:38 -03:00
gdkchan
494b758937 Use dispatch params shared memory size when available 2020-01-05 13:48:38 -03:00
gdkchan
ae9ed388b1 Use maximum shared memory size supported by hardware 2020-01-05 13:48:38 -03:00
gdkchan
d428170695 Fix draw indexed flag not being cleared for instanced draws, also avoid state updates in the middle of a indexed draw 2020-01-05 13:48:38 -03:00
gdkchan
c9c6efbe4f Support 3D ASTC textures (using 2D blocks) 2020-01-05 13:48:38 -03:00
gdkchan
223482b9a5 Support bindless texture gather shader instruction 2020-01-05 13:48:38 -03:00
gdkchan
a513794992 Support depth clip mode and disable shader fast math optimization on NVIDIA as a workaround for compiler bugs (?) 2020-01-05 13:48:38 -03:00
gdkchan
a4acdedf73 Fix wrong maximum id on sampler pool in some cases 2020-01-05 13:48:38 -03:00
gdkchan
a2bf9e084b 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.
2020-01-05 13:48:38 -03:00
gdkchan
a67686b4c0 Initial support for the guest OpenGL driver (NVIDIA and Nouveau) 2020-01-05 13:48:38 -03:00
gdk
554aa5f16d Add a pass to turn global memory access into storage access, and do all storage related transformations on IR 2020-01-05 13:48:38 -03:00
gdk
9c486bd1ef Fix texture 0 not being bound for compute 2020-01-05 13:48:38 -03:00
gdk
f679a0398f Partial support for branch with CC, and fix a edge case of branch out of loop on shaders 2020-01-05 13:48:38 -03:00
gdk
716e0d8657 Simplified F2I shader instruction codegen 2020-01-05 13:48:38 -03:00
gdk
c83530d744 Implement HSET2 shader instruction and fix errors uncovered by Rodrigo tests 2020-01-05 13:48:38 -03:00
gdk
3c6df2d218 Fix shader code comparison method 2020-01-05 13:48:38 -03:00
gdk
8523b3fb17 Optimize RangeList by not doing an allocation on every call to the Find methods 2020-01-05 13:48:38 -03:00
gdk
09f972faa3 Add PSET shader instruction 2020-01-05 13:48:38 -03:00
gdk
e920960d96 Revert "Simplify shader uniform buffer access codegen"
This reverts commit 2fe9ebaf118d690be8d0cb302529dd359d7c402b.
2020-01-05 13:48:38 -03:00
gdk
eb76e048cc Simplify shader uniform buffer access codegen 2020-01-05 13:48:37 -03:00
gdk
13aaba88f7 Improved and simplified window texture presentation 2020-01-05 13:48:37 -03:00
gdk
1ccc370c4f Small optimizations on texture and sampler pool invalidation 2020-01-05 13:48:37 -03:00
gdk
a5847e6c48 Correct ordering of compute buffer bind 2020-01-05 13:48:37 -03:00
gdk
31f8d9b412 Share texture pool cache between graphics and compute 2020-01-05 13:48:37 -03:00
gdk
3800b07f01 Separate sub-channel state 2020-01-05 13:48:37 -03:00
gdk
fcb98959f2 Remove TranslatorConfig struct 2020-01-05 13:48:37 -03:00