Commit graph

2882 commits

Author SHA1 Message Date
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
gdk
eea2ae7599 Make the shader translator more error resilient (part 2) 2024-02-22 19:14:36 -05:00
gdk
2d807fd789 Make the shader translator more error resilient 2024-02-22 19:14:36 -05:00
gdk
987611fdf4 Add missing check for BRX, do not add a out of bounds block to the queue 2024-02-22 19:14:36 -05:00
gdk
74e3f3ee1c Invalidate shaders when they are modified 2024-02-22 19:14:36 -05:00
gdk
0d1fb50a53 Add partial support for the BRX shader instruction 2024-02-22 19:14:36 -05:00
gdk
dde40abaf1 Fix image units bindings and shader dump in the presence of NOPs 2024-02-22 19:14:36 -05:00
gdk
774b7038e3 Revert "Check for ASTC support on the list of supported compressed formats"
This reverts commit 38a993510f64346649529b8fd2af6683bef05aa6.
2024-02-22 19:14:36 -05:00
gdk
f1c48d4a1e Check for ASTC support on the list of supported compressed formats 2024-02-22 19:14:36 -05:00
gdk
98cd25c3cc Fix regression on load/store local (wrong type) 2024-02-22 19:14:36 -05:00
gdk
0811a6ca7c Do not throw for invalid ASTC compressed textures 2024-02-22 19:14:35 -05:00
gdk
360df1e42f Add ATOMS, LDS, POPC, RED, STS and VOTE shader instructions, start changing the way how global memory is handled 2024-02-22 19:14:35 -05:00
gdk
c7dccda2fc Use a more efficient range list on the buffer manager 2024-02-22 19:14:35 -05:00
gdk
fc8af96ad9 Remove some unused constants and other code 2024-02-22 19:14:35 -05:00
gdk
6ffc3baa91 Add partial support for array of samplers, and add pass to identify them from bindless texture accesses 2024-02-22 19:14:35 -05:00
gdk
55b1eaa6bd Support window resizing 2024-02-22 19:14:35 -05:00
gdk
a16a9d9aba Implement BFI, BRK, FLO, FSWZADD, PBK, SHFL and TXD shader instructions, misc. fixes 2024-02-22 19:14:35 -05:00
gdk
34f3d30991 Support copy of slices to 3D textures, remove old 3D render target layered render support, do not delete textures with existing views created from them 2024-02-22 19:14:35 -05:00
gdk
120a62fe64 Add shader support for the round mode on the F2F instruction, support mipmaps on ASTC compressed textures 2024-02-22 19:14:35 -05:00
gdk
6849e2f949 Fix shader FMUL32I instruction saturation 2024-02-22 19:14:35 -05:00
gdk
5df3dea349 Flush buffers on copies 2024-02-22 19:14:35 -05:00
gdk
d7f753bf52 Add per-source type memory change tracking, simplified state change tracking, other fixes 2024-02-22 19:14:35 -05:00
gdk
1a3eef1528 Initial support for image stores, support texture sample on compute 2024-02-22 19:14:34 -05:00
gdk
e02d201596 Fix incorrect saturation on HADD2 and HMUL2 shader instructions 2024-02-22 19:14:34 -05:00
gdk
d91e352f1f Fix BC6 Signed/Unsigned float texture formats 2024-02-22 19:14:34 -05:00
gdk
364b7a4ec2 Handle quad and quad strip primitive types using triangle fans 2024-02-22 19:14:34 -05:00
gdk
115687db97 Improved Min/Mip -> MinFilter enum conversion 2024-02-22 19:14:34 -05:00
gdk
8737d7d61f Calculate width from stride on texture copies 2024-02-22 19:14:34 -05:00