| Age | Commit message (Collapse) | Author |
|
declaration order
Orders the members in the order they would actually be initialized in.
Silences a -Wreorder warning.
|
|
This is only necessary in headers. Silences a warning with clang.
|
|
This member function doesn't modify instance state, so it can have the
const specifier applied to it.
|
|
AudioRendererParameter
Provides names for previously unknown entries (aside from the two u8
that appear to be padding bytes, and a single word that also appears
to be reserved or padding).
This will be useful in subsequent changes when unstubbing behavior related
to the audio renderer services.
|
|
These types are within the common library, so they should be within the
Common namespace.
|
|
These types are within the common library, so they should be using the
Common namespace.
|
|
Quaternion is within the common library, so it should be using the
Common namespace.
|
|
This function is also supposed to check its given policy type with the
permission of the service itself. This implements the necessary
machinery to unstub these functions.
Policy::User seems to just be basic access (which is probably why vi:u
is restricted to that policy), while the other policy seems to be for
extended abilities regarding which displays can be managed and queried,
so this is assumed to be for a background compositor (which I've named,
appropriately, Policy::Compositor).
|
|
There's no real reason this shouldn't be allowed, given some values sent
via a request can be signed. This also makes it less annoying to work
with popping enum values, given an enum class with no type specifier
will work out of the box now.
It's also kind of an oversight to allow popping s64 values, but nothing
else.
|
|
|
|
|
|
This didn't really provide much benefit here, especially since the
subsequent change requires that the behavior for each service's
GetDisplayService differs in a minor detail.
This also arguably makes the services nicer to read, since it gets rid
of an indirection in the class hierarchy.
|
|
|
|
|
|
|
|
|
|
|
|
file_sys/vfs_vector: Fix ignored offset on Write
|
|
service/vi: Update IManagerDisplayService's function table
|
|
audio_core: Resolve compilation warnings
|
|
Makes immutable state explicit.
|
|
The kernel allows restricting the total size of the handle table through
the process capability descriptors. Until now, this functionality wasn't
hooked up. With this, the process handle tables become properly restricted.
In the case of metadata-less executables, the handle table will assume
the maximum size is requested, preserving the behavior that existed
before these changes.
|
|
Directly initializes members where applicable.
|
|
Avoids implicit truncation warnings from u32 -> u16 (the truncation is
desirable behavior here).
|
|
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.
|
|
This manages two kinds of streaming buffers: one for unified memory
models and one for dedicated GPUs. The first one skips the copy from the
staging buffer to the real buffer, since it creates an unified buffer.
This implementation waits for all fences to finish their operation
before "invalidating". This is suboptimal since it should allocate
another buffer or start searching from the beginning. There is room for
improvement here.
This could also handle AMD's "pinned" memory (a heap with 256 MiB) that
seems to be designed for buffer streaming.
|
|
|
|
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
|