Commit Graph

297 Commits (7239470dad92a57ae12fb4430c383df17f539ae1)

Author SHA1 Message Date
FengChen b2a6dde438 video_code: support rectangle texture 3 years ago
Andrea Pappacoda cdb240f3d4
chore: make yuzu REUSE compliant
[REUSE] is a specification that aims at making file copyright
information consistent, so that it can be both human and machine
readable. It basically requires that all files have a header containing
copyright and licensing information. When this isn't possible, like
when dealing with binary assets, generated files or embedded third-party
dependencies, it is permitted to insert copyright information in the
`.reuse/dep5` file.

Oh, and it also requires that all the licenses used in the project are
present in the `LICENSES` folder, that's why the diff is so huge.
This can be done automatically with `reuse download --all`.

The `reuse` tool also contains a handy subcommand that analyzes the
project and tells whether or not the project is (still) compliant,
`reuse lint`.

Following REUSE has a few advantages over the current approach:

- Copyright information is easy to access for users / downstream
- Files like `dist/license.md` do not need to exist anymore, as
  `.reuse/dep5` is used instead
- `reuse lint` makes it easy to ensure that copyright information of
  files like binary assets / images is always accurate and up to date

To add copyright information of files that didn't have it I looked up
who committed what and when, for each file. As yuzu contributors do not
have to sign a CLA or similar I couldn't assume that copyright ownership
was of the "yuzu Emulator Project", so I used the name and/or email of
the commit author instead.

[REUSE]: https://reuse.software

Follow-up to 01cf05bc75
3 years ago
Liam d11547024c general: fix compilation on GCC 12 3 years ago
lat9nq 963ed37fd6 structured_control_flow: Remove constexpr Flow::Block
This seems to be unsupported in newer libstdc++ versions due to
Flow::Block's base class being a non-literal type. It's not clear to me
why this was permitted in earlier versions.
3 years ago
Lioncash f981e90af3 general: Avoid ambiguous format_to compilation errors
Ensures that we're using the fmt version of format_to.

These are also the only three outliers. All of the other formatters we
have are properly qualified.
3 years ago
Morph 99ceb03a1c 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.
3 years ago
Andrea Pappacoda 0c214cb5b9
fix: typos 3 years ago
ameerj 67159e3be7 dead_code_elimination_pass: Remove unreachable Phi arguments 3 years ago
Ameer J 75046a3351
Merge pull request #8038 from liamwhite/exit-register-detection
shader_recompiler/EXIT: increment output register on failed enable test
3 years ago
ameerj 866b7c20a8 general: Fix clang/gcc build errors 3 years ago
ameerj 574a2c4b77 shader_recompiler: Reduce unused includes 3 years ago
Liam d400b618a7 shader_recompiler/EXIT: skip render targets with no outputs 3 years ago
Liam 6fa17f3372 shader_recompiler/EXIT: increment output register on failed enable test 3 years ago
Liam 1415542f73 shader_recompiler: Implement LDC.IS address mode 3 years ago
Fernando Sahmkow 185fc03c3c Shader decompiler: do constant propgation before texture pass. 3 years ago
Markus Wick c78c8190d5 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
3 years ago
ameerj 90a0506d56 lower_int64_to_int32: Add 64-bit atomic fallbacks 3 years ago
ameerj ad58d7eae7 shaders: Add U64->U32x2 Atomic fallback functions 3 years ago
ameerj 74e6e3623f video_minimum_maximum: Implement src operand selectors
Used by Pokemon Legends: Arceus
3 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.
3 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.
3 years ago
vonchenplus 4908a07c20 Address format clang 3 years ago
vonchenplus 6ebc972c2b Remove spirv handle legacy related code 3 years ago
Feng Chen 4dd85f86a8 Implement convert legacy to generic 3 years ago
ameerj 99eec162da rescaling_pass: Logic simplification and minor style cleanup 3 years ago
Fernando Sahmkow b3a9c8f108 Shader: Don't rescale FragCoord if used by Shuffle 3 years ago
ReinUsesLisp e66d5b88a6 shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
3 years ago
ReinUsesLisp 656adee630 spirv: Implement rescaling patching 3 years ago
ReinUsesLisp c15332c44f shader: Add IsTextureScaled opcode 3 years ago
ReinUsesLisp c892359d1b shader: Add copy constructor to instructions 3 years ago
ReinUsesLisp 95761cc6a7 shader: Add integer division opcodes 3 years ago
ReinUsesLisp fb924ea85c shader: Add resolution down factor opcode 3 years ago
Fernando Sahmkow 194579bc4f ShaderCache: Fix Phi Nodes Type on OGL. 3 years ago
Fernando Sahmkow c50ad56bf5 ShaderCache: Order Phi Arguments from farthest away to nearest. 3 years ago
ameerj 907dfbea71 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.
4 years ago
ameerj 4fda7f1c82 structured_control_flow: Conditionally invoke demote reorder pass
This is only needed on select drivers when a fragment shader discards/demotes.
4 years ago
ameerj 862dc2b2b3 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
4 years ago
bunnei a98f14e9b0
Merge pull request #6722 from ReinUsesLisp/xmad-opts
shader: Fold integer FMA from Nvidia's pattern
4 years ago
Rodrigo Locatti c0f99558fb
Merge pull request #6724 from lioncash/nodisc-shader
shader_recompiler: Remove unnecessary [[nodiscard]] instances
4 years ago
Lioncash 06ca911621 shader_recompiler: Remove unnecessary [[nodiscard]] instances
[[nodiscard]] doesn't do anything on functions with a void return type
and causes superfluous warnings.
4 years ago
Lioncash 0b67df1f7c control_flow: Fix duplicate switch case in OpcodeToken
This previously duplicated the case of the PBK case above it.
4 years ago
ReinUsesLisp f6f0383b49 shader: Add TryInstRecursive utility to values 4 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.
4 years ago
ameerj fc7bed21b5 shader: Implement ISETP.X 4 years ago
ReinUsesLisp bf2956d77a shader: Avoid usage of C++20 ranges to build in clang 4 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
4 years ago
ReinUsesLisp 2235a51b5d shader: Manually convert from array<u32> to bitset instead of using bit_cast 4 years ago
ameerj 11f04f1022 shader: Ignore global memory ops on devices lacking int64 support 4 years ago
lat9nq 2e5af95541 shader: GCC fmt 8.0.0 fixes 4 years ago
ameerj b9069c7891 shader: Account for 33-bit IADD3 scenario 4 years ago