crueter
09a8fab2a2
[spirv] improved spir-v shader opt ( #239 )
increases speed ~tenfold for Spir-V output optimization when using it on load.
Co-authored-by: wildcard <nubieluv@gmail.com>
Signed-off-by: crueter <crueter@eden-emu.dev>
Co-authored-by: wildcard <nubieluv@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/239
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
4 months ago
crueter
51b170b470
[cmake] refactor: Use CPM over submodules ( #143 )
Transfers the majority of submodules and large externals to CPM, using source archives rather than full Git clones. Not only does this save massive amounts of clone and configure time, but dependencies are grabbed on-demand rather than being required by default. Additionally, CPM will (generally) automatically search for system dependencies, though certain dependencies have options to control this.
Testing shows gains ranging from 5x to 10x in terms of overall clone/configure time.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/143
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
5 months ago
Gamer64
a002730d68
[VK] Rework SPIRV Shader Optimization ( #238 )
The actual SPIRV Shader Optimization option doesn't seem to do anything as long as it isn't vinculed, so let's rework it to make it work
Co-authored-by: Gamer64 <76565986+Gamer64ytb@users.noreply.github.com>
Co-authored-by: echosys <echosys@noreply.localhost>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/238
6 months ago
Liam
749f0564ae
shader_recompiler: throw on missing geometry streams in geometry shaders
2 years ago
Liam
a41e57d968
renderer_vulkan: ignore viewport stores on non-supporting drivers
2 years ago
Kelebek1
c7430e51e3
Remove memory allocations in some hot paths
3 years ago
Liam
0a077cb467
Vulkan: update initialization
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
3 years ago
Morph
2b87305d31
general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
4 years ago
ameerj
712b7883be
emit_spirv: Add Xfb execution mode when transform feedback is used
Fixes Transform Feedback on Vulkan AMD drivers.
4 years ago
Matías Locatti
244dff4e6e
Empty spaces
4 years ago
Matías Locatti
1a30c0a125
Changes to avoid warnings in SSE4.2 optimized SPIR-V
4 years ago
ameerj
3f06a447fb
emit_spirv: Reduce emit_spirv.h include overhead
emit_spirv.h is included in video_core, which was propagating further includes that video_core did not depend on.
4 years ago
ReinUsesLisp
ff35ef8ec1
emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia
Fix regression on Fire Emblem: Three Houses when using native fp16.
5 years ago
ReinUsesLisp
b1df436cef
shader: Rework varyings and implement passthrough geometry shaders
Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's.
5 years ago
ReinUsesLisp
04c1dca457
shader: Move loop safety tests to code emission
5 years ago
ReinUsesLisp
04fed81921
spirv: Reduce log severity of mismatching denorm rules
5 years ago
ReinUsesLisp
f40daa777e
shader: Add logging
5 years ago
ReinUsesLisp
9452fe2dc6
shader: Split profile and runtime information in separate structs
5 years ago
ReinUsesLisp
5c6dc51c69
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
5 years ago
lat9nq
69210028b4
shader_recompiler: GCC fixes
Fixes members of unnamed union not being accessible, and one function
without a declaration.
5 years ago
ReinUsesLisp
6be1db8873
emit_spirv: Jump to loop body with local variable
Silence unused variable warning
5 years ago
ReinUsesLisp
cb344497a7
emit_spirv: Add missing block in case
5 years ago
ReinUsesLisp
f2ae32fa76
glasm: Initial implementation of phi nodes on GLASM
5 years ago
ReinUsesLisp
03f6d424ce
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
7273fcab95
glasm: Implement shuffle and vote instructions on GLASM
5 years ago
ReinUsesLisp
055db41f19
Move SPIR-V emission functions to their own header
5 years ago
ameerj
455872a4af
shader: Implement Int32 SUATOM/SURED
5 years ago
ReinUsesLisp
d2e6291c0e
spirv: Do not enable ShaderLayer
This is enabled by an extension instead of the capability.
5 years ago
ReinUsesLisp
b2fe282ad3
spirv: Enable DemoteToHelperInvocationEXT only when supported
5 years ago
ReinUsesLisp
2ee532c9bc
spirv: Use OriginLowerLeft when requested
5 years ago
ReinUsesLisp
884a937022
spirv: Support OpenGL uniform buffers and change bindings
5 years ago
ReinUsesLisp
6236b611cf
shader: Move microinstruction header to the value header
5 years ago
FernandoS27
f1a3f449d6
shader: Address feedback
5 years ago
FernandoS27
b1e325f317
shader: Implement fine derivates constant propagation
5 years ago
ReinUsesLisp
cc96469019
shader: Implement PIXLD.MY_INDEX
5 years ago
ReinUsesLisp
b6b541e36a
spirv: Implement ViewportMask with NV_viewport_array2
5 years ago
ReinUsesLisp
38908d0f7e
shader: Implement tessellation shaders, polygon mode and invocation id
5 years ago
ReinUsesLisp
bba876f192
spirv: Implement Layer stores
5 years ago
ReinUsesLisp
e59971ea1b
shader: Implement transform feedbacks and define file format
5 years ago
ReinUsesLisp
4a6c299e3f
shader: Implement early Z tests
5 years ago
ReinUsesLisp
c84c2ab88c
spirv: Rework storage buffers and shader memory
5 years ago
ReinUsesLisp
4b32692423
shader: Implement geometry shaders
5 years ago
ReinUsesLisp
1cae8e9a10
spirv: Define StorageImageWriteWithoutFormat capability when used
5 years ago
ameerj
62c3bef607
shader: Implement ATOM/S and RED
5 years ago
ReinUsesLisp
ece2e64825
spirv: Move phi node patching to a separate function
5 years ago
ReinUsesLisp
480ce24b7e
spirv: Guard against typeless image reads on unsupported devices
5 years ago
ReinUsesLisp
1e5255de49
spirv: Fix forward declarations on phi nodes
5 years ago
ReinUsesLisp
5ab1ac4f29
shader: Implement SULD and SUST
5 years ago
lat9nq
a4e7a41e7f
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
96da029a74
shader: Implement texture buffers
5 years ago