ddd82ef42b
shader/memory_util: Deduplicate code
...
Deduplicate code shared between vk_pipeline_cache and gl_shader_cache as
well as shader decoder code.
While we are at it, fix a bug in gl_shader_cache where compute shaders
had an start offset of a stage shader.
2020-04-26 01:38:51 -03:00
e2d8be1ca2
General: Resolve warnings related to missing declarations
2020-04-16 23:43:34 -04:00
72a224d3fc
control_flow: Make use of std::move in TryInspectAddress()
...
Eliminates redundant atomic reference count increments and decrements.
2020-04-15 23:31:22 -04:00
e8efd5a901
video_core: Rename "const buffer locker" to "registry"
2020-03-09 18:40:06 -03:00
a1eee1749e
control_flow: Silence -Wreorder warning for CFGRebuildState
...
Organizes the initializer list in the same order that the variables
would actually be initialized in.
2020-01-14 13:28:48 -05:00
ff5a0f370c
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 >
2019-11-07 01:44:09 -03:00
7b069252f8
shader/control_flow: Use callable template instead of std::function
2019-11-07 01:44:08 -03:00
46c3047283
shader/control_flow: Abstract repeated code chunks in BRX tracking
...
Remove copied and pasted for cycles into a common templated function.
2019-11-07 01:44:08 -03:00
ae7dfa93be
shader/control_flow: Silence Intellisense cast warnings
2019-11-07 01:44:08 -03:00
deb1b54eed
shader/control_flow: Remove brace initializer in std containers
...
These containers have a default constructor.
2019-11-07 01:44:08 -03:00
be856a38d6
Shader_IR: Address Feedback.
2019-10-26 15:38:30 -04:00
7b81ba4d8a
gl_shader_decompiler: Move entries to a separate function
2019-10-25 09:01:31 -04:00
8909f52166
Shader_IR: Implement Fast BRX and allow multi-branches in the CFG.
2019-10-25 09:01:30 -04:00
acd6441134
Shader_Cache: setup connection of ConstBufferLocker
2019-10-25 09:01:29 -04:00
2ef696c85a
Shader_IR: Implement BRX tracking.
2019-10-25 09:01:29 -04:00
77b4916b33
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.
2019-10-15 19:10:28 -04:00
f883cd4f0e
video_core/control_flow: Eliminate variable shadowing warnings
2019-10-05 09:14:27 -04:00
25702b6256
video_core/control_flow: Eliminate pessimizing moves
...
These can inhibit the ability of a compiler to perform RVO.
2019-10-05 09:14:27 -04:00
e6eae4b815
Shader_ir: Address feedback
2019-10-04 18:52:57 -04:00
2e9a810423
Shader_IR: allow else derivation to be optional.
2019-10-04 18:52:52 -04:00
47e4f6a52c
Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes.
2019-10-04 18:52:50 -04:00
38fc995f6c
gl_shader_decompiler: Implement AST decompiling
2019-10-04 18:52:50 -04:00
6fdd501113
shader_ir: Declare Manager and pass it to appropiate programs.
2019-10-04 18:52:49 -04:00
8be6e1c522
shader_ir: Corrections to outward movements and misc stuffs
2019-10-04 18:52:48 -04:00
c17953978b
shader_ir: Initial Decompile Setup
2019-10-04 18:52:47 -04:00
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.
2019-07-18 21:03:31 -04:00
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.
2019-07-18 21:03:30 -04:00
56bc11d952
video_core/control_flow: Use std::move where applicable
...
Results in less work being done where avoidable.
2019-07-18 21:03:30 -04:00
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.
2019-07-18 21:03:30 -04:00
6885e7e7ec
video_core/control_flow: Use empty() member function for checking emptiness
...
It's what it's there for.
2019-07-18 21:03:30 -04:00
45fa12a05c
video_core: Resolve -Wreorder warnings
...
Ensures that the constructor members are always initialized in the order
that they're declared in.
2019-07-18 21:03:30 -04:00
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.
2019-07-18 21:03:29 -04:00
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.
2019-07-18 21:03:29 -04:00
e7c6045a03
control_flow: Correct block breaking algorithm.
2019-07-09 08:14:43 -04:00
dc4a93594c
control_flow: Assert shaders bigger than limit.
2019-07-09 08:14:42 -04:00
e7a88f0ab3
control_flow: Address feedback.
2019-07-09 08:14:42 -04:00
34357b110c
shader_ir: Correct parsing of scheduling instructions and correct sizing
2019-07-09 08:14:41 -04:00
cfb3db1a32
shader_ir: Correct max sizing
2019-07-09 08:14:40 -04:00
d45fed3030
shader_ir: Remove unnecessary constructors and use optional for ScanFlow result
2019-07-09 08:14:40 -04:00
01b21ee1e8
shader_ir: Corrections, documenting and asserting control_flow
2019-07-09 08:14:39 -04:00
d5533b440c
shader_ir: Unify blocks in decompiled shaders.
2019-07-09 08:14:39 -04:00
926b80102f
shader_ir: Decompile Flow Stack
2019-07-09 08:14:38 -04:00
8a6fc529a9
shader_ir: Implement BRX & BRA.CC
2019-07-09 08:14:37 -04:00
8af6e6a052
shader_ir: Implement a new shader scanner
2019-07-09 08:14:36 -04:00