Lioncash
f883cd4f0e
video_core/control_flow: Eliminate variable shadowing warnings
6 years ago
Lioncash
25702b6256
video_core/control_flow: Eliminate pessimizing moves
These can inhibit the ability of a compiler to perform RVO.
6 years ago
Fernando Sahmkow
e6eae4b815
Shader_ir: Address feedback
6 years ago
Fernando Sahmkow
2e9a810423
Shader_IR: allow else derivation to be optional.
6 years ago
Fernando Sahmkow
47e4f6a52c
Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes.
6 years ago
Fernando Sahmkow
38fc995f6c
gl_shader_decompiler: Implement AST decompiling
7 years ago
Fernando Sahmkow
6fdd501113
shader_ir: Declare Manager and pass it to appropiate programs.
7 years ago
Fernando Sahmkow
8be6e1c522
shader_ir: Corrections to outward movements and misc stuffs
7 years ago
Fernando Sahmkow
c17953978b
shader_ir: Initial Decompile Setup
7 years ago
Lioncash
1780e0e3d0
video_core/control_flow: Prevent sign conversion in TryGetBlock()
The return value is a u32, not an s32, so this would result in an
implicit signedness conversion.
7 years ago
Lioncash
a162a844d2
video_core/control_flow: Remove unnecessary BlockStack copy constructor
This is the default behavior of the copy constructor, so it doesn't need
to be specified.
While we're at it we can make the other non-default constructor
explicit.
7 years ago
Lioncash
56bc11d952
video_core/control_flow: Use std::move where applicable
Results in less work being done where avoidable.
7 years ago
Lioncash
e7b39f47f8
video_core/control_flow: Use the prefix variant of operator++ for iterators
Same thing, but potentially allows a standard library implementation to
pick a more efficient codepath.
7 years ago
Lioncash
6885e7e7ec
video_core/control_flow: Use empty() member function for checking emptiness
It's what it's there for.
7 years ago
Lioncash
45fa12a05c
video_core: Resolve -Wreorder warnings
Ensures that the constructor members are always initialized in the order
that they're declared in.
7 years ago
Lioncash
47df844338
video_core/control_flow: Make program_size for ScanFlow() a std::size_t
Prevents a truncation warning from occurring with MSVC. Also the
internal data structures already treat it as a size_t, so this is just a
discrepancy in the interface.
7 years ago
Lioncash
3df9558593
video_core/control_flow: Place all internally linked types/functions within an anonymous namespace
Previously, quite a few functions were being linked with external
linkage.
7 years ago
Fernando Sahmkow
e7c6045a03
control_flow: Correct block breaking algorithm.
7 years ago
Fernando Sahmkow
dc4a93594c
control_flow: Assert shaders bigger than limit.
7 years ago
Fernando Sahmkow
e7a88f0ab3
control_flow: Address feedback.
7 years ago
Fernando Sahmkow
34357b110c
shader_ir: Correct parsing of scheduling instructions and correct sizing
7 years ago
Fernando Sahmkow
cfb3db1a32
shader_ir: Correct max sizing
7 years ago
Fernando Sahmkow
d45fed3030
shader_ir: Remove unnecessary constructors and use optional for ScanFlow result
7 years ago
Fernando Sahmkow
01b21ee1e8
shader_ir: Corrections, documenting and asserting control_flow
7 years ago
Fernando Sahmkow
d5533b440c
shader_ir: Unify blocks in decompiled shaders.
7 years ago
Fernando Sahmkow
926b80102f
shader_ir: Decompile Flow Stack
7 years ago
Fernando Sahmkow
8a6fc529a9
shader_ir: Implement BRX & BRA.CC
7 years ago
Fernando Sahmkow
8af6e6a052
shader_ir: Implement a new shader scanner
7 years ago