Age | Commit message (Collapse) | Author |
|
|
|
|
|
renderer_opengl: Avoid precompiled cache and force NV GL cache directory
|
|
|
|
We can use the standardized CLZ facilities to perform this. This also
allows us to make utilizing functions constexpr and eliminate the
inclusion of an intrinsics header.
|
|
Setting __GL_SHADER_DISK_CACHE_PATH we can force the cache directory to
be in yuzu's user directory to stop commonly distributed malware from
deleting our driver shader cache. And by setting
__GL_SHADER_DISK_CACHE_SKIP_CLEANUP we can have an unbounded shader
cache size.
This has only been implemented on Windows, mostly because previous tests
didn't seem to work on Linux.
Disable the precompiled cache on Nvidia's driver. There's no need to
hide information the driver already has in its own cache.
|
|
core: Silence Wclass-memaccess warnings and enforce it
|
|
X86/NativeClock: Improve performance of clock calculations on hot path.
|
|
common/tree: Convert defines over to templates
|
|
common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT
|
|
This requires making several types trivial and properly initialize
them whenever they are called.
|
|
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior.
|
|
common/timer: Remove
|
|
common/alignment: Rename AlignBits to AlignUpLog2 and use constraints
|
|
Makes for less code that we need to maintain.
|
|
|
|
AlignUpLog2 describes what the function does better than AlignBits.
|
|
This is a leftover from citra and dolphin that isn't used at all,
particularly given the <chrono> header exists.
|
|
This is a leftover from Citra we no longer use.
|
|
Port citra-emu/citra#5666: "Rotate previous log file to "citra_log.txt.old""
|
|
Reworks the tree header to operate off of templates as opposed to a
series of defines.
This allows all tree facilities to obey namespacing rules, and also
allows this code to be used within modules once compiler support is in
place.
This also gets rid to use a macro to define functions and structs for
necessary data types. With templates, these will be generated when
they're actually used, eliminating the need for the separate
declaration.
|
|
Makes for less code to take care of.
|
|
Provides the same construct, but makes it obey namespacing.
|
|
|
|
|
|
Fixes instances where DivCeil(u32, u64) would surprisingly return u64,
instead of the more natural u32.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
core/memory: Read and write page table atomically
|
|
Service threads
|
|
Squash attributes into the pointer's integer, making them an uintptr_t
pair containing 2 bits at the bottom and then the pointer. These bits
are currently unused thanks to alignment requirements.
Configure Dynarmic to mask out these bits on pointer reads.
While we are at it, remove some unused attributes carried over from
Citra.
Read/Write and other hot functions use a two step unpacking process that
is less readable to stop MSVC from emitting an extra AND instruction in
the hot path:
mov rdi,rcx
shr rdx,0Ch
mov r8,qword ptr [rax+8]
mov rax,qword ptr [r8+rdx*8]
mov rdx,rax
-and al,3
and rdx,0FFFFFFFFFFFFFFFCh
je Core::Memory::Memory::Impl::Read<unsigned char>
mov rax,qword ptr [vaddr]
movzx eax,byte ptr [rdx+rax]
|
|
|
|
- For `std::same_as`, add missing include of `<concepts>`.
- For `std::convertible_to`, create a replacement in `common/concepts.h`
and use that instead.
This would also be found in `<concepts>`, but unlike `std::same_as`,
`std::convertible_to` is not yet implemented in libc++, LLVM's STL
implementation - not even in master. (In fact, `std::same_as` is the
*only* concept currently implemented. For some reason.)
|
|
Rewrite Kernel scheduler based on Atmosphere
|
|
Fixes regression by 761206cf81b271f7f4dd6a167a120325b760dbf3, causing
yuzu to not build on Linux with any version of Boost except a cached
1.73 Conan version from before about a day ago.
Moves the Boost requirement out of the `REQUIRED_LIBS` psuedo-2D-array
for Conan to instead be manually configured, using Conan as a fallback
solution if the system does not meet our requirements.
Requires any update from the linux-fresh container in order to build.
**DO NOT MERGE** until someone with the MSVC toolchain can verify this
works there, too.
|
|
|
|
This reverts commit ce5fcb6bb2c358b0251a2ce87945bda52789a76d, reversing
changes made to 6f41763061082d5fa2ab039c554427152243cb46.
|
|
This reverts commit 5fe55b16a11d9ec607fb8a3fdddc77a4393cd96a, reversing
changes made to e94dd7e2c4fc3f7ca2c15c01bdc301be2b8a4c1b.
|
|
This reverts commit 4e94d0d53af2cdb7b03ef9de23cc29f3565df97a, reversing
changes made to 6d6115475b4edccdf1bb4e96ecc3d3b1be319e76.
|
|
This reverts commit cdb36aef9ec9d30bdef1953f9ed46776ae2f12af, reversing
changes made to 5e9b77129f2cf8c039a8d98033cae4ac0f93f515.
|
|
|
|
Fix invalid encoding paths when iterating over a directory on Windows.
|
|
Fix CreateFullPath to have its intended previous behavior (whatever
that was), and deprecate it in favor of the new CreateDirs function.
Unlike CreateDir, CreateDirs is marked as [[nodiscard]] to avoid new
code ignoring its result value.
|
|
|