Lioncash
06ca911621
shader_recompiler: Remove unnecessary [[nodiscard]] instances
[[nodiscard]] doesn't do anything on functions with a void return type
and causes superfluous warnings.
5 years ago
Lioncash
0b67df1f7c
control_flow: Fix duplicate switch case in OpcodeToken
This previously duplicated the case of the PBK case above it.
5 years ago
ReinUsesLisp
f6f0383b49
shader: Add TryInstRecursive utility to values
5 years ago
ReinUsesLisp
7f13104c17
shader: Support out of bound local memory reads and immediate writes
Support ignoring immediate out of bound writes. Writing dynamically out
of bounds is not yet supported (e.g. R0+0x4).
Reading out of bounds yields zero. This is supported checking for the
size from the IR; if the input is immediate, the optimization passes
will drop it.
5 years ago
ameerj
fc7bed21b5
shader: Implement ISETP.X
5 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
ReinUsesLisp
2235a51b5d
shader: Manually convert from array<u32> to bitset instead of using bit_cast
5 years ago
ameerj
11f04f1022
shader: Ignore global memory ops on devices lacking int64 support
5 years ago
lat9nq
2e5af95541
shader: GCC fmt 8.0.0 fixes
5 years ago
ameerj
b9069c7891
shader: Account for 33-bit IADD3 scenario
5 years ago
ReinUsesLisp
b21bf79bd2
shader: Only apply shift on register mode for IADD3
5 years ago
ReinUsesLisp
8612b5fec5
shader: Use std::bit_cast instead of Common::BitCast for passthrough
5 years ago
ReinUsesLisp
7dafa96ab5
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
ecd6b4356b
shader: Only verify shader when graphics debugging is enabled
5 years ago
ReinUsesLisp
fb166b5ff4
shader: Emulate 64-bit integers when not supported
Useful for mobile and Intel Xe devices.
5 years ago
ReinUsesLisp
4397053d5c
shader: Remove IAbs64
5 years ago
ameerj
a7536825df
shader_recompiler: Fix IADD3 input partitioning
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
1091995f8e
shader: Simplify MergeDualVertexPrograms
5 years ago
ReinUsesLisp
374eeda1a3
shader: Properly manage attributes not written from previous stages
5 years ago
ReinUsesLisp
cbbca26d18
shader: Add support for native 16-bit floats
5 years ago
ReinUsesLisp
376aa94819
shader: Rename maxwell/program.h to translate_program.h
5 years ago
ReinUsesLisp
7ac55c2a75
shader: Fix loop safety to SSA pass
5 years ago
ReinUsesLisp
61cd7dd301
shader: Add logging
5 years ago
lat9nq
373f75d944
shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
5 years ago
ReinUsesLisp
487057b8d2
shader: Comment why the array component is not read in TMML
5 years ago
ameerj
3c125d4134
tmml: Remove index component from coords vec
The lod query functions exposed by the rendering API's do not make use of the texturearray layer indexing.
5 years ago
FernandoS27
562af30181
shader: Fix VertexA Shaders.
5 years ago
ReinUsesLisp
ec9a78885e
shader: Add 2D and 3D variants to SUATOM and SURED
Used by Claybook.
5 years ago
ReinUsesLisp
4f8b68fb04
shader: Avoid CPU side undefined behavior on I2F
5 years ago
ReinUsesLisp
05d41fa9b7
shader: Add support for "negative" and unaligned offsets
"Negative" offsets don't exist. They are shown as such due to a bug in
nvdisasm.
Unaligned offsets have been proved to read the aligned offset. For
example, when reading an U32, if the offset is 6, the offset read will
be 4.
5 years ago
ReinUsesLisp
5d170de0b5
shader: Implement ISCADD32I
5 years ago
ReinUsesLisp
329dea217d
shader: Always initialize up reference in structure control flow
Fixes ubsan issue.
5 years ago
ReinUsesLisp
d093522fac
shader: Fix ImageWrite indexing
5 years ago
ReinUsesLisp
b659212dbd
shader: Fix TMML queries
5 years ago
ReinUsesLisp
b7764c3a79
shader: Handle host exceptions
5 years ago
ReinUsesLisp
8f3043c3cf
Revert "glasm: Skip phi moves on undefined instructions"
Causes regressions on Bowser's Fury.
5 years ago
ReinUsesLisp
586c785366
glasm: Skip phi moves on undefined instructions
5 years ago
ReinUsesLisp
a49532c8eb
video_core,shader: Clang-format fixes
5 years ago
ReinUsesLisp
9bb3e008c9
shader: Read branch conditions from an instruction
Fixes the identity removal pass.
5 years ago
ReinUsesLisp
ec6fc5fe78
glasm: Implement TEX and TEXS instructions
Remove lod clamp from texture instructions with lod, as this is not
needed (nor supported).
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
776ab3ea12
shader: Use a non-trivial dummy to construct ASL node union
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
3b6a632237
shader: Add floating-point rounding to I2F
5 years ago
ReinUsesLisp
6fd190d1ae
glasm: Implement basic GLASM instructions
5 years ago
ReinUsesLisp
b10cf64c48
glasm: Add GLASM backend infrastructure
5 years ago