Lioncash
909671a055
video_core: Make use of ordered container contains() where applicable
...
With C++20, we can use the more concise contains() member function
instead of comparing the result of the find() call with the end
iterator.
2020-12-07 16:30:39 -05:00
Lioncash
5db4785535
video_core: Resolve more variable shadowing scenarios pt.3
...
Cleans out the rest of the occurrences of variable shadowing and makes
any further occurrences of shadowing compiler errors.
2020-12-05 16:02:23 -05:00
Lioncash
341083a5e1
video_core: Resolve more variable shadowing scenarios pt.2
...
Migrates the video core code closer to enabling variable shadowing
warnings as errors.
This primarily sorts out shadowing occurrences within the Vulkan code.
2020-12-05 06:39:35 -05:00
Lioncash
cc4e8c247d
control_flow: emplace elements in place within TryQuery()
...
Places data structures where they'll eventually be moved to to avoid
needing to even move them in the first place.
2020-09-22 22:54:36 -04:00
Lioncash
13df9625be
control_flow: Make use of std::move in InsertBranch()
...
Avoids unnecessary atomic increments and decrements.
2020-09-22 22:48:09 -04:00
Lioncash
78ddcbe3ba
General: Tidy up clang-format warnings part 2
2020-08-13 14:19:08 -04:00
ReinUsesLisp
9b433b2467
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
Lioncash
eaeb4520f7
General: Resolve warnings related to missing declarations
2020-04-16 23:43:34 -04:00
Lioncash
38b955a3ff
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
ReinUsesLisp
99be31c902
video_core: Rename "const buffer locker" to "registry"
2020-03-09 18:40:06 -03:00
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.
2020-01-14 13:28:48 -05:00
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>
2019-11-07 01:44:09 -03:00
ReinUsesLisp
014d4a6629
shader/control_flow: Use callable template instead of std::function
2019-11-07 01:44:08 -03:00
ReinUsesLisp
237a1e0ba4
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
ReinUsesLisp
b32131ad99
shader/control_flow: Silence Intellisense cast warnings
2019-11-07 01:44:08 -03:00
ReinUsesLisp
1e32800bf8
shader/control_flow: Remove brace initializer in std containers
...
These containers have a default constructor.
2019-11-07 01:44:08 -03:00
Fernando Sahmkow
ab86995cb9
Shader_IR: Address Feedback.
2019-10-26 15:38:30 -04:00
ReinUsesLisp
063d3e22d6
gl_shader_decompiler: Move entries to a separate function
2019-10-25 09:01:31 -04:00
Fernando Sahmkow
683008bc59
Shader_IR: Implement Fast BRX and allow multi-branches in the CFG.
2019-10-25 09:01:30 -04:00
Fernando Sahmkow
2baf1e1ed4
Shader_Cache: setup connection of ConstBufferLocker
2019-10-25 09:01:29 -04:00
Fernando Sahmkow
7d24270b5f
Shader_IR: Implement BRX tracking.
2019-10-25 09:01:29 -04:00
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.
2019-10-15 19:10:28 -04:00
Lioncash
71a231e448
video_core/control_flow: Eliminate variable shadowing warnings
2019-10-05 09:14:27 -04:00
Lioncash
a542346e9d
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
Fernando Sahmkow
4de60d6a41
Shader_ir: Address feedback
2019-10-04 18:52:57 -04:00
Fernando Sahmkow
9e8c57f049
Shader_IR: allow else derivation to be optional.
2019-10-04 18:52:52 -04:00
Fernando Sahmkow
7b55e1c0b1
Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes.
2019-10-04 18:52:50 -04:00
Fernando Sahmkow
5d3c5df7f4
gl_shader_decompiler: Implement AST decompiling
2019-10-04 18:52:50 -04:00
Fernando Sahmkow
f1ed22419c
shader_ir: Declare Manager and pass it to appropiate programs.
2019-10-04 18:52:49 -04:00
Fernando Sahmkow
9f61500df1
shader_ir: Corrections to outward movements and misc stuffs
2019-10-04 18:52:48 -04:00
Fernando Sahmkow
a3d04b45a9
shader_ir: Initial Decompile Setup
2019-10-04 18:52:47 -04:00
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.
2019-07-18 21:03:31 -04:00
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.
2019-07-18 21:03:30 -04:00
Lioncash
095259a135
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
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.
2019-07-18 21:03:30 -04:00
Lioncash
da307b1c61
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
Lioncash
f6250ef163
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
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.
2019-07-18 21:03:29 -04:00
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.
2019-07-18 21:03:29 -04:00
Fernando Sahmkow
22f04d827f
control_flow: Correct block breaking algorithm.
2019-07-09 08:14:43 -04:00
Fernando Sahmkow
e56ebe9d99
control_flow: Assert shaders bigger than limit.
2019-07-09 08:14:42 -04:00
Fernando Sahmkow
848229a9ea
control_flow: Address feedback.
2019-07-09 08:14:42 -04:00
Fernando Sahmkow
cf3a7c0761
shader_ir: Correct parsing of scheduling instructions and correct sizing
2019-07-09 08:14:41 -04:00
Fernando Sahmkow
0164b108ab
shader_ir: Correct max sizing
2019-07-09 08:14:40 -04:00
Fernando Sahmkow
be5e508cce
shader_ir: Remove unnecessary constructors and use optional for ScanFlow result
2019-07-09 08:14:40 -04:00
Fernando Sahmkow
d996ab2d77
shader_ir: Corrections, documenting and asserting control_flow
2019-07-09 08:14:39 -04:00
Fernando Sahmkow
82efa35683
shader_ir: Unify blocks in decompiled shaders.
2019-07-09 08:14:39 -04:00
Fernando Sahmkow
d7b3d3a823
shader_ir: Decompile Flow Stack
2019-07-09 08:14:38 -04:00
Fernando Sahmkow
d5d4cc30ec
shader_ir: Implement BRX & BRA.CC
2019-07-09 08:14:37 -04:00
Fernando Sahmkow
48e75bade4
shader_ir: Implement a new shader scanner
2019-07-09 08:14:36 -04:00