ameerj
e394e1ecc4
emit_glsl_atomic: Implement 32x2 fallback atomic ops
4 years ago
ameerj
90a0506d56
lower_int64_to_int32: Add 64-bit atomic fallbacks
4 years ago
ameerj
ad58d7eae7
shaders: Add U64->U32x2 Atomic fallback functions
4 years ago
ameerj
4790ba7839
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
beaf7654bb
emit_spirv: Add Xfb execution mode when transform feedback is used
Fixes Transform Feedback on Vulkan AMD drivers.
4 years ago
ameerj
74e6e3623f
video_minimum_maximum: Implement src operand selectors
Used by Pokemon Legends: Arceus
4 years ago
Lioncash
b46ec4efea
shader_recompiler: Remove unnecessary [[nodiscard]]
Since ConvertLegacyToGeneric has a void return value, there's nothing
that is actually returned by the function.
4 years ago
v1993
a943600019
shader_recompiler: fix potential OOB access
Found by static analysis with PVS-Studio. Original check wasn't actually checking for OOB and would segfault in case of it.
4 years ago
liushuyu
09f4f3f23b
logging/log.h: move enum class formatter to a separate file ...
... to common/logging/formatter.h
4 years ago
liushuyu
42f653ab6f
logging: adapt to changes in fmt 8.1
4 years ago
Narr the Reg
524674aafc
glsl: Remove unreachable return
4 years ago
Fernando Sahmkow
f58ee3f15f
ShaderDecompiler: Add a debug option to dump the game's shaders.
4 years ago
ameerj
8c907c620d
glsl: Add boolean reference workaround
4 years ago
ameerj
b84d429c2e
glsl_context_get_set: Add alternative cbuf type for broken drivers
some drivers have a bug bitwise converting floating point cbuf values to uint variables. This adds a workaround for these drivers to make all cbufs uint and convert to floating point as needed.
4 years ago
ameerj
9f34be5a61
emit_glsl_integer: Use negation work around
4 years ago
ameerj
14ac0c2923
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
Matías Locatti
c7235e67ef
Empty spaces
4 years ago
Matías Locatti
840d5520d2
Changes to avoid warnings in SSE4.2 optimized SPIR-V
4 years ago
ameerj
37addf7a94
emit_glasm_context_get_set: Fix GetAttribute return value type.
GetAttribute expects an F32 result type at the IR level, this fixes the return value of attributes which were not returning an F32
4 years ago
ameerj
640fc1418b
emit_glsl_floating_point: Fix FPNeg on newer Nvidia drivers
4 years ago
vonchenplus
4908a07c20
Address format clang
4 years ago
vonchenplus
6ebc972c2b
Remove spirv handle legacy related code
4 years ago
vonchenplus
94652e122d
Remove glsl handle legacy related code
4 years ago
ameerj
7105204a7e
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
ameerj
1e1f7b3234
glasm: Move implemented instructions from not_implemented.cpp
4 years ago
ameerj
f32b2bcd20
shader_recompiler: Adjust emit_context includes
4 years ago
ameerj
5286a7bc4c
shader_recompiler: Rename backend emit_context files
4 years ago
ameerj
41aec2773f
general: Add missing copyright notices
4 years ago
Feng Chen
4dd85f86a8
Implement convert legacy to generic
4 years ago
Fernando Sahmkow
6f98690963
ShaderCache: Better fix for Shuffling gl_FragCoord
4 years ago
FernandoS27
de1c8c5c2c
Texture Cahe/Shader decompiler: Resize PointSize on rescaling, refactor and make reaper more agressive on 4Gb GPUs.
4 years ago
ameerj
618de4e787
vulkan: Fix rescaling push constant usage
4 years ago
ameerj
581ea90062
rescaling_pass: Fix IR errors when unscalable texture types are encountered
4 years ago
ameerj
99eec162da
rescaling_pass: Logic simplification and minor style cleanup
4 years ago
ameerj
276565973f
rescaling_pass: Scale ImageFetch offset if it exists
Plus some code deduplication
4 years ago
ameerj
dd66384451
rescaling_pass: Enable PatchImageQueryDimensions on fragment stages
4 years ago
ameerj
b027fac794
gl_texture_cache/rescaling_pass: minor cleanup
4 years ago
ameerj
edb5844240
rescaling_pass: Fix and simplify shuffle/fragcoord pass
4 years ago
Fernando Sahmkow
b3a9c8f108
Shader: Don't rescale FragCoord if used by Shuffle
4 years ago
ameerj
68e038404c
shader, video_core: Fix GCC build errors
4 years ago
ameerj
65781f88f8
emit_spirv: Fix RescalingLayout alignment
4 years ago
Fernando Sahmkow
dfa8291526
RescalingPass: Agregate pixels on texelFetch while on Fragment Shader
4 years ago
Fernando Sahmkow
8f78444de3
shader: Fix TextureSize check on rescaling.
4 years ago
ameerj
dc28284437
emit_spirv: Fix RescalingLayout alignment
4 years ago
ReinUsesLisp
e66d5b88a6
shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
4 years ago
ReinUsesLisp
fc9bb3c3fe
shader: Properly blacklist and scale image loads
4 years ago
ReinUsesLisp
cfeb161c7e
glsl/glasm: Pass and use scaling parameters in shaders
4 years ago
ameerj
f086c82e1f
gl_graphics_pipeline: Add downscale factor to shader uniforms
4 years ago
ReinUsesLisp
656adee630
spirv: Implement rescaling patching
4 years ago
ReinUsesLisp
01379c5e3c
shader/rescaling_pass: Patch more instructions
4 years ago