Age | Commit message (Collapse) | Author |
|
kernel/process: Remove use of global system accessors
|
|
gl_rasterizer: Use system instance passed from argument
|
|
renderer_opengl/gl_global_cache: Add missing override specifiers
|
|
kernel/server_port: Make data members private
|
|
core/hle/result: Tidy up the base error code result header.
|
|
Port various Citra changes to input_common, including deadzone support
|
|
service/vi: Unstub GetDisplayService
|
|
|
|
Now that we pass in a reference to the system instance, we can utilize
it to eliminate the global accessors in Process-related code.
|
|
kernel: Make the address arbiter instance per-process
|
|
service/service: Remove unncessary calls to c_str()
|
|
gl_rasterizer: Encapsulate sampler queries into methods
|
|
insert_or_assign
The previous code had some minor issues with it, really not a big deal,
but amending it is basically 'free', so I figured, "why not?".
With the standard container maps, when:
map[key] = thing;
is done, this can cause potentially undesirable behavior in certain
scenarios. In particular, if there's no value associated with the key,
then the map constructs a default initialized instance of the value
type.
In this case, since it's a std::shared_ptr (as a type alias) that is
the value type, this will construct a std::shared_pointer, and then
assign over it (with objects that are quite large, or actively heap
allocate this can be extremely undesirable).
We also make the function take the region by value, as we can avoid a
copy (and by extension with std::shared_ptr, a copy causes an atomic
reference count increment), in certain scenarios when ownership isn't a
concern (i.e. when ReserveGlobalRegion is called with an rvalue
reference, then no copy at all occurs). So, it's more-or-less a "free"
gain without many downsides.
|
|
Two of the functions here are overridden functions, so we can append
these specifiers to make it explicit.
|
|
With this, all kernel objects finally have all of their data members
behind an interface, making it nicer to reason about interactions with
other code (as external code no longer has the freedom to totally alter
internals and potentially messing up invariants).
|
|
|
|
operator
Previously this was required, as BitField wasn't trivially copyable.
BitField has since been made trivially copyable, so now this isn't
required anymore.
|
|
Gets rid of another holdover from Citra, and describes the OS on the
Switch instead.
|
|
Now that the final stray ErrorDescription member was relocated, we can
finally remove it and its relevant constructor in the ResultCode union.
|
|
Relocates the error code to where it's most related, similar to how all
the other error codes are. Previously we were including a non-generic
error in the main result code header.
|
|
These can just be passed regularly, now that we use fmt instead of our
old logging system.
While we're at it, make the parameters to MakeFunctionString
std::string_views.
|
|
service/audio/hwopus: Move decoder state to its own class
|
|
kernel/scheduler: Pass in system instance in constructor
|
|
shader_ir: Remove "extras" from the MetaTexture
|
|
gl_rasterizer_cache: Create texture views for array discrepancies
|
|
audio_core/cubeb_sink: Convert _MSC_VER ifdefs to _WIN32
|
|
gl_rasterizer: Minor logger changes
|
|
core/settings: Log more setting values
|
|
This behavior also needs to be visible for MinGW builds as well.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kernel/hle_ipc: Convert std::shared_ptr IPC header instances to std::optional
|
|
video_core/gpu_thread: Silence a -Wreorder warning
|
|
video_core/gpu: Make GPU's destructor virtual
|
|
maxwell_to_vk: Initial implementation
|
|
Instead of holding a reference that will get invalidated by
dma_pushbuffer.pop(), hold it as a copy. This doesn't have any
performance cost since CommandListHeader is 8 bytes long.
|
|
There's no real need to use a shared lifetime here, since we don't
actually expose them to anything else. This is also kind of an
unnecessary use of the heap given the objects themselves are so small;
small enough, in fact that changing over to optionals actually reduces
the overall size of the HLERequestContext struct (818 bytes to 808
bytes).
|
|
Now that we have the address arbiter extracted to its own class, we can
fix an innaccuracy with the kernel. Said inaccuracy being that there
isn't only one address arbiter. Each process instance contains its own
AddressArbiter instance in the actual kernel.
This fixes that and gets rid of another long-standing issue that could
arise when attempting to create more than one process.
|
|
Similar to how WaitForAddress was isolated to its own function, we can
also move the necessary conditional checking into the address arbiter
class itself, allowing us to hide the implementation details of it from
public use.
|
|
Rather than let the service call itself work out which function is the
proper one to call, we can make that a behavior of the arbiter itself,
so we don't need to directly expose those implementation details.
|
|
kernel/shared_memory: Get rid of the use of global accessor functions within Create()
|
|
This makes the class much more flexible and doesn't make performing
copies with classes that contain a bitfield member a pain.
Given BitField instances are only intended to be used within unions, the
fact the full storage value would be copied isn't a big concern (only
sizeof(union_type) would be copied anyways).
While we're at it, provide defaulted move constructors for consistency.
|
|
This function didn't have a definition, so we can remove it to prevent
accidentally attempting to use it.
|
|
Moves the data members to satisfy the order they're declared as in the
constructor initializer list.
Silences a -Wreorder warning.
|
|
Because of the recent separation of GPU functionality into sync/async
variants, we need to mark the destructor virtual to provide proper
destruction behavior, given we use the base class within the System
class.
Prior to this, it was undefined behavior whether or not the destructor
in the derived classes would ever execute.
|
|
web_browser: Add shortcut to Enter key to exit applet
|