Adds some new values and more contextual extra info. Needed for having up-to date information. Still need to update other docs like FAQ, Readme and Debugger but that's future work.
Fixed some typos along the way.
Apparently this causes GPU crashes on RDNA3, and didn't provide any
tangible benefit for NVIDIA.
I'll replace this at some point with dynamic rendering local reads,
either before or after the GPUDevice transition.
Allows us to blend Cd with full alpha range of 0-2 bypassing hw blend limitations.
Not all Cd cases are covered, but it's a good start.
Also allows us to do Ad cases where we can double the blend to get the
proper blend result since Ad range is 0-1 instead of 0-2.
Instead of breaking the draw into two passes, which breaks when
fragments overlap each other and blending is enabled, use blending to
leave the value of Ad intact when a pixel fails the alpha test.
In the case of DATE being enabled, prefer PrimID over stencil, as since
we are changing Ad on a per-fragment basis, with some fragments not
being modified, stencil DATE will become desynchronized with the value
of Ad.
Add full mipmap with ps2 trilinear to Global Storm:
Fixes ground textures.
Add missing autoflush fixes to other regions of Terminator 3 The Redemption:
Fixes environment lights visible through player model.
The idea is to adjust the alpha destination for more
accurate hw blending which will work on all renderers.
Old behavior has Ad in range within 0-1 whereas for blending 0-2 is needed.
copy rt -> adjust the alpha -> copy back the adjusted alpha-> restore old alpha after blending is done
Since we can't do Cd*(Alpha + 1) - Cs*Alpha in hw blend what we can do is adjust the Cs value that will be subtracted,
this way we can get a better result in hw blend. Result is still wrong but less wrong than before.