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
Andrea Pappacoda
d9044f00e1
fix: typos
4 years ago
ameerj
6091af472a
dead_code_elimination_pass: Remove unreachable Phi arguments
4 years ago
ameerj
f9709bb9e9
general: Fix clang/gcc build errors
4 years ago
ameerj
0df188787a
shader_recompiler: Reduce unused includes
4 years ago
Liam
da3be7513b
shader_recompiler/EXIT: skip render targets with no outputs
4 years ago
Liam
9809829a6e
shader_recompiler/EXIT: increment output register on failed enable test
4 years ago
Liam
63cc9a9ceb
shader_recompiler: Implement LDC.IS address mode
4 years ago
Fernando Sahmkow
05054d1dc2
Shader decompiler: do constant propgation before texture pass.
4 years ago
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
4 years ago
ameerj
94b86a8ada
lower_int64_to_int32: Add 64-bit atomic fallbacks
4 years ago
ameerj
0c5e641757
shaders: Add U64->U32x2 Atomic fallback functions
4 years ago
ameerj
4ee80ce807
video_minimum_maximum: Implement src operand selectors
Used by Pokemon Legends: Arceus
4 years ago
Lioncash
4ea21f074d
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
liushuyu
479d57987c
logging/log.h: move enum class formatter to a separate file ...
... to common/logging/formatter.h
4 years ago
liushuyu
682ea0f431
logging: adapt to changes in fmt 8.1
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
vonchenplus
8fe519b656
Address format clang
4 years ago
vonchenplus
8ea541bc11
Remove spirv handle legacy related code
4 years ago
Feng Chen
dbfa89c40b
Implement convert legacy to generic
4 years ago
ameerj
63465c24e1
rescaling_pass: Logic simplification and minor style cleanup
5 years ago
Fernando Sahmkow
4535feac87
Shader: Don't rescale FragCoord if used by Shuffle
5 years ago
ReinUsesLisp
d04e2dac6c
shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
5 years ago
ReinUsesLisp
e63fc7a4bb
spirv: Implement rescaling patching
5 years ago
ReinUsesLisp
7f88938d72
shader: Add IsTextureScaled opcode
5 years ago
ReinUsesLisp
50d20bf0e9
shader: Add copy constructor to instructions
5 years ago
ReinUsesLisp
8cfa8cda16
shader: Add integer division opcodes
5 years ago
ReinUsesLisp
47d1d881cf
shader: Add resolution down factor opcode
5 years ago
Fernando Sahmkow
6f94c9a9fe
ShaderCache: Fix Phi Nodes Type on OGL.
4 years ago
Fernando Sahmkow
c9bee9e96e
ShaderCache: Order Phi Arguments from farthest away to nearest.
4 years ago
Feng Chen
bd94ea2f5a
Move attribute related definitions to spirv anonymous namespace
5 years ago
Feng Chen
1aaa6a353b
Implement intput and output fixed fnc textures
5 years ago
Feng Chen
49c66fa4e9
Rename parameters
5 years ago
Feng Chen
b86a4caa20
Add colorfront and txtcoord support
5 years ago
ameerj
8485bb3dcb
structured_control_flow: Skip reordering nested demote branches.
Nested demote branches add complexity with combining the condition if it has not been initialized yet. Skip them for the time being.
5 years ago
ameerj
e9a8e011f6
structured_control_flow: Conditionally invoke demote reorder pass
This is only needed on select drivers when a fragment shader discards/demotes.
5 years ago
ameerj
8c687b3a91
structured_control_flow: Add DemoteCombinationPass
Some drivers misread data when demotes are interleaved in the program. This moves demote branches to be checked at the end of the program.
Fixes "wireframe" issue in Pokemon SwSh on some drivers
5 years ago
Lioncash
05201f4f88
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
9d5aa3d65a
control_flow: Fix duplicate switch case in OpcodeToken
This previously duplicated the case of the PBK case above it.
5 years ago
ReinUsesLisp
222a6542ab
shader: Add TryInstRecursive utility to values
5 years ago
ReinUsesLisp
ba89444667
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
ffe72f8d37
shader: Implement ISETP.X
5 years ago
ReinUsesLisp
2321666580
shader: Avoid usage of C++20 ranges to build in clang
5 years ago
lat9nq
b557314001
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
cdb3837085
shader: Manually convert from array<u32> to bitset instead of using bit_cast
5 years ago
ameerj
508e41777b
shader: Ignore global memory ops on devices lacking int64 support
5 years ago
lat9nq
c969f6e678
shader: GCC fmt 8.0.0 fixes
5 years ago
ameerj
79e317ad7d
shader: Account for 33-bit IADD3 scenario
5 years ago
ReinUsesLisp
611797a7c6
shader: Only apply shift on register mode for IADD3
5 years ago
ReinUsesLisp
41b2a991c4
shader: Use std::bit_cast instead of Common::BitCast for passthrough
5 years ago