Age | Commit message (Collapse) | Author |
|
file_sys/vfs_vector: Fix ignored offset on Write
|
|
service/vi: Update IManagerDisplayService's function table
|
|
audio_core: Resolve compilation warnings
|
|
Ensures that all member variables are initialized in a deterministic
manner across the board.
|
|
CubebSinkStream inherits from a base class with a virtual destructor, so
override can be appended to CubebSinkStream's destructor.
|
|
The name of the parameter was shadowing the member variable of the same
name. Instead, alter the name of the parameter to prevent said
shadowing.
|
|
The assignments here were performing an implicit truncation from int to
s16. Make it explicit that this is desired behavior.
|
|
|
|
Amends it to add the 7.0.0+ CreateStrayLayer function.
|
|
shader_decompiler: Improve Accuracy of Attribute Interpolation.
|
|
rasterizer_cache_gl: Only do fast layered copy on the same format.
|
|
Port citra-emu/citra#4655: "Remove GCC version checks"
|
|
service/vi: Convert Display and Layer structs into classes
|
|
|
|
Citra can't be compiled using GCC <7 because of required C++17 support, so these version checks don't need to exist anymore.
|
|
video_core/dma_pusher: The full list of headers at once.
|
|
vk_scheduler: Implement a scheduler
|
|
gl_rasterizer_cache: Fixup parameter order in layered swizzle
|
|
VKMemoryCommitImpl was using as the end of its interval "begin + end".
That ended up wasting memory.
|
|
|
|
The scheduler abstracts command buffer and fence management with an
interface that's able to do OpenGL-like operations on Vulkan command
buffers.
It returns by value a command buffer and fence that have to be used for
subsequent operations until Flush or Finish is executed, after that the
current execution context (the pair of command buffers and fences) gets
invalidated a new one must be fetched. Thankfully validation layers will
quickly detect if this is skipped throwing an error due to modifications
to a sent command buffer.
|
|
vk_memory_manager: Implement memory manager
|
|
The NVFlinger service is already passed into services that need to
guarantee its lifetime, so the BufferQueue instances will already live
as long as they're needed. Making them std::shared_ptr instances in this
case is unnecessary.
|
|
Like the previous changes made to the Display struct, this prepares the
Layer struct for changes to its interface. Given Layer will be given
more invariants in the future, we convert it into a class to better
signify that.
|
|
With the display and layer structures relocated to the vi service, we
can begin giving these a proper interface before beginning to properly
support the display types.
This converts the display struct into a class and provides it with the
necessary functions to preserve behavior within the NVFlinger class.
|
|
gl_state: Synchronize gl_state even when state is disabled
|
|
video_core: Remove usages of System::GetInstance() within the engines
|
|
* Fixes Unicode Key File Directories
Adds code so that when loading a file it converts to UTF16 first, to
ensure the files can be opened. Code borrowed from FileUtil::Exists.
* Update src/core/crypto/key_manager.cpp
Co-Authored-By: Jungorend <Jungorend@users.noreply.github.com>
* Update src/core/crypto/key_manager.cpp
Co-Authored-By: Jungorend <Jungorend@users.noreply.github.com>
* Using FileUtil instead to be cleaner.
* Update src/core/crypto/key_manager.cpp
Co-Authored-By: Jungorend <Jungorend@users.noreply.github.com>
|
|
These are more closely related to the vi service as opposed to the
intermediary nvflinger.
This also places them in their relevant subfolder, as future changes to
these will likely result in subclassing to represent various displays
and services, as they're done within the service itself on hardware.
The reasoning for prefixing the display and layer source files is to
avoid potential clashing if two files with the same name are compiled
(e.g. if 'display.cpp/.h' or 'layer.cpp/.h' is added to another service
at any point), which MSVC will actually warn against. This prevents that
case from occurring.
This also presently coverts the std::array introduced within
f45c25aabacc70861723a7ca1096a677bd987487 back to a std::vector to allow
the forward declaration of the Display type. Forward declaring a type
within a std::vector is allowed since the introduction of N4510
(http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html) by
Zhihao Yuan.
|
|
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.
|
|
A memory manager object handles the memory allocations for a device. It
allocates chunks of Vulkan memory objects and then suballocates.
|
|
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.
|
|
Avoids the use of the global accessor in favor of explicitly making the
system a dependency within the interface.
|
|
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.
|
|
There are some potential edge cases where gl_state may fail to track the
state if a related state changes while the toggle is disabled or it
didn't change. This addresses that.
|
|
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.
|