951 Commits

Author SHA1 Message Date
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
gdk
9311e8dfe9 Fix regression on load/store local (wrong type) 2020-01-09 02:13:00 +01:00
gdk
2a487b2afe Do not throw for invalid ASTC compressed textures 2020-01-09 02:13:00 +01:00
gdk
f7cec66ce0 Add ATOMS, LDS, POPC, RED, STS and VOTE shader instructions, start changing the way how global memory is handled 2020-01-09 02:13:00 +01:00
gdk
d3b01b929c Use a more efficient range list on the buffer manager 2020-01-09 02:13:00 +01:00
gdk
a11f411c87 Remove some unused constants and other code 2020-01-09 02:13:00 +01:00
gdk
bd0a16ecbf Add partial support for array of samplers, and add pass to identify them from bindless texture accesses 2020-01-09 02:13:00 +01:00
gdk
7aad13d242 Support window resizing 2020-01-09 02:13:00 +01:00
gdk
dd8a838a81 Implement BFI, BRK, FLO, FSWZADD, PBK, SHFL and TXD shader instructions, misc. fixes 2020-01-09 02:13:00 +01:00
gdk
5fb601a2fe 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 2020-01-09 02:13:00 +01:00
gdk
ce10d3c6ff Add shader support for the round mode on the F2F instruction, support mipmaps on ASTC compressed textures 2020-01-09 02:13:00 +01:00
gdk
034ac4ed92 Fix shader FMUL32I instruction saturation 2020-01-09 02:13:00 +01:00
gdk
9a2c6c4ad6 Flush buffers on copies 2020-01-09 02:13:00 +01:00
gdk
0c7c38df0f Add per-source type memory change tracking, simplified state change tracking, other fixes 2020-01-09 02:13:00 +01:00
gdk
c9abf08686 Initial support for image stores, support texture sample on compute 2020-01-09 02:13:00 +01:00
gdk
398ee33a16 Fix incorrect saturation on HADD2 and HMUL2 shader instructions 2020-01-09 02:13:00 +01:00
gdk
4b53b0b01d Fix BC6 Signed/Unsigned float texture formats 2020-01-09 02:13:00 +01:00