Commit Graph

10184 Commits (45da3be40edd71195b7aac633187fc81956e3150)
 

Author SHA1 Message Date
David Marcec a9223c8182 Fixed crash with SetNpadMode
fixed crash due to handheld
6 years ago
Lioncash 7fe27de26e svc: Use the current process' handle table for retrieving the process instance to act upon
The kernel uses the handle table of the current process to retrieve the
process that should be used to retrieve certain information. To someone
not familiar with the kernel, this might raise the question of "Ok,
sounds nice, but doesn't this make it impossible to retrieve information
about the current process?".

No, it doesn't, because HandleTable instances in the kernel have the
notion of a "pseudo-handle", where certain values allow the kernel to
lookup objects outside of a given handle table. Currently, there's only
a pseudo-handle for the current process (0xFFFF8001) and a pseudo-handle
for the current thread (0xFFFF8000), so to retrieve the current process,
one would just pass 0xFFFF8001 into svcGetInfo.

The lookup itself in the handle table would be something like:

template <typename T>
T* Lookup(Handle handle) {
    if (handle == PSEUDO_HANDLE_CURRENT_PROCESS) {
        return CurrentProcess();
    }

    if (handle == PSUEDO_HANDLE_CURRENT_THREAD) {
        return CurrentThread();
    }

    return static_cast<T*>(&objects[handle]);
}

which, as is shown, allows accessing the current process or current
thread, even if those two objects aren't actually within the HandleTable
instance.
6 years ago
Lioncash 6712e7402c svc: Reorganize svcGetInfo, handle more error cases for existing implemented info categories
Our implementation of svcGetInfo was slightly incorrect in that we
weren't doing proper error checking everywhere. Instead, reorganize it
to be similar to how the kernel seems to do it.
6 years ago
Zach Hilman 3476830b26 svc: Avoid performance-degrading unnecessary reschedule 6 years ago
Lioncash 57ac068a23 service/audio/audout_u: Amend constructor initialization list order
Orders the constructor initializer list the same way the members of the
class are declared. Prevents -Wreorder warnings
6 years ago
bunnei 7ce17b2cf6
Merge pull request #1827 from ReinUsesLisp/clip-and-shader
gl_rasterizer: Enable clip distances when set in register and in shader
6 years ago
Lioncash efbcff0af0 file_sys/registered_cache: Eliminate variable shadowing
Also inverts if statements where applicable to allow unindenting code a
little bit.
6 years ago
bunnei 80aa124b1d
Merge pull request #1825 from ReinUsesLisp/shader-pipeline-cache
gl_shader_manager: Update pipeline when programs have changed
6 years ago
bunnei a6805e58ce
Merge pull request #1795 from ReinUsesLisp/vc-cleanup
video_core: Minor style changes
6 years ago
bunnei 0e9be7be37
Merge pull request #1823 from bunnei/fix-surface-copy
gl_rasterizer_cache: Fix several surface copy issues.
6 years ago
Lioncash db4523f1ec filesystem: De-globalize registered_cache_union
We can just return a new instance of this when it's requested. This only
ever holds pointers to the existing registed caches, so it's not a large
object. Plus, this also gets rid of the need to keep around a separate
member function just to properly clear out the union.

Gets rid of one of five globals in the filesystem code.
6 years ago
Lioncash 8c108eaca7 yuzu/game_list_worker: Deduplicate game list entry creation
Avoids duplicating the same code twice verbatim.
6 years ago
Lioncash f1ecfcb8bc yuzu/game_list_worker: Tidy up string handling in FillControlMap()
We don't need to call out to our own file handling functions when we're
going to construct a QFileInfo instance right after it. We also don't
need to convert to a std::string again just to compare the file
extension.
6 years ago
Lioncash a8aca4306d crypto/key_manager: Remove unused variable in GetTicketblob() 6 years ago
bunnei c5e781e72a
Merge pull request #1832 from Simek/remove-game-list-border
UI: Remove border from Game List
6 years ago
bunnei 97e73591e3
Merge pull request #1830 from Subv/vi_ub
Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.
6 years ago
Lioncash e88cdcc912 Fix debug build
A non-existent parameter was left in some formatting calls (the logging
macro for which only does anything meaningful on debug builds)
6 years ago
Lioncash 0ccaaafca3 file_sys: Override missing mutating functions to be stubbed out for ReadOnlyVfsDirectory by default
Ensures that read only indeed means read only.
6 years ago
Lioncash a7d9fe993a service/fsp_srv: Implement CleanDirectoryRecursively
This is the same behavior-wise as DeleteDirectoryRecursively, with the
only difference being that it doesn't delete the top level directory in
the hierarchy, so given:

root_dir/
  - some_dir/
    - File.txt
  - OtherFile.txt

The end result is just:

root_dir/
6 years ago
Bartosz Kaszubowski 5f07ca3dce remove border from GameList 6 years ago
Subv 583bd20f02 Services/VI: Dereferencing an uninitialized std::optional is undefined behavior.
Assert that it is not empty before using it in the DequeueBuffer wait callback.
6 years ago
bunnei b7104263ba
Merge pull request #1829 from lioncash/lang
service/set: Implement MakeLanguageCode
6 years ago
Lioncash 308bbba8b9 service/set: Convert GetLanguageCode over to using PushEnum()
This code was around prior to the introduction of PushEnum, so convert
it over so we don't need to cast here.
6 years ago
Lioncash 7c04fe22b4 service/set: Implement MakeLanguageCode
This function simply converts a given index into a language code.
6 years ago
Lioncash 4b950728fd configure_input: Amend clang-format discrepancies 6 years ago
bunnei 0f43564d09 gl_rasterizer_cache: Update AccurateCopySurface to flush complete source surface.
- Fixes issues with Breath of the Wild with use_accurate_gpu_emulation setting.
6 years ago
ReinUsesLisp 2908d30274 gl_rasterizer: Enable clip distances when set in register and in shader 6 years ago
ReinUsesLisp 1a2bb596db gl_rasterizer: Implement a framebuffer cache 6 years ago
ReinUsesLisp e8620eaa9a gl_shader_manager: Update pipeline when programs have changed 6 years ago
Zach Hilman 170d707850 hle_ipc: Refactor SleepClientThread to avoid ReadableEvent 6 years ago
Zach Hilman a342bcc9b1 kernel/event: Reference ReadableEvent from WritableEvent 6 years ago
Zach Hilman ff610103b5 core: Port all current usages of Event to Readable/WritableEvent 6 years ago
Zach Hilman a56fc84e7a hle_ipc: Use event pair for SleepClientThread 6 years ago
Zach Hilman c61d2a2841 kernel: Add named event table
Used to store ReadableEvents of all events on the system.
6 years ago
Zach Hilman c713383816 kernel: Divide Event into ReadableEvent and WritableEvent
More hardware accurate. On the actual system, there is a differentiation between the signaler and signalee, they form a client/server relationship much like ServerPort and ClientPort.
6 years ago
Zach Hilman d92989e787 kernel/object: Add descriptions to ResetTypes 6 years ago
bunnei 7befe0134d
Merge pull request #1768 from greggameplayer/patch-2
Uncheck automatically joycons docked when docked mode is enable
6 years ago
bunnei 1e49a85106
Merge pull request #1801 from ogniK5377/log-before-execute
Changed logging to be "Log before execution", Added more error logging, all services/svc should now log on some level
6 years ago
bunnei 3d3cc35ee7 gl_rasterizer_cache: Remove BlitSurface and replace with more accurate copy.
- BlitSurface with different texture targets is inherently broken.
- When target is the same, we can just use FastCopySurface.
- Fixes rendering issues with Breath of the Wild.
6 years ago
ReinUsesLisp eb700afcf0 gl_shader_decompiler: Remove texture temporal in TLD4 6 years ago
ReinUsesLisp 8d58e5da71 gl_shader_decompiler: Flip negated if else statement 6 years ago
ReinUsesLisp f4abebd731 gl_shader_decompiler: Use GLSL scope on instructions unrelated to textures 6 years ago
ReinUsesLisp 78fc8f6b66 gl_shader_decompiler: Move texture code generation into lambdas 6 years ago
ReinUsesLisp ab13b628d0 gl_shader_decompiler: Clean up texture instructions 6 years ago
ReinUsesLisp 6a642022dd gl_shader_decompiler: Scope GLSL variables with a scoped object 6 years ago
ReinUsesLisp 037449668e gl_rasterizer: Signal UNIMPLEMENTED when rt_separate_frag_data is not zero 6 years ago
ReinUsesLisp 653d7a3f0d gl_rasterizer_cache: Use brackets for two-line single-expresion blocks 6 years ago
ReinUsesLisp 432a9872ed gl_rasterizer: Remove unused struct declarations 6 years ago
ReinUsesLisp 22c7c710b4 gl_rasterizer: Remove extension booleans 6 years ago
bunnei 5a9a84994a
Merge pull request #1808 from Tinob/master
Fix clip distance and viewport
6 years ago