Lioncash
a4792176ce
control_flow: Silence -Wreorder warning for CFGRebuildState
Organizes the initializer list in the same order that the variables
would actually be initialized in.
6 years ago
Rodrigo Locatti
9666ff259d
shader/control_flow: Specify constness on caller lambdas
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
Update src/video_core/shader/control_flow.cpp
Co-Authored-By: Mat M. <mathew1800@gmail.com>
6 years ago
ReinUsesLisp
014d4a6629
shader/control_flow: Use callable template instead of std::function
6 years ago
ReinUsesLisp
237a1e0ba4
shader/control_flow: Abstract repeated code chunks in BRX tracking
Remove copied and pasted for cycles into a common templated function.
6 years ago
ReinUsesLisp
b32131ad99
shader/control_flow: Silence Intellisense cast warnings
6 years ago
ReinUsesLisp
1e32800bf8
shader/control_flow: Remove brace initializer in std containers
These containers have a default constructor.
6 years ago
Fernando Sahmkow
ab86995cb9
Shader_IR: Address Feedback.
6 years ago
ReinUsesLisp
063d3e22d6
gl_shader_decompiler: Move entries to a separate function
6 years ago
Fernando Sahmkow
683008bc59
Shader_IR: Implement Fast BRX and allow multi-branches in the CFG.
6 years ago
Fernando Sahmkow
2baf1e1ed4
Shader_Cache: setup connection of ConstBufferLocker
6 years ago
Fernando Sahmkow
7d24270b5f
Shader_IR: Implement BRX tracking.
6 years ago
Lioncash
271d07c2e7
control_flow: Silence truncation warnings
This can be trivially fixed by making the input size a size_t.
CFGRebuildState's constructor parameter is already a std::size_t, so
this just makes the size type fully conform with it.
6 years ago
Lioncash
71a231e448
video_core/control_flow: Eliminate variable shadowing warnings
6 years ago
Lioncash
a542346e9d
video_core/control_flow: Eliminate pessimizing moves
These can inhibit the ability of a compiler to perform RVO.
6 years ago
Fernando Sahmkow
4de60d6a41
Shader_ir: Address feedback
6 years ago
Fernando Sahmkow
9e8c57f049
Shader_IR: allow else derivation to be optional.
6 years ago
Fernando Sahmkow
7b55e1c0b1
Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes.
6 years ago
Fernando Sahmkow
5d3c5df7f4
gl_shader_decompiler: Implement AST decompiling
7 years ago
Fernando Sahmkow
f1ed22419c
shader_ir: Declare Manager and pass it to appropiate programs.
7 years ago
Fernando Sahmkow
9f61500df1
shader_ir: Corrections to outward movements and misc stuffs
7 years ago
Fernando Sahmkow
a3d04b45a9
shader_ir: Initial Decompile Setup
7 years ago
Lioncash
e792178598
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
c3dd5c7667
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
095259a135
video_core/control_flow: Use std::move where applicable
Results in less work being done where avoidable.
7 years ago
Lioncash
0d287d3551
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
da307b1c61
video_core/control_flow: Use empty() member function for checking emptiness
It's what it's there for.
7 years ago
Lioncash
f6250ef163
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
fcc59b55f7
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
1bad7650ec
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
22f04d827f
control_flow: Correct block breaking algorithm.
7 years ago
Fernando Sahmkow
e56ebe9d99
control_flow: Assert shaders bigger than limit.
7 years ago
Fernando Sahmkow
848229a9ea
control_flow: Address feedback.
7 years ago
Fernando Sahmkow
cf3a7c0761
shader_ir: Correct parsing of scheduling instructions and correct sizing
7 years ago
Fernando Sahmkow
0164b108ab
shader_ir: Correct max sizing
7 years ago
Fernando Sahmkow
be5e508cce
shader_ir: Remove unnecessary constructors and use optional for ScanFlow result
7 years ago
Fernando Sahmkow
d996ab2d77
shader_ir: Corrections, documenting and asserting control_flow
7 years ago
Fernando Sahmkow
82efa35683
shader_ir: Unify blocks in decompiled shaders.
7 years ago
Fernando Sahmkow
d7b3d3a823
shader_ir: Decompile Flow Stack
7 years ago
Fernando Sahmkow
d5d4cc30ec
shader_ir: Implement BRX & BRA.CC
7 years ago
Fernando Sahmkow
48e75bade4
shader_ir: Implement a new shader scanner
7 years ago