Age | Commit message (Collapse) | Author |
|
As fetching command list headers and and the list of command headers is a fixed 1:1 relation now, they can be implemented within a single call.
This cleans up the Step() logic quite a bit.
|
|
Fetching every u32 from memory leads to a big overhead. So let's fetch all of them as a block if possible.
This reduces the Memory::* calls by the dma_pusher by a factor of 10.
|
|
vk_resource_manager: Implement fence and command buffer allocator
|
|
audio_core/buffer: Make const and non-const getter for samples consistent
|
|
address_arbiter: Use nested namespaces where applicable
|
|
renderer_opengl: respect the sRGB colorspace for the screenshot feature
|
|
Port citra-emu/citra#4197: "threadsafe_queue: Add PopWait and use it where possible "
|
|
This way proper const/non-const selection can occur.
|
|
A fairly trivial change. Other sections of the codebase use nested
namespaces instead of separate namespaces here. This one must have just
been overlooked.
|
|
core_timing: De-globalize core_timing facilities
|
|
Gets rid of the largest set of mutable global state within the core.
This also paves a way for eliminating usages of GetInstance() on the
System class as a follow-up.
Note that no behavioral changes have been made, and this simply extracts
the functionality into a class. This also has the benefit of making
dependencies on the core timing functionality explicit within the
relevant interfaces.
|
|
|
|
|
|
Previously, we were completely ignoring for screenshots whether the game uses RGB or sRGB.
This resulted in screenshot colors that looked off for some titles.
|
|
gl_rasterizer_cache: Get rid of variable shadowing
|
|
gl_shader_decompiler: Re-implement TLDS lod
|
|
|
|
Handles a pool of resources protected by fences. Manages resource
overflow allocating more resources.
This class is intended to be used through inheritance.
|
|
CommitFence iterates a pool of fences until one is found. If all fences
are being used at the same time, allocate more.
|
|
A fence watch is used to keep track of the usage of a fence and protect
a resource or set of resources without having to inherit from their
handlers.
|
|
Fences take ownership of objects, protecting them from GPU-side or
driver-side concurrent access. They must be commited from the resource
manager. Their usage flow is: commit the fence from the resource
manager, protect resources with it and use them, send the fence to an
execution queue and Wait for it if needed and then call Release. Used
resources will automatically be signaled when they are free to be
reused.
|
|
VKResource is an interface that gets signaled by a fence when it is free
to be reused.
|
|
vulkan: Add dependencies and device abstraction
|
|
core_timing: Make EmptyTimedCallback a local variable
|
|
threadsafe_queue: Remove NeedSize template parameter
|
|
Makes it consistent with the regular standard containers in terms of
size representation. This also gets rid of dependence on our own
type aliases, removing the need for an include.
|
|
The necessity of this parameter is dubious at best, and in 2019 probably
offers completely negligible savings as opposed to just leaving this
enabled. This removes it and simplifies the overall interface.
|
|
Given this is only used in one place, it can be moved closest to its
usage site.
|
|
Implement BGRA8 framebuffer format
|
|
renderer_opengl: Remove reference to global system instance
|
|
VKDevice contains all the data required to manage and initialize a
physical device. Its intention is to be passed across Vulkan objects to
query device-specific data (for example the logical device and the
dispatch loader).
|
|
We already store a reference to the system instance that the renderer is
created with, so we don't need to refer to the system instance via
Core::System::GetInstance()
|
|
core_timing: Rename CoreTiming namespace to Core::Timing
|
|
kepler_compute: Fixup assert and rename the engine
|
|
|
|
Avoids shadowing the members of the struct itself, which results in a
-Wshadow warning.
|
|
This file is intended to be included instead of vulkan/vulkan.hpp. It
includes declarations of unique handlers using a dynamic dispatcher
instead of a static one (which would require linking to a Vulkan
library).
|
|
|
|
|
|
|
|
|
|
Places all of the timing-related functionality under the existing Core
namespace to keep things consistent, rather than having the timing
utilities sitting in its own completely separate namespace.
|
|
Fix incorrect value for CC bit in IADD
|
|
Corrected F2I None mode to RoundEven.
|
|
shader_ir: Clean texture management code
|
|
|
|
|
|
When I originally added the compute assert I used the wrong
documentation. This addresses that.
The dispatch register was tested with homebrew against hardware and is
triggered by some games (e.g. Super Mario Odyssey). What exactly is
missing to get a valid program bound by this engine requires more
investigation.
|
|
|
|
gl_rasterizer: Implement a more accurate fermi 2D copy.
|