ameerj
0df188787a
shader_recompiler: Reduce unused includes
2022-03-20 02:25:08 -04:00
Liam
35e3d7bef0
Address review comments
2022-03-18 15:55:46 -04:00
Liam
da3be7513b
shader_recompiler/EXIT: skip render targets with no outputs
2022-03-18 09:26:25 -04:00
Liam
9809829a6e
shader_recompiler/EXIT: increment output register on failed enable test
2022-03-17 22:09:31 -04:00
Liam
83b1c9de37
Address review comments
2022-03-17 14:48:18 -04:00
Liam
95b9f62686
shader_recompiler: Use functions for indirect const buffer accesses
2022-03-17 13:30:21 -04:00
Liam
f3382e6339
Address review comments
2022-03-17 09:30:41 -04:00
Liam
63cc9a9ceb
shader_recompiler: Implement LDC.IS address mode
2022-03-16 11:05:04 -04:00
Liam
8515dba789
shader: add support for const buffer indirect addressing
2022-03-14 19:43:32 -04:00
Fernando S
1077f95f7c
Merge pull request #8008 from ameerj/rescale-offsets-array
...
rescaling_pass: Fix rescaling Color2DArray ImageFetch offsets
2022-03-15 00:08:22 +01:00
Fernando Sahmkow
05054d1dc2
Shader decompiler: do constant propgation before texture pass.
2022-03-13 21:49:40 +01:00
Fernando Sahmkow
fc8251e043
Shader decompiler: Fix storage tracking in deko3d.
2022-03-13 17:41:16 +01:00
ameerj
1888b552e3
rescaling_pass: Fix rescaling Color2DArray ImageFetch offsets
...
ImageFetch offsets for 2D array coordinates have a different composite size than the coordinates. The rescaling pass was not taking this into account.
Fixes broken shaders when scaling is enabled in Astral Chain, and likely other titles.
2022-03-12 03:31:56 -05:00
ameerj
048522e98b
emit_spirv, vk_compute_pass: Resolve VS2022 compiler errors
2022-03-12 02:54:33 -05:00
Markus Wick
062d95753f
shader_recompiler/LOP3: Use brute force python results within switch/case.
...
Thanks to @asLody for optimizing this function. This raised the focus that this function should be optimized more.
The current table assumes that the host GPU is able to invert for free, so only AND,OR,XOR are accumulated in the performance metrik.
Performance results:
Instructions
0: 8
1: 30
2: 114
3: 80
4: 24
Latency
0: 8
1: 30
2: 194
3: 24
2022-03-08 09:44:28 +01:00
ameerj
092771e9c8
emit_glsl_atomic: Implement 32x2 fallback atomic ops
2022-01-29 19:56:03 -05:00
ameerj
94b86a8ada
lower_int64_to_int32: Add 64-bit atomic fallbacks
2022-01-29 19:56:02 -05:00
ameerj
0c5e641757
shaders: Add U64->U32x2 Atomic fallback functions
2022-01-29 19:55:53 -05:00
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
2022-01-28 19:00:04 -05:00
Morph
693d982a0f
Merge pull request #7786 from ameerj/vmnmx-sel
...
video_minimum_maximum: Implement src operand selectors
2022-01-28 18:24:56 -05:00
ameerj
712b7883be
emit_spirv: Add Xfb execution mode when transform feedback is used
...
Fixes Transform Feedback on Vulkan AMD drivers.
2022-01-28 16:32:48 -05:00
ameerj
4ee80ce807
video_minimum_maximum: Implement src operand selectors
...
Used by Pokemon Legends: Arceus
2022-01-27 14:55:08 -05:00
Lioncash
4ea21f074d
shader_recompiler: Remove unnecessary [[nodiscard]]
...
Since ConvertLegacyToGeneric has a void return value, there's nothing
that is actually returned by the function.
2022-01-25 12:16:09 -05:00
v1993
970b362ca1
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.
2022-01-17 21:50:51 +03:00
liushuyu
479d57987c
logging/log.h: move enum class formatter to a separate file ...
...
... to common/logging/formatter.h
2022-01-09 17:35:33 -07:00
liushuyu
682ea0f431
logging: adapt to changes in fmt 8.1
2022-01-08 01:49:26 -07:00
Narr the Reg
0646512a9c
glsl: Remove unreachable return
2022-01-04 20:23:39 -06:00
Fernando Sahmkow
65387dd0a0
ShaderDecompiler: Add a debug option to dump the game's shaders.
2022-01-04 02:39:00 +01:00
Fernando S
8a790b09a7
Merge pull request #7629 from ameerj/nv-driver-fixes
...
shaders: Add fixes for NVIDIA drivers 495+
2022-01-03 00:39:59 +01:00
ameerj
c5c13369fa
glsl: Add boolean reference workaround
2021-12-29 19:03:50 -05:00
ameerj
a57dc3509a
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.
2021-12-29 19:03:50 -05:00
ameerj
0918d673a3
emit_glsl_integer: Use negation work around
2021-12-29 19:03:50 -05:00
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.
2021-12-29 19:03:49 -05:00
bunnei
ecc0a7140c
Merge pull request #7618 from goldenx86/patch-4
...
Increase boost requirement to 1.78.0
2021-12-28 16:25:37 -08:00
Matías Locatti
244dff4e6e
Empty spaces
2021-12-28 18:50:51 -03:00
Matías Locatti
1a30c0a125
Changes to avoid warnings in SSE4.2 optimized SPIR-V
2021-12-28 17:35:55 -03:00
ameerj
44832be5d2
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
2021-12-24 20:45:07 -05:00
ameerj
fbb33df96f
emit_glsl_floating_point: Fix FPNeg on newer Nvidia drivers
2021-12-24 20:03:54 -05:00
vonchenplus
8fe519b656
Address format clang
2021-12-18 14:27:07 +08:00
vonchenplus
8ea541bc11
Remove spirv handle legacy related code
2021-12-18 14:08:50 +08:00
vonchenplus
ac51211ce4
Remove glsl handle legacy related code
2021-12-18 14:03:40 +08:00
Feng Chen
c8dab19f32
Merge branch 'yuzu-emu:master' into convert_legacy
2021-12-18 13:57:14 +08:00
Mai M
5a19374ea8
Merge pull request #7522 from ameerj/shader-recompiler-filenames
...
shader_recompiler/backend: Minor organization and refactoring to reduce compile time overhead
2021-12-07 18:27:50 -05:00
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.
2021-12-05 18:11:19 -05:00
ameerj
ed5b039980
glasm: Move implemented instructions from not_implemented.cpp
2021-12-05 18:11:19 -05:00
ameerj
efd428c747
shader_recompiler: Adjust emit_context includes
2021-12-05 18:11:19 -05:00
ameerj
c0705ede4d
shader_recompiler: Rename backend emit_context files
2021-12-05 16:33:44 -05:00
ameerj
8969273d2d
general: Add missing copyright notices
2021-12-05 16:18:53 -05:00
Feng Chen
dbfa89c40b
Implement convert legacy to generic
2021-11-19 22:53:58 +08:00
Fernando Sahmkow
04b8e6c834
ShaderCache: Better fix for Shuffling gl_FragCoord
2021-11-16 22:11:33 +01:00