Commit graph

850 commits

Author SHA1 Message Date
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
gdk
6fd4e24e97 Add R2P shader instruction 2020-01-05 13:48:37 -03:00
gdk
2be0c2b436 Make the shader translator more error resilient (part 2) 2020-01-05 13:48:37 -03:00
gdk
c6035bf976 Make the shader translator more error resilient 2020-01-05 13:48:37 -03:00
gdk
4421f1cfc8 Add missing check for BRX, do not add a out of bounds block to the queue 2020-01-05 13:48:37 -03:00
gdk
5a8c9e6eda Invalidate shaders when they are modified 2020-01-05 13:48:37 -03:00
gdk
1ac837c4ed Add partial support for the BRX shader instruction 2020-01-05 13:48:37 -03:00
gdk
966a7b8a52 Fix image units bindings and shader dump in the presence of NOPs 2020-01-05 13:48:37 -03:00
gdk
9635369cdc Revert "Check for ASTC support on the list of supported compressed formats"
This reverts commit 38a993510f64346649529b8fd2af6683bef05aa6.
2020-01-05 13:48:37 -03:00
gdk
b14d9cf266 Check for ASTC support on the list of supported compressed formats 2020-01-05 13:48:37 -03:00
gdk
1f153565e2 Fix regression on load/store local (wrong type) 2020-01-05 13:48:37 -03:00
gdk
a6a8f5a69d Do not throw for invalid ASTC compressed textures 2020-01-05 13:48:37 -03:00
gdk
449d2f3f79 Add ATOMS, LDS, POPC, RED, STS and VOTE shader instructions, start changing the way how global memory is handled 2020-01-05 13:48:37 -03:00
gdk
306229718c Use a more efficient range list on the buffer manager 2020-01-05 13:48:37 -03:00
gdk
fcaa130c28 Remove some unused constants and other code 2020-01-05 13:48:37 -03:00
gdk
1a63025c47 Add partial support for array of samplers, and add pass to identify them from bindless texture accesses 2020-01-05 13:48:37 -03:00
gdk
f8b57cac2d Support window resizing 2020-01-05 13:48:37 -03:00
gdk
e325a9c6d1 Implement BFI, BRK, FLO, FSWZADD, PBK, SHFL and TXD shader instructions, misc. fixes 2020-01-05 13:48:37 -03:00
gdk
c48fdc3c33 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-05 13:48:37 -03:00
gdk
7e79dd7b85 Add shader support for the round mode on the F2F instruction, support mipmaps on ASTC compressed textures 2020-01-05 13:48:37 -03:00
gdk
d1175c1b5e Fix shader FMUL32I instruction saturation 2020-01-05 13:48:37 -03:00
gdk
a182721c30 Flush buffers on copies 2020-01-05 13:48:37 -03:00
gdk
14660acf68 Add per-source type memory change tracking, simplified state change tracking, other fixes 2020-01-05 13:48:37 -03:00
gdk
dd045439a4 Initial support for image stores, support texture sample on compute 2020-01-05 13:48:37 -03:00
gdk
564f94dc54 Fix incorrect saturation on HADD2 and HMUL2 shader instructions 2020-01-05 13:48:37 -03:00
gdk
9653fd4d33 Fix BC6 Signed/Unsigned float texture formats 2020-01-05 13:48:37 -03:00