Age | Commit message (Collapse) | Author |
|
- Previous optimized impl. resulted in an integer overflow, so revert.
- This is our slow/fallback path that should never be really be used, so the optimization in unimportant.
|
|
Allow sharing return types with the rest of the code base. For example,
we use 'u128 = std::array<u64, 2>', meanwhile Google's code uses
'uint128 = std::pair<u64, u64>'.
While we are at it, use size_t instead of std::size_t.
|
|
instruction.
|
|
|
|
Prevents an operator delete error when compiling with Clang 11.
|
|
This has been fixed as of Visual Studio 2019 Version 16.2
|
|
ring_buffer: Remove granularity template argument
|
|
Non-obvious bug in RingBuffer::Push(std::vector<T>&) when granularity != 1
Just remove it altogether because we do not have a use for granularity != 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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]
|