ameerj
28cecc6cd8
shaders: Track local memory usage
3 years ago
FengChen
348c6e5b28
video_core: Fix few issues in Tess stage
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
Liam
528cba63b6
shader_recompiler: support const buffer indirect addressing on OpenGL SPIR-V
4 years ago
Liam
83b1c9de37
Address review comments
4 years ago
Liam
95b9f62686
shader_recompiler: Use functions for indirect const buffer accesses
4 years ago
Liam
8515dba789
shader: add support for const buffer indirect addressing
4 years ago
ameerj
0c5e641757
shaders: Add U64->U32x2 Atomic fallback functions
4 years ago
ameerj
c3d768426c
spirv_atomic: Define U32x2 storage buffers for 64-bit storage atomics
Some drivers do not support 64-bit atomics, and fallback to atomically modifying U32x2 vectors. This change ensures that U32x2 storage vectors are defined in the spir-v shader when 64-bit atomics are used.
Fixes a hang on some devices, notably Intel GPUs, when booting Pokemon Legends Arceus
4 years ago
ameerj
22a4d26479
shader: Add integer attribute get optimization pass
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
4 years ago
ReinUsesLisp
d04e2dac6c
shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
4 years ago
ReinUsesLisp
7f88938d72
shader: Add IsTextureScaled opcode
5 years ago
ReinUsesLisp
14fb648246
shader: Fix resolution scaling pass
5 years ago
ReinUsesLisp
d84b81fdfb
shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructions
Fixes instances where fp16 types are not declared on SPIR-V but they are
used. This shouldn't happen on master, as it's been uncovered by an
additional optimization pass.
5 years ago
ameerj
f2f16e3a1d
glsl: Fix tracking of info.uses_shadow_lod
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
9c387a270b
shader: Align constant buffer sizes to 16 bytes
WAR for AMD reading zeroes on uniform buffers of size 2.
5 years ago
ReinUsesLisp
c4a71824d5
shader: Properly manage attributes not written from previous stages
5 years ago
ameerj
50e1ced397
glsl: Conditionally add EXT_texture_shadow_lod
5 years ago
ameerj
3e6f89f964
glsl: Implement legacy varyings
5 years ago
ameerj
748e56e8a2
glsl: Fix ATOM and implement ATOMS
5 years ago
ameerj
c8b2a5a4f3
glsl: Track S32 atomics
5 years ago
ameerj
5fa21197b9
glsl: Revert ssbo aliasing. Storage Atomics impl
5 years ago
ameerj
659eecb295
glsl: Wip storage atomic ops
5 years ago
ReinUsesLisp
535fb4e6b5
buffer_cache: Reduce uniform buffer size from shader usage
Increases performance significantly on certain titles.
5 years ago
ReinUsesLisp
34d1a2ffe5
shader,glasm: Implement legacy texcoord loads
5 years ago
ReinUsesLisp
bebebf3fa8
shader: Track legacy varyings
5 years ago
ReinUsesLisp
7273fcab95
glasm: Implement shuffle and vote instructions on GLASM
5 years ago
FernandoS27
007a11014c
shader: Optimize NVN Fallthrough
5 years ago
ameerj
455872a4af
shader: Implement Int32 SUATOM/SURED
5 years ago
ReinUsesLisp
6236b611cf
shader: Move microinstruction header to the value header
5 years ago
ReinUsesLisp
e54171c1a9
shader: Add NVN storage buffer fallbacks
When we can't track the SSBO origin of a global memory instruction,
leave it as a global memory operation and assume these pointers are in
the NVN storage buffer slots, then apply a linear search in the shader's
runtime.
5 years ago
FernandoS27
f1a3f449d6
shader: Address feedback
5 years ago
FernandoS27
2f01c7fb62
shader: Add coarse derivatives
5 years ago
FernandoS27
b1e325f317
shader: Implement fine derivates constant propagation
5 years ago
ReinUsesLisp
ad1507b4a5
shader: Implement SampleMask
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
10c96c7484
shader: Implement PrimitiveId
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
c84c2ab88c
spirv: Rework storage buffers and shader memory
5 years ago
ReinUsesLisp
1cae8e9a10
spirv: Define StorageImageWriteWithoutFormat capability when used
5 years ago
ReinUsesLisp
879fb08101
shader: Implement SR_THREAD_KILL
5 years ago
ameerj
62c3bef607
shader: Implement ATOM/S and RED
5 years ago
ReinUsesLisp
480ce24b7e
spirv: Guard against typeless image reads on unsupported devices
5 years ago
ReinUsesLisp
8ec58e16b2
shader: Move LaneId to the warp emission file and fix AMD
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
FernandoS27
0ef887fa6f
shader: Address feedback
5 years ago