Commit Graph

4451 Commits (2509c440785d94a3a8ba7674da691842ae14b7af)
 

Author SHA1 Message Date
Subv 8634b8cb83 Threading: Reworked the way our scheduler works.
Threads will now be awakened when the objects they're waiting on are signaled, instead of repeating the WaitSynchronization call every now and then.

The scheduler is now called once after every SVC call, and once after a thread is awakened from sleep by its timeout callback.

This new implementation is based off reverse-engineering of the real kernel.

See https://gist.github.com/Subv/02f29bd9f1e5deb7aceea1e8f019c8f4 for a more detailed description of how the real kernel handles rescheduling.
8 years ago
Jannik Vogel 2d8097eecc shader_jit: Fix non-SSE4.1 path where FLR would not truncate 8 years ago
Yuri Kunde Schlesner 647157f99f Merge pull request #2257 from citra-emu/fix-clang-format
Travis: Use a stable version of clang-format
8 years ago
Yuri Kunde Schlesner 4d5e42240c clang-format: Fix coding style 8 years ago
Yuri Kunde Schlesner 7acc5c8f30 Travis: Use a stable version of clang-format 8 years ago
Yuri Kunde Schlesner 018191c1f0 Merge pull request #2255 from JayFoxRox/lsl4
shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shifted
8 years ago
Subv 2ce61344d6 Declare empty ServerSession and ClientSession constructors as default. 8 years ago
Jannik Vogel e2cb7d7833 shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shifted 8 years ago
Mat M 0423a38ab5 Merge pull request #2251 from JayFoxRox/remove-version
Remove unused version.h in citra_qt
8 years ago
Subv ed210c32b3 Threads do not wait for the server endpoint to call AcceptSession before returning from a ConnectToPort or GetServiceHandle call. 8 years ago
Jannik Vogel 8efeb6ee2b Remove unused version.h 8 years ago
Subv 2eceee3a4c Fixed the rebase mistakes. 8 years ago
Subv 009b15b3aa A bit of a redesign.
Sessions and Ports are now detached from each other.
HLE services are handled by means of a SessionRequestHandler class, Interface now inherits from this class.
The File and Directory classes are no longer kernel objects, but SessionRequestHandlers instead, bound to a ServerSession when requested.
File::OpenLinkFile now creates a new session pair and binds the File instance to it.
8 years ago
Subv c5e7e0fa26 IPC/HLE: Associate the ClientSessions with their parent port's HLE interface if it exists.
Pass the triggering ServerSession to the HLE command handler to differentiate which session caused the request.
8 years ago
Subv c19afd2118 Kernel/HLE: Service::Interface no longer inherits from any Kernel object, and is now its own standalone class.
Interface is now used by aggregation in ClientPort, to forward service commands to their HLE implementation if needed.
8 years ago
Subv 0a33d915f8 fixup! Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication. 8 years ago
Subv 073653e858 Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
All handles obtained via srv::GetServiceHandle or svcConnectToPort are references to ClientSessions.
Service modules will wait on the counterpart of those ClientSessions (Called ServerSessions) using svcReplyAndReceive or svcWaitSynchronization[1|N], and will be awoken when a SyncRequest is performed.

HLE Interfaces are now ClientPorts which override the HandleSyncRequest virtual member function to perform command handling immediately.
8 years ago
Yuri Kunde Schlesner 68c00ee771 Merge pull request #2228 from freiro/winver_fix
Move WINVER definition to cmake and a bit of cleanup
8 years ago
Sebastian Valle e27d824768 Merge pull request #2243 from MerryMage/r15
dynarmic: Fix ABI violation
8 years ago
MerryMage c46b3dec63 dynarmic: Fix ABI violation
Caused by not saving/restoring the x64 r15 register on entry/exit from
JITted code.

Closes #2224.
8 years ago
wwylele 6034399bf9 Merge pull request #2241 from Subv/clang_format
ClangFormat: Fixed the clang-format errors
8 years ago
freiro 35e979f041 Appending PLATFORM_LIBRARIES instead of redefining them 8 years ago
freiro 0c22e52f52 WINVER definition moved to CMake and cleanup 8 years ago
Subv e3e4f27447 ClangFormat: Fixed the clang-format errors 8 years ago
Sebastian Valle e5a7f2ef29 Merge pull request #1820 from mailwl/service-ver
Set client SDK version to Service APIs
8 years ago
mailwl 5b136aa211 Set client SDK version to Service APIs 8 years ago
bunnei cf5b8483fc Merge pull request #2233 from Subv/warnings
Build: Fixed a few warnings.
8 years ago
James Rowe f32309400c Update dynarmic to the latest version (#2234) 8 years ago
Subv aea9a91100 Build: Fixed a few warnings. 8 years ago
wwylele 589b642790 FileSys: Implement OtherSaveData 8 years ago
wwylele b25f19ac26 FS: add missing MediaType 8 years ago
wwylele 5af117e00c FileSys: abstract SD save data archive source 8 years ago
Yuri Kunde Schlesner 3174bfd50c Merge pull request #2196 from Subv/system_mode
Kernel/Loader: Grab the system mode from the NCCH ExHeader.
8 years ago
Yuri Kunde Schlesner e279a6955e Merge pull request #2222 from linkmauve/die-frameskip-die
Remove the broken frame_skip option
8 years ago
Sebastian Valle 4ba5acdaff Merge pull request #2132 from wwylele/fix-fs-err
Correct FS error codes & add path boundary checks
8 years ago
Subv d171409f29 Kernel/Loader: Grab the system mode from the NCCH ExHeader.
3dsx and elf files default to system mode 2 (96MB allocated to the application).

This allows Home Menu to boot without modifications.
Closes #1849
8 years ago
Yuri Kunde Schlesner 77b7cec8af Merge pull request #2218 from Subv/stencil_lines
Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer.
8 years ago
Emmanuel Gil Peyrot 0820c99462 GPU: Remove the broken frame_skip option.
Fixes #1960.
8 years ago
Subv 4623415026 RasterizerGL: Use GL_TRUE and 0xFF in the stencil and depth masks instead of simply true and -1 8 years ago
Subv 743b0e71d9 Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer. 8 years ago
Sebastian Valle d3b7f57b2b Merge pull request #2168 from mailwl/mic
MIC_U: Stub service funcions
8 years ago
Yuri Kunde Schlesner a0b30189e5 Merge pull request #2185 from freiro/local_folder
Change "user" folder default location to AppData/Roaming/ on Windows systems
8 years ago
freiro 593ec7fa74 Move to AppData/Roaming/Citra/ 8 years ago
Yuri Kunde Schlesner b230913c2b Merge pull request #2215 from MerryMage/ticks_executed
dynarmic: Add ticks based on ticks executed, not ticks requested
8 years ago
MerryMage 27be446049 dynarmic: Add ticks based on ticks executed, not ticks requested 8 years ago
James e5f8df8088 Add man documentation
Includes both SDL and QT frontends
8 years ago
freiro 972b289c78 Removed /user/ from path 8 years ago
mailwl ec15e485c9 Output parameters to log 8 years ago
mailwl d4cadf11fc MIC_U: Stub service funcions 8 years ago
Yuri Kunde Schlesner ed2ff8df85 Merge pull request #2210 from jroweboy/pagetables
Expose page table to dynarmic for optimized reads and writes to the JIT
8 years ago