gdkchan
3b90814fc8
Implement shader HelperThreadNV ( #2163 )
...
* Implement shader HelperThreadNV
* Bump shader cache version
* Use gl_HelperInvocation since its supported across all vendors
* Nit
2021-04-02 21:50:35 +11:00
mageven
5d88d75779
Shader Cache: Move bindless checking from translation to decode ( #2145 )
2021-03-27 00:50:26 +01:00
gdkchan
c3896bbef7
Fix shader LOP3 predicate write condition ( #1910 )
...
* Fix LOP3 predicate write condition
* Bump shader cache version
2021-01-14 01:07:50 +01:00
gdkchan
c87596239f
Fix remap when handle is 0 ( #1882 )
...
* Nvservices cleanup and attempt to fix remap
* Unmap if remap handle is 0
* Remove mapped pool add from Remap
2021-01-10 10:11:31 +11:00
gdkchan
c8f155717f
Support conditional on BRK and SYNC shader instructions ( #1878 )
...
* Support conditional on BRK and SYNC shader instructions
* Add TODO comment and bump cache version
2021-01-08 22:55:55 -03:00
Mary
a424c4621c
Salieri: shader cache ( #1701 )
...
Here come Salieri, my implementation of a disk shader cache!
"I'm sure you know why I named it that."
"It doesn't really mean anything."
This implementation collects shaders at runtime and cache them to be later compiled when starting a game.
2020-11-13 00:15:34 +01:00
gdkchan
bb5b61e59c
Implement ATOM shader instruction ( #1687 )
...
* Implement ATOM shader instruction
* Fix reduction type decoding
2020-11-10 01:06:46 +01:00
gdkchan
4c40f241a8
Implement CAL and RET shader instructions ( #1618 )
...
* Add support for CAL and RET shader instructions
* Remove unused stuff
* Fix a bug that could cause the wrong values to be passed to a function
* Avoid repopulating function id dictionary every time
* PR feedback
* Fix vertex shader A/B merge
2020-10-25 17:00:44 -03:00
gdkchan
9c06876589
Get rid of Reflection.Emit dependency on CPU and Shader projects ( #1626 )
...
* Get rid of Reflection.Emit dependency on CPU and Shader projects
* Remove useless private sets
* Missed those due to the alignment
2020-10-21 09:13:44 -03:00
gdkchan
423c60f1c1
Fix LOP3 (cbuf) shader instruction encoding ( #1616 )
2020-10-13 19:33:04 -03:00
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
569b6e9ee1
Improve BRX target detection heuristics ( #1591 )
2020-10-03 15:43:33 +10:00
gdkchan
99a6e8a61c
Implement shader LEA instruction and improve bindless image load/store ( #1355 )
2020-07-04 01:48:44 +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
a21f7a7dc2
Implement texture buffers ( #1152 )
...
* Implement texture buffers
* Throw NotSupportedException where appropriate
2020-04-25 23:02:18 +10:00
gdkchan
bd010a2288
Implement SULD shader instruction ( #1117 )
...
* Implement SULD shader instruction
* Some nits
2020-04-22 09:35:28 +10:00
gdkchan
45cf81c411
Implement FCMP shader instruction ( #1067 )
2020-03-30 12:04:00 +02:00
Chenj168
fb621010dd
Move the OpActivator to OpCodeTable class for improve performance ( #1001 )
...
* Move the OpActivator to OpCodeTable class, for reduce the use of ConcurrentDictionary
* Modify code style.
2020-03-29 19:52:56 +11: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
13aea6d726
Add a GetSpan method to the memory manager and use it on GPU ( #877 )
2020-01-13 10:27:50 +11:00
gdkchan
4bf59cc7bd
Address PR feedback
...
Removes a useless null check
Aligns some values to improve readability
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
7bfde41ea4
Partial support for shader memory barriers
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
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
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
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
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
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
fb2200c09b
Initial work
2020-01-09 02:13:00 +01:00