Commit Graph

22 Commits (ceb65c259a8aeb3e5aabe8a94235073c9e1e1c80)

Author SHA1 Message Date
Alexandre Bouvier 7239470dad cmake: fix git detection 2 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
Andrew Udvare caf38725ae
Allow overriding SCM version info
If the build is from a non-repository, these functions will return empty. This
patch allows using defines to CMake to set version info such as
-DGIT_BRANCH=master.
3 years ago
ReinUsesLisp 594ea29015 cmake: Remove unused code in GenerateSCMRev.cmake
Remove shader code hash generation code as it's no longer used.
4 years ago
ReinUsesLisp c67d64365a shader: Remove old shader management 4 years ago
ReinUsesLisp a63a0daa5e gl_arb_decompiler: Implement an assembly shader decompiler
Emit code compatible with NV_gpu_program5.
This should emit code compatible with Fermi, but it wasn't tested on
that architecture. Pascal has some issues not present on Turing GPUs.
5 years ago
ReinUsesLisp 3dcaa84ba4 shader/transform_feedback: Add host API friendly TFB builder 5 years ago
ReinUsesLisp e8efd5a901 video_core: Rename "const buffer locker" to "registry" 5 years ago
ReinUsesLisp bd8b9bbcee gl_shader_cache: Rework shader cache and remove post-specializations
Instead of pre-specializing shaders and then post-specializing them,
drop the later and only "specialize" the shader while decoding it.
5 years ago
James Rowe b429095b61 Fix git version in scm_rev.cpp 5 years ago
Fernando Sahmkow 1a58f45d76 VideoCore: Unify const buffer accessing along engines and provide ConstBufferLocker class to shaders. 5 years ago
Fernando Sahmkow 47e4f6a52c Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes. 5 years ago
Fernando Sahmkow 8be6e1c522 shader_ir: Corrections to outward movements and misc stuffs 5 years ago
ReinUsesLisp 4e35177e23 shader_ir: Implement VOTE
Implement VOTE using Nvidia's intrinsics. Documentation about these can
be found here
https://developer.nvidia.com/reading-between-threads-shader-intrinsics

Instead of using portable ARB instructions I opted to use Nvidia
intrinsics because these are the closest we have to how Tegra X1
hardware renders.

To stub VOTE on non-Nvidia drivers (including nouveau) this commit
simulates a GPU with a warp size of one, returning what is meaningful
for the instruction being emulated:

* anyThreadNV(value) -> value
* allThreadsNV(value) -> value
* allThreadsEqualNV(value) -> true

ballotARB, also known as "uint64_t(activeThreadsNV())", emits

VOTE.ANY Rd, PT, PT;

on nouveau's compiler. This doesn't match exactly to Nvidia's code

VOTE.ALL Rd, PT, PT;

Which is emulated with activeThreadsNV() by this commit. In theory this
shouldn't really matter since .ANY, .ALL and .EQ affect the predicates
(set to PT on those cases) and not the registers.
6 years ago
Fernando Sahmkow 8af6e6a052 shader_ir: Implement a new shader scanner 6 years ago
ReinUsesLisp 06c4ce8645 shader: Decode SUST and implement backing image functionality 6 years ago
ReinUsesLisp dec1cbaf7f cmake: Add missing shader hash file entries 6 years ago
fearlessTobi b67be7154d GenerateSCMRev: fix Travis compilation on repo forks 6 years ago
ReinUsesLisp 48e6f77c03 shader/decode: Split memory and texture instructions decoding 6 years ago
ReinUsesLisp dfd14618f7 cmake: Fix title bar issue 6 years ago
Michael 4ffb487251 cmake: Fixup application string
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
6 years ago
ReinUsesLisp be4641c43f gl_shader_disk_cache: Invalidate shader cache changes with CMake hash 6 years ago