gdkchan
d42edddefd
Some code cleanup
2020-01-09 02:13:00 +01:00
gdkchan
155c2ee2fe
Add basic error logging to the GPU
2020-01-09 02:13:00 +01:00
Alex Barney
7c4256a713
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-09 02:13:00 +01:00
gdkchan
f7277e76e3
Reimplement limited bindless textures support
2020-01-09 02:13:00 +01:00
gdkchan
8e777be7b4
Initialize GPU physical memory accessor from KProcess, to allow homebrew that never maps anything on the GPU to work
2020-01-09 02:13:00 +01:00
gdkchan
b9f3dad452
Stop memory modification check when a invalid address is found
2020-01-09 02:13:00 +01:00
gdkchan
d125c0ebfe
Fix exception on shader translator when adding goto temp variable
2020-01-09 02:13:00 +01:00
gdkchan
c009bcc9e5
Support CC on FSET shader instruction, fix CC on ISET.BF shader instruction
2020-01-09 02:13:00 +01:00
gdkchan
0dedc2bf7e
Support texture rectangle targets (non-normalized coords)
2020-01-09 02:13:00 +01:00
gdkchan
7bfde41ea4
Partial support for shader memory barriers
2020-01-09 02:13:00 +01:00
gdkchan
95fa831bdd
Copy 16 bytes at a time for layout conversion, if possible
2020-01-09 02:13:00 +01:00
gdkchan
cd111a82aa
Remove some usings that are not needed
2020-01-09 02:13:00 +01:00
gdkchan
49959e3cd0
Correct non-constant offset rewrite for texelFetch
2020-01-09 02:13:00 +01:00
gdkchan
84e5a32fd3
Support non-constant texture offsets on non-NVIDIA gpus
2020-01-09 02:13:00 +01:00
gdkchan
bd2d194183
Use correct shared memory size (in words, not bytes)
2020-01-09 02:13:00 +01:00
gdkchan
ef28012710
Ensure a valid shared memory size is used
2020-01-09 02:13:00 +01:00
gdkchan
8cd2823869
Use dispatch params shared memory size when available
2020-01-09 02:13:00 +01:00
gdkchan
46a6580c8b
Use maximum shared memory size supported by hardware
2020-01-09 02:13:00 +01:00
gdkchan
dd6be05b96
Fix draw indexed flag not being cleared for instanced draws, also avoid state updates in the middle of a indexed draw
2020-01-09 02:13:00 +01:00
gdkchan
6df062b81a
Support 3D ASTC textures (using 2D blocks)
2020-01-09 02:13:00 +01:00
gdkchan
745814f94c
Support bindless texture gather shader instruction
2020-01-09 02:13:00 +01:00
gdkchan
ab20360779
Support depth clip mode and disable shader fast math optimization on NVIDIA as a workaround for compiler bugs (?)
2020-01-09 02:13:00 +01:00
gdkchan
12f573e342
Fix wrong maximum id on sampler pool in some cases
2020-01-09 02:13:00 +01:00
gdkchan
d5e8fc5c08
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-09 02:13:00 +01:00
gdkchan
5c2f6cc0b7
Initial support for the guest OpenGL driver (NVIDIA and Nouveau)
2020-01-09 02:13:00 +01:00
gdk
85a00d4d76
Add a pass to turn global memory access into storage access, and do all storage related transformations on IR
2020-01-09 02:13:00 +01:00
gdk
d218b13ef1
Fix texture 0 not being bound for compute
2020-01-09 02:13:00 +01:00
gdk
f4582f9ff0
Partial support for branch with CC, and fix a edge case of branch out of loop on shaders
2020-01-09 02:13:00 +01:00
gdk
77e2ab39cf
Simplified F2I shader instruction codegen
2020-01-09 02:13:00 +01:00
gdk
4b9867daae
Implement HSET2 shader instruction and fix errors uncovered by Rodrigo tests
2020-01-09 02:13:00 +01:00
gdk
4584e6f6fc
Fix shader code comparison method
2020-01-09 02:13:00 +01:00
gdk
08e426760a
Optimize RangeList by not doing an allocation on every call to the Find methods
2020-01-09 02:13:00 +01:00
gdk
4dc7e8eecd
Add PSET shader instruction
2020-01-09 02:13:00 +01:00
gdk
5acd231ba9
Revert "Simplify shader uniform buffer access codegen"
...
This reverts commit 2fe9ebaf118d690be8d0cb302529dd359d7c402b.
2020-01-09 02:13:00 +01:00
gdk
c558897292
Simplify shader uniform buffer access codegen
2020-01-09 02:13:00 +01:00
gdk
8c26739c58
Improved and simplified window texture presentation
2020-01-09 02:13:00 +01:00
gdk
e8e4133745
Small optimizations on texture and sampler pool invalidation
2020-01-09 02:13:00 +01:00
gdk
ba3e0a6050
Correct ordering of compute buffer bind
2020-01-09 02:13:00 +01:00
gdk
77070aec08
Share texture pool cache between graphics and compute
2020-01-09 02:13:00 +01:00
gdk
c46d0a66d0
Separate sub-channel state
2020-01-09 02:13:00 +01:00
gdk
dfb16f19d8
Remove TranslatorConfig struct
2020-01-09 02:13:00 +01:00
gdk
d59bcf8f22
Add R2P shader instruction
2020-01-09 02:13:00 +01:00
gdk
bda4d677d0
Make the shader translator more error resilient (part 2)
2020-01-09 02:13:00 +01:00
gdk
d6cf87194c
Make the shader translator more error resilient
2020-01-09 02:13:00 +01:00
gdk
2dcb452a09
Add missing check for BRX, do not add a out of bounds block to the queue
2020-01-09 02:13:00 +01:00
gdk
9e316e6025
Invalidate shaders when they are modified
2020-01-09 02:13:00 +01:00
gdk
c8398482ef
Add partial support for the BRX shader instruction
2020-01-09 02:13:00 +01:00
gdk
ecdb433a68
Fix image units bindings and shader dump in the presence of NOPs
2020-01-09 02:13:00 +01:00
gdk
82e8457838
Revert "Check for ASTC support on the list of supported compressed formats"
...
This reverts commit 38a993510f64346649529b8fd2af6683bef05aa6.
2020-01-09 02:13:00 +01:00
gdk
f4265e3abe
Check for ASTC support on the list of supported compressed formats
2020-01-09 02:13:00 +01:00