summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/decode/video.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* shader: Remove old shader managementReinUsesLisp2021-07-231-169/+0
|
* video_core: Allow copy elision to take place where applicableLioncash2020-07-211-10/+9
| | | | | Removes const from some variables that are returned from functions, as this allows the move assignment/constructors to execute for them.
* shader/video: Partially implement VMNMXReinUsesLisp2020-04-121-0/+58
| | | | | | | | | | | | | | | | 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).
* video_core/shader: Resolve instances of variable shadowingLioncash2019-10-241-1/+1
| | | | Silences a few -Wshadow warnings.
* shader: Use shared_ptr to store nodes and move initialization to fileReinUsesLisp2019-06-061-0/+1
| | | | | | | | | 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.
* shader/decode/*: Add missing newline to files lacking themLioncash2019-05-231-1/+1
| | | | Keeps the shader code file endings consistent.
* shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp2019-02-031-1/+1
| | | | It's not always used as a basic block. Rename it for consistency.
* shader_ir: Pass decoded nodes as a whole instead of per basic blocksReinUsesLisp2019-02-031-1/+1
| | | | | | | | | 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.
* shader_ir: Pass to decoder functions basic block's codeReinUsesLisp2019-01-151-1/+1
|
* shader_decode: Improve zero flag implementationReinUsesLisp2019-01-151-4/+1
|
* shader_decode: Use BitfieldExtract instead of shift + andReinUsesLisp2019-01-151-9/+3
|
* shader_decode: Implement VMAD and VSETPReinUsesLisp2019-01-151-0/+120