gdkchan
150c7234d2
Implement LEA.HI shader instruction ( #1609 )
2020-10-12 21:46:04 -03:00
gdkchan
c653c5d058
Add support for shader constant buffer slot indexing ( #1608 )
...
* Add support for shader constant buffer slot indexing
* Fix typo
2020-10-12 21:40:50 -03:00
gdkchan
5edde9b112
Convert 1D texture targets to 2D ( #1584 )
...
* Convert 1D texture targets to 2D
* Fix typo
* Simplify some code
* Should mask that too
* Consistency
2020-09-29 22:28:50 +02:00
gdkchan
357bb2455e
Fix PSL and MRG flags on XMAD cbuf-reg shader instruction ( #1520 )
2020-09-01 15:07:20 -03:00
gdkchan
864bdc92f0
Refactor shader translator ShaderConfig and reduce the number of out args ( #1438 )
2020-07-30 15:53:23 +10:00
riperiperi
90605c9a15
Implement Zero-Configuration Resolution Scaling ( #1365 )
...
* Initial implementation of Render Target Scaling
Works with most games I have. No GUI option right now, it is hardcoded.
Missing handling for texelFetch operation.
* Realtime Configuration, refactoring.
* texelFetch scaling on fragment shader (WIP)
* Improve Shader-Side changes.
* Fix potential crash when no color/depth bound
* Workaround random uses of textures in compute.
This was blacklisting textures in a few games despite causing no bugs. Will eventually add full support so this doesn't break anything.
* Fix scales oscillating when changing between non-native scales.
* Scaled textures on compute, cleanup, lazier uniform update.
* Cleanup.
* Fix stupidity
* Address Thog Feedback.
* Cover most of GDK's feedback (two comments remain)
* Fix bad rename
* Move IsDepthStencil to FormatExtensions, add docs.
* Fix default config, square texture detection.
* Three final fixes:
- Nearest copy when texture is integer format.
- Texture2D -> Texture3D copy correctly blacklists the texture before trying an unscaled copy (caused driver error)
- Discount small textures.
* Remove scale threshold.
Not needed right now - we'll see if we run into problems.
* All CPU modification blacklists scale.
* Fix comment.
2020-07-07 04:41:07 +02:00
gdkchan
99a6e8a61c
Implement shader LEA instruction and improve bindless image load/store ( #1355 )
2020-07-04 01:48:44 +02:00
gdkchan
a19e82fdea
Support separate textures and samplers ( #1216 )
...
* Support separate textures and samplers
* Add missing bindless flag, fix SNORM format on buffer textures
* Add missing separation
* Add comments about the new handles
2020-05-27 16:07:10 +02:00
gdkchan
49b4a4603e
Omit image format if possible, and fix BA bit ( #1280 )
...
* Omit image format if possible, and fix BA bit
* Match extension name
2020-05-27 11:00:21 +02:00
Thog
fd0ada6aaa
Implement TMML and TMML.B ( #1270 )
...
* Implement TMML and TMML.B
This implement TMML and TMML.B instructions
* Fix TmmlB declaration alignment
* Address gdkchan's comments
* Fix inverted encoding definitions
2020-05-23 12:04:35 +02:00
gdkchan
435ab6a552
Refactor shader GPU state and memory access ( #1203 )
...
* Refactor shader GPU state and memory access
* Fix NVDEC project build
* Address PR feedback and add missing XML comments
2020-05-06 11:02:28 +10:00
gdkchan
9af206442d
Fix mode and Reg08.H1 decoding on XMAD instruction ( #1156 )
2020-04-25 23:40:29 +10:00
gdkchan
a21f7a7dc2
Implement texture buffers ( #1152 )
...
* Implement texture buffers
* Throw NotSupportedException where appropriate
2020-04-25 23:02:18 +10:00
gdkchan
2ecd9ab815
Remove leftover of debugging code for shader texture format ( #1141 )
2020-04-22 16:02:07 +02:00
gdkchan
bd010a2288
Implement SULD shader instruction ( #1117 )
...
* Implement SULD shader instruction
* Some nits
2020-04-22 09:35:28 +10:00
gdkchan
e64ad4968e
Fix negation of HADD2 constant buffer source ( #1116 )
2020-04-15 09:01:26 +10:00
gdkchan
1c133eb18b
Better IPA shader instruction implementation ( #1082 )
...
* Fix varying interpolation on fragment shader
* Some nits
* Alignment
2020-04-03 11:20:47 +11:00
gdkchan
45cf81c411
Implement FCMP shader instruction ( #1067 )
2020-03-30 12:04:00 +02:00
Elise
0c169e7efd
Implement NOP and stub DEPBAR shader instructions ( #1041 )
...
* Implement NOP and stub DEPBAR shader instruction
* Fix a few issues and formatting stuff
* Remove OpCodeNop/Depbar and use OpCode instead
* Fix NOP shader instruction opcode
* Fix formatting
2020-03-26 19:30:16 -03:00
gdkchan
d7863e9001
Implement VMNMX shader instruction ( #1032 )
...
* Implement VMNMX shader instruction
* No need for the gap on the enum
* Fix typo
2020-03-25 15:49:10 +01:00
gdkchan
8345f5f297
Implement ICMP shader instruction ( #1010 )
2020-03-23 17:32:30 +01:00
jduncanator
052281a166
Fix branch with CC and predicate, and a case of SYNC propagation ( #967 )
2020-03-06 11:09:49 +11:00
gdkchan
04f7a7955a
Initial support for double precision shader instructions. ( #963 )
...
* Implement DADD, DFMA and DMUL shader instructions
* Rename FP to FP32
* Correct double immediate
* Classic mistake
2020-03-03 15:02:08 +01:00
gdkchan
79ea6daa52
Sign-extend shader memory instruction offsets ( #934 )
2020-02-14 01:48:07 +01:00
gdkchan
28db1d27bd
Support flat interpolation qualifier on shaders ( #915 )
2020-02-02 10:18:58 +11:00
gdkchan
2849e1dc05
Remove some unused args on the shader translator
2020-01-09 02:13:00 +01:00
gdkchan
d951b214a6
Fix FADD32I check for Ra negation
2020-01-09 02:13:00 +01:00
gdkchan
46530360e3
Address PR feedback
...
Add TODO comment for GL_EXT_polygon_offset_clamp
2020-01-09 02:13:00 +01:00
gdkchan
bc38064351
Address PR feedback
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
7bfde41ea4
Partial support for shader memory barriers
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
745814f94c
Support bindless texture gather shader instruction
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
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
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
4dc7e8eecd
Add PSET shader instruction
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
c8398482ef
Add partial support for the BRX shader instruction
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
dd8a838a81
Implement BFI, BRK, FLO, FSWZADD, PBK, SHFL and TXD shader instructions, misc. fixes
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
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