gdkchan
99445dd0a6
Add support for fragment shader interlock ( #2768 )
...
* Support coherent images
* Add support for fragment shader interlock
* Change to tree based match approach
* Refactor + check for branch targets and external registers
* Make detection more robust
* Use Intel fragment shader ordering if interlock is not available, use nothing if both are not available
* Remove unused field
2021-10-28 19:53:12 -03:00
gdkchan
d512ce122c
Initial tessellation shader support ( #2534 )
...
* Initial tessellation shader support
* Nits
* Re-arrange built-in table
* This is not needed anymore
* PR feedback
2021-10-18 18:38:04 -03:00
gdkchan
a7109c767b
Rewrite shader decoding stage ( #2698 )
...
* Rewrite shader decoding stage
* Fix P2R constant buffer encoding
* Fix PSET/PSETP
* PR feedback
* Log unimplemented shader instructions
* Implement NOP
* Remove using
* PR feedback
2021-10-12 22:35:31 +02:00
gdkchan
ee1038e542
Initial support for shader attribute indexing ( #2546 )
...
* Initial support for shader attribute indexing
* Support output indexing too, other improvements
* Fix order
* Address feedback
2021-08-27 01:44:47 +02:00
gdkchan
ed754af8d5
Make sure attributes used on subsequent shader stages are initialized ( #2538 )
2021-08-11 22:27:00 +02:00
gdkchan
d9d18439f6
Use a new approach for shader BRX targets ( #2532 )
...
* Use a new approach for shader BRX targets
* Make shader cache actually work
* Improve the shader pattern matching a bit
* Extend LDC search to predecessor blocks, catches more cases
* Nit
* Only save the amount of constant buffer data actually used. Avoids crashes on partially mapped buffers
* Ignore Rd on predicate instructions, as they do not have a Rd register (catches more cases)
2021-08-11 20:59:42 +02:00
riperiperi
7ff1f9aa12
End shader decoding when reaching a block that starts with an infinite loop (after BRX) ( #2367 )
...
* End shader decoding when reaching an infinite loop
The NV shader compiler puts these at the end of shaders.
* Update shader cache version
2021-06-15 02:09:59 +02:00
gdkchan
3b90adcd1d
Fix shaders with mixed PBK and SSY addresses on the stack ( #2329 )
...
* Fix shaders with mixed PBK and SSY addresses on the stack
* Address PR feedback and nits
2021-06-03 01:41:53 +02:00
mageven
a5d5ca0635
Shader Cache: Move bindless checking from translation to decode ( #2145 )
2021-03-27 00:50:26 +01:00
gdkchan
49f970d5bd
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
2f16491712
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
0954e76a26
Improve BRX target detection heuristics ( #1591 )
2020-10-03 15:43:33 +10:00
gdkchan
b8eb6abecc
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
Chenj168
7ad8b3ef75
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
jduncanator
54501962f6
Fix branch with CC and predicate, and a case of SYNC propagation ( #967 )
2020-03-06 11:09:49 +11:00
gdkchan
b8e3909d80
Add a GetSpan method to the memory manager and use it on GPU ( #877 )
2020-01-13 10:27:50 +11:00
gdkchan
29a825b43b
Address PR feedback
...
Removes a useless null check
Aligns some values to improve readability
2020-01-09 02:13:00 +01:00
gdk
04102e5c9d
Make the shader translator more error resilient
2020-01-09 02:13:00 +01:00
gdk
eea73bc421
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
f0a59f345c
Add partial support for the BRX shader instruction
2020-01-09 02:13:00 +01:00
gdk
278a4c317c
Implement BFI, BRK, FLO, FSWZADD, PBK, SHFL and TXD shader instructions, misc. fixes
2020-01-09 02:13:00 +01:00
gdk
1876b346fe
Initial work
2020-01-09 02:13:00 +01:00