aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/track.cpp
AgeCommit message (Collapse)Author
2019-07-25Merge pull request #2737 from FernandoS27/track-fixbunnei
Shader_Ir: Correct tracking to track from right to left
2019-07-16shader_ir: std::move Node instance where applicableLioncash
These are std::shared_ptr instances underneath the hood, which means copying them isn't as cheap as a regular pointer. Particularly so on weakly-ordered systems. This avoids atomic reference count increments and decrements where they aren't necessary for the core set of operations.
2019-07-16Shader_Ir: Correct tracking to track from right to leftFernando Sahmkow
2019-07-14shader: Allow tracking of indirect buffers without variable offsetReinUsesLisp
While changing this code, simplify tracking code to allow returning the base address node, this way callers don't have to manually rebuild it on each invocation.
2019-06-05shader: Use shared_ptr to store nodes and move initialization to fileReinUsesLisp
Instead of having a vector of unique_ptr stored in a vector and returning star pointers to this, use shared_ptr. While changing initialization code, move it to a separate file when possible. This is a first step to allow code analysis and node generation beyond the ShaderIR class.
2019-05-19shader/shader_ir: Mark tracking functions as const member functionsLioncash
These don't actually modify instance state, so they can be marked as const member functions
2019-03-30shader_ir: Implement immediate register trackingReinUsesLisp
2019-02-25shader/track: Resolve variable shadowing warningsLioncash
2019-02-03shader/track: Search inside of conditional nodesReinUsesLisp
Some games search conditionally use global memory instructions. This allows the heuristic to search inside conditional nodes for the source constant buffer.
2019-02-03shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp
It's not always used as a basic block. Rename it for consistency.
2019-01-30shader_decode: Implement LDG and basic cbuf trackingReinUsesLisp