aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/decode/video.cpp
AgeCommit message (Collapse)Author
2021-07-22shader: Remove old shader managementReinUsesLisp
2020-07-21video_core: Allow copy elision to take place where applicableLioncash
Removes const from some variables that are returned from functions, as this allows the move assignment/constructors to execute for them.
2020-04-12shader/video: Partially implement VMNMXReinUsesLisp
Implements the common usages for VMNMX. Inputs with a different size than 32 bits are not supported and sign mismatches aren't supported either. VMNMX works as follows: It grabs Ra and Rb and applies a maximum/minimum on them (this is defined by .MX), having in mind the input sign. This result can then be saturated. After the intermediate result is calculated, it applies another operation on it using Rc. These operations are merges, accumulations or another min/max pass. This instruction allows to implement with a more flexible approach GCN's min3 and max3 instructions (for instance).
2019-10-23video_core/shader: Resolve instances of variable shadowingLioncash
Silences a few -Wshadow warnings.
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-23shader/decode/*: Add missing newline to files lacking themLioncash
Keeps the shader code file endings consistent.
2019-02-03shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp
It's not always used as a basic block. Rename it for consistency.
2019-02-03shader_ir: Pass decoded nodes as a whole instead of per basic blocksReinUsesLisp
Some games call LDG at the top of a basic block, making the tracking heuristic to fail. This commit lets the heuristic the decoded nodes as a whole instead of per basic blocks. This may lead to some false positives but allows it the heuristic to track cases it previously couldn't.
2019-01-15shader_ir: Pass to decoder functions basic block's codeReinUsesLisp
2019-01-15shader_decode: Improve zero flag implementationReinUsesLisp
2019-01-15shader_decode: Use BitfieldExtract instead of shift + andReinUsesLisp
2019-01-15shader_decode: Implement VMAD and VSETPReinUsesLisp