ameerj
907dfbea71
structured_control_flow: Skip reordering nested demote branches.
Nested demote branches add complexity with combining the condition if it has not been initialized yet. Skip them for the time being.
4 years ago
ameerj
4fda7f1c82
structured_control_flow: Conditionally invoke demote reorder pass
This is only needed on select drivers when a fragment shader discards/demotes.
4 years ago
ameerj
862dc2b2b3
structured_control_flow: Add DemoteCombinationPass
Some drivers misread data when demotes are interleaved in the program. This moves demote branches to be checked at the end of the program.
Fixes "wireframe" issue in Pokemon SwSh on some drivers
4 years ago
ReinUsesLisp
bf2956d77a
shader: Avoid usage of C++20 ranges to build in clang
5 years ago
lat9nq
49946cf780
shader_recompiler, video_core: Resolve clang errors
Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors
5 years ago
lat9nq
2e5af95541
shader: GCC fmt 8.0.0 fixes
5 years ago
ReinUsesLisp
808ef97a08
shader: Move loop safety tests to code emission
5 years ago
ReinUsesLisp
1d182fc0f5
shader: Calibrate loop safety threshold
5 years ago
ReinUsesLisp
7ac55c2a75
shader: Fix loop safety to SSA pass
5 years ago
lat9nq
373f75d944
shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
5 years ago
ReinUsesLisp
329dea217d
shader: Always initialize up reference in structure control flow
Fixes ubsan issue.
5 years ago
ReinUsesLisp
9bb3e008c9
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
5 years ago
lat9nq
f7a2340205
shader_recompiler: GCC fixes
Fixes members of unnamed union not being accessible, and one function
without a declaration.
5 years ago
ReinUsesLisp
bf5e48ffe4
glasm: Initial implementation of phi nodes on GLASM
5 years ago
ReinUsesLisp
d54d7de40e
glasm: Rework control flow introducing a syntax list
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
5 years ago
ReinUsesLisp
c8f9772d65
shader: Fix gcc warnings
5 years ago
ReinUsesLisp
cc0fcd1b8d
shader: Improve goto removal algorithm complexity
Find sibling node containing a nephew searching from the nephew itself
instead of the uncle.
5 years ago
ReinUsesLisp
e4d1122082
shader: Move siblings check to a separate function and comment them out
5 years ago
ReinUsesLisp
dfd5341d71
shader: Mark blocks with no end branch as unreachable
5 years ago
lat9nq
0bb85f6a75
shader_recompiler,video_core: Cleanup some GCC and Clang errors
Mostly fixing unused *, implicit conversion, braced scalar init,
fpermissive, and some others.
Some Clang errors likely remain in video_core, and std::ranges is still
a pertinent issue in shader_recompiler
shader_recompiler: cmake: Force bracket depth to 1024 on Clang
Increases the maximum fold expression depth
thread_worker: Include condition_variable
Don't use list initializers in control flow
Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc>
5 years ago
ReinUsesLisp
b0d5572abf
shader: Fix indirect branches to scheduler instructions
5 years ago
FernandoS27
34aba9627a
shader: Implement BRX
5 years ago
ReinUsesLisp
a806b29cb9
shader: Fix structured control flow on KIL instructions
This could potentially leave unvisited blocks, leading to illegal phi
nodes.
5 years ago
ReinUsesLisp
d3dad6b632
shader: Properly insert Prologue instruction
5 years ago
ReinUsesLisp
68a9505d8a
shader: Implement NDC [-1, 1], attribute types and default varying initialization
5 years ago
ReinUsesLisp
260743f371
shader: Add partial rasterizer integration
5 years ago
ReinUsesLisp
71f96fa636
shader: Implement CAL inlining function calls
5 years ago
ReinUsesLisp
e87a502da2
shader: Fix control flow
5 years ago
ReinUsesLisp
274897dfd5
spirv: Fixes and Intel specific workarounds
5 years ago
ReinUsesLisp
d5d468cf2c
shader: Improve object pool
5 years ago
ReinUsesLisp
9170200a11
shader: Initial implementation of an AST
5 years ago