summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/decode.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* video_core/shader/decode: Prevent sign-conversion warningsLioncash2019-07-191-2/+2
| | | | Makes it explicit that the conversions here are intentional.
* shader_ir: std::move Node instance where applicableLioncash2019-07-171-4/+4
| | | | | | | | | 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.
* shader_ir: Add comments on missing instruction.Fernando Sahmkow2019-07-091-2/+5
| | | | Also shows Nvidia's address space on comments.
* shader_ir: limit explorastion to best known program size.Fernando Sahmkow2019-07-091-1/+1
|
* shader_ir: Correct parsing of scheduling instructions and correct sizingFernando Sahmkow2019-07-091-1/+1
|
* shader_ir: Correct max sizingFernando Sahmkow2019-07-091-1/+1
|
* shader_ir: Remove unnecessary constructors and use optional for ScanFlow resultFernando Sahmkow2019-07-091-5/+5
|
* shader_ir: Corrections, documenting and asserting control_flowFernando Sahmkow2019-07-091-5/+5
|
* shader_ir: Unify blocks in decompiled shaders.Fernando Sahmkow2019-07-091-8/+27
|
* shader_ir: Decompile Flow StackFernando Sahmkow2019-07-091-0/+46
|
* shader_ir: propagate shader size to the IRFernando Sahmkow2019-07-091-3/+3
|
* shader_ir: Remove the old scanner.Fernando Sahmkow2019-07-091-66/+0
|
* shader_ir: Implement a new shader scannerFernando Sahmkow2019-07-091-16/+23
|
* shader: Decode SUST and implement backing image functionalityReinUsesLisp2019-06-211-0/+1
|
* 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.
* video_core: Silent -Wswitch warningsReinUsesLisp2019-04-181-1/+3
|
* shader/decode: Split memory and texture instructions decodingReinUsesLisp2019-02-261-0/+1
|
* shader_ir: Rename BasicBlock to NodeBlockReinUsesLisp2019-02-031-30/+29
| | | | 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-6/+9
| | | | | | | | | 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/decode: Avoid a pessimizing std::move within DecodeRange()Lioncash2019-01-281-1/+1
| | | | | | std::moveing a local variable in a return statement has the potential to prevent copy elision from occurring, so this can just be converted into a regular return.
* shader_ir: Pass to decoder functions basic block's codeReinUsesLisp2019-01-151-32/+33
|
* shader_decode: Implement VMAD and VSETPReinUsesLisp2019-01-151-0/+1
|
* video_core: Address feedbackReinUsesLisp2019-01-151-0/+4
|
* shader_ir: Fixup file inclusions and clang-formatReinUsesLisp2019-01-151-0/+1
|
* shader_ir: Initial implementationReinUsesLisp2019-01-151-0/+199