Commit graph

851 commits

Author SHA1 Message Date
gdkchan
cf8dcede68 Support CC on FSET shader instruction, fix CC on ISET.BF shader instruction 2019-12-24 22:56:17 -03:00
gdkchan
8f87711269 Support texture rectangle targets (non-normalized coords) 2019-12-24 22:56:17 -03:00
gdkchan
b8d3bd6eb3 Partial support for shader memory barriers 2019-12-24 22:56:17 -03:00
gdkchan
0445ef090c Copy 16 bytes at a time for layout conversion, if possible 2019-12-24 22:56:17 -03:00
gdkchan
12fc90f6b1 Remove some usings that are not needed 2019-12-24 22:56:17 -03:00
gdkchan
16df05f85a Correct non-constant offset rewrite for texelFetch 2019-12-24 22:56:17 -03:00
gdkchan
63323d1c17 Support non-constant texture offsets on non-NVIDIA gpus 2019-12-24 22:56:17 -03:00
gdkchan
fe7cf8ffa3 Use correct shared memory size (in words, not bytes) 2019-12-24 22:56:17 -03:00
gdkchan
0166fa07ea Ensure a valid shared memory size is used 2019-12-24 22:56:17 -03:00
gdkchan
7de8939741 Use dispatch params shared memory size when available 2019-12-24 22:56:17 -03:00
gdkchan
96fd2c06ad Use maximum shared memory size supported by hardware 2019-12-24 22:56:17 -03:00
gdkchan
2c5bf576e2 Fix draw indexed flag not being cleared for instanced draws, also avoid state updates in the middle of a indexed draw 2019-12-24 22:56:17 -03:00
gdkchan
f7b23103d2 Support 3D ASTC textures (using 2D blocks) 2019-12-24 22:56:17 -03:00
gdkchan
d7538a9135 Support bindless texture gather shader instruction 2019-12-24 22:56:17 -03:00
gdkchan
df70792606 Support depth clip mode and disable shader fast math optimization on NVIDIA as a workaround for compiler bugs (?) 2019-12-24 22:56:17 -03:00
gdkchan
c14d751be1 Fix wrong maximum id on sampler pool in some cases 2019-12-24 22:56:17 -03:00
gdkchan
b2d95c3eb6 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.
2019-12-24 22:56:17 -03:00
gdkchan
5f6d1d3098 Initial support for the guest OpenGL driver (NVIDIA and Nouveau) 2019-12-24 22:56:17 -03:00
gdk
6b6146581d Add a pass to turn global memory access into storage access, and do all storage related transformations on IR 2019-12-24 22:56:17 -03:00
gdk
063f7a8d04 Fix texture 0 not being bound for compute 2019-12-24 22:56:17 -03:00
gdk
685e053be0 Partial support for branch with CC, and fix a edge case of branch out of loop on shaders 2019-12-24 22:56:17 -03:00
gdk
54ed24c08f Simplified F2I shader instruction codegen 2019-12-24 22:56:16 -03:00
gdk
db25c50f53 Implement HSET2 shader instruction and fix errors uncovered by Rodrigo tests 2019-12-24 22:56:16 -03:00
gdk
e891575510 Fix shader code comparison method 2019-12-24 22:56:16 -03:00
gdk
24bcfb16f5 Optimize RangeList by not doing an allocation on every call to the Find methods 2019-12-24 22:56:16 -03:00
gdk
2f8580a732 Add PSET shader instruction 2019-12-24 22:56:16 -03:00
gdk
d316b30f1d Revert "Simplify shader uniform buffer access codegen"
This reverts commit 2fe9ebaf118d690be8d0cb302529dd359d7c402b.
2019-12-24 22:56:16 -03:00
gdk
84fccb5eae Simplify shader uniform buffer access codegen 2019-12-24 22:56:16 -03:00
gdk
15bfdb4da2 Improved and simplified window texture presentation 2019-12-24 22:56:16 -03:00
gdk
2e02abb10c Small optimizations on texture and sampler pool invalidation 2019-12-24 22:56:16 -03:00
gdk
20fde5daea Correct ordering of compute buffer bind 2019-12-24 22:56:16 -03:00
gdk
99386b9920 Share texture pool cache between graphics and compute 2019-12-24 22:56:16 -03:00
gdk
0f6751ae1f Separate sub-channel state 2019-12-24 22:56:16 -03:00
gdk
9ee4127fde Remove TranslatorConfig struct 2019-12-24 22:56:16 -03:00
gdk
c825379eb0 Add R2P shader instruction 2019-12-24 22:56:16 -03:00
gdk
9dce083a4b Make the shader translator more error resilient (part 2) 2019-12-24 22:56:16 -03:00
gdk
01e276bfaa Make the shader translator more error resilient 2019-12-24 22:56:16 -03:00
gdk
ca1c51229f Add missing check for BRX, do not add a out of bounds block to the queue 2019-12-24 22:56:16 -03:00
gdk
dcbaa05c36 Invalidate shaders when they are modified 2019-12-24 22:56:16 -03:00
gdk
cb228edf8b Add partial support for the BRX shader instruction 2019-12-24 22:56:16 -03:00
gdk
999574bfdb Fix image units bindings and shader dump in the presence of NOPs 2019-12-24 22:56:16 -03:00
gdk
f08dc9718b Revert "Check for ASTC support on the list of supported compressed formats"
This reverts commit 38a993510f64346649529b8fd2af6683bef05aa6.
2019-12-24 22:56:16 -03:00
gdk
309e30805d Check for ASTC support on the list of supported compressed formats 2019-12-24 22:56:16 -03:00
gdk
7743e8809c Fix regression on load/store local (wrong type) 2019-12-24 22:56:16 -03:00
gdk
259211d7f6 Do not throw for invalid ASTC compressed textures 2019-12-24 22:56:16 -03:00
gdk
a3a98e9b64 Add ATOMS, LDS, POPC, RED, STS and VOTE shader instructions, start changing the way how global memory is handled 2019-12-24 22:56:16 -03:00
gdk
80de5bc78b Use a more efficient range list on the buffer manager 2019-12-24 22:56:16 -03:00
gdk
73493cdf7e Remove some unused constants and other code 2019-12-24 22:56:16 -03:00
gdk
4f34b09885 Add partial support for array of samplers, and add pass to identify them from bindless texture accesses 2019-12-24 22:56:16 -03:00
gdk
74cf6b38ed Support window resizing 2019-12-24 22:56:16 -03:00