Files
Lander Gallastegiandraphaelthegreat 1cf28cbc96 shader_recompiler: split resource tracking and flatten load from buffer for sharp source (#4782)
* shader_recompiler: Split resource tracking into 2 parts and flatten load from buffer if used as sharp source

clang-format

fix inmediate sample raw

defer sharp not found asserts

flip asserts

disable aniso pattern

fix disable aniso

some fixes

non immediate

fix PushPtr

fix PushPtr for non immediate

don't assert on offset computation failures

robust bfs

some xbyak fixes

add bitwise ops

umin umax and bit extract

correct rshift lshift 0st immediate

fix and in memory

some minor code fixes

consider ReadConstBuffer as valid finding

fix xbyak

fix magic_enum for opcodes

fix building (yes, i didn't test)

don't corrupt stack when bailing out

ReadConstBuffer compute offset

use canonical inst for readconst non-imm offset

mark all readconstbuffer sharp dwords

consider r128 images

FindSharpLocation

handle non-imm offset readconstbuffer

don't handle immediates when constant folding

proper check for ReadConst to get flatbuf offset

clang-format

fix stupidity

invert condition

separate search dominant function

handle phis loke other insts in gvn

use same logic for phis in gvn than for flatten pass

apparently idk how logic works

revert back to old logic

min/max immediate in constant folding

add offset insts to gvn inst to hash args

assert that ReadConstsBuffer insts have usage as buffer sharp

separate dominance search from bfs

chang gvn phi handling

remove unused includes

fix reuse

readconst transform add address

* shader_recompiler: Move readconst address add simplification to flatten pass

* shader_recompiler: Remove unnecessary phi handling

Now sharp tracking should be much simpler since its on the unstructured control flow graph

* shader_recompiler: Only enable DMA if some ReadConst could not be flattened

* shader_recompiler: Improve phi eliminaton of readlane elimination with worklist

* shader_recompiler: Cascade flattening failure in ReadConst tree, bind null sharp when source could not be flattened

* shader_recompiler: Further improve robustness of tracking

- Track all dwords of T# with SSA
- Ensure sharp dwords are sequential in flatbuf memory
- Substitue null descriptors on tracking failures

* shader_recompiler: Add new sharp fetching object

* shader_recompiler: Add new sampler pattern

* shader_recompiler: Add texture cube to 2d array pattern

* control_flow_graph: Remove unreachable blocks

Fix bloodborne

* shader_recompiler: Add yet another sampler pattern

* shader_recompiler: Add sampler aniso pattern

* flatten_extended_userdata: Only search through allowed instructions

* some fixes

* :kek:

* tests: Fix tests compile

---------

Co-authored-by: raphaelthegreat <geoster3d@gmail.com>
2026-09-04 20:10:46 -05:00
..