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.
2016-12-03 22:38:14 -05:00
2d8097eecc
shader_jit: Fix non-SSE4.1 path where FLR would not truncate
2016-12-04 04:26:33 +01:00
647157f99f
Merge pull request #2257 from citra-emu/fix-clang-format
...
Travis: Use a stable version of clang-format
2016-12-03 16:13:40 -08:00
4d5e42240c
clang-format: Fix coding style
2016-12-03 01:32:46 -08:00
7acc5c8f30
Travis: Use a stable version of clang-format
2016-12-03 01:32:46 -08:00
018191c1f0
Merge pull request #2255 from JayFoxRox/lsl4
...
shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shifted
2016-12-02 20:24:24 -08:00
2ce61344d6
Declare empty ServerSession and ClientSession constructors as default.
2016-12-02 22:58:02 -05:00
e2cb7d7833
shader_jit: Load LOOPCOUNT_REG and LOOPINC 4 bit left-shifted
2016-12-02 04:33:15 +01:00
0423a38ab5
Merge pull request #2251 from JayFoxRox/remove-version
...
Remove unused version.h in citra_qt
2016-12-01 14:24:40 -05:00
ed210c32b3
Threads do not wait for the server endpoint to call AcceptSession before returning from a ConnectToPort or GetServiceHandle call.
2016-12-01 10:47:06 -05:00
8efeb6ee2b
Remove unused version.h
2016-12-01 16:38:46 +01:00
2eceee3a4c
Fixed the rebase mistakes.
2016-11-30 23:28:31 -05:00
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.
2016-11-30 23:12:35 -05:00
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.
2016-11-30 23:04:00 -05:00
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.
2016-11-30 23:03:59 -05:00
0a33d915f8
fixup! Kernel/IPC: Use Ports and Sessions as the fundamental building block of Inter Process Communication.
2016-11-30 23:02:06 -05:00
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.
2016-11-30 23:02:05 -05:00
68c00ee771
Merge pull request #2228 from freiro/winver_fix
...
Move WINVER definition to cmake and a bit of cleanup
2016-11-30 15:47:08 -08:00
e27d824768
Merge pull request #2243 from MerryMage/r15
...
dynarmic: Fix ABI violation
2016-11-30 17:41:20 -05:00
c46b3dec63
dynarmic: Fix ABI violation
...
Caused by not saving/restoring the x64 r15 register on entry/exit from
JITted code.
Closes #2224 .
2016-11-30 19:12:46 +00:00
6034399bf9
Merge pull request #2241 from Subv/clang_format
...
ClangFormat: Fixed the clang-format errors
2016-11-30 18:52:53 +02:00
35e979f041
Appending PLATFORM_LIBRARIES instead of redefining them
2016-11-30 16:28:21 +01:00
0c22e52f52
WINVER definition moved to CMake and cleanup
2016-11-30 15:47:09 +01:00
e3e4f27447
ClangFormat: Fixed the clang-format errors
2016-11-30 09:37:37 -05:00
e5a7f2ef29
Merge pull request #1820 from mailwl/service-ver
...
Set client SDK version to Service APIs
2016-11-30 08:04:23 -05:00
5b136aa211
Set client SDK version to Service APIs
2016-11-30 09:51:14 +03:00
cf5b8483fc
Merge pull request #2233 from Subv/warnings
...
Build: Fixed a few warnings.
2016-11-29 23:23:22 -05:00
f32309400c
Update dynarmic to the latest version ( #2234 )
2016-11-29 23:22:19 -05:00
aea9a91100
Build: Fixed a few warnings.
2016-11-29 16:51:53 -05:00
589b642790
FileSys: Implement OtherSaveData
2016-11-29 23:50:00 +02:00
b25f19ac26
FS: add missing MediaType
2016-11-29 23:50:00 +02:00
5af117e00c
FileSys: abstract SD save data archive source
2016-11-29 23:50:00 +02:00
3174bfd50c
Merge pull request #2196 from Subv/system_mode
...
Kernel/Loader: Grab the system mode from the NCCH ExHeader.
2016-11-27 17:04:11 -08:00
e279a6955e
Merge pull request #2222 from linkmauve/die-frameskip-die
...
Remove the broken frame_skip option
2016-11-27 16:01:45 -08:00
4ba5acdaff
Merge pull request #2132 from wwylele/fix-fs-err
...
Correct FS error codes & add path boundary checks
2016-11-27 18:56:56 -05:00
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
2016-11-27 18:03:48 -05:00
77b7cec8af
Merge pull request #2218 from Subv/stencil_lines
...
Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer.
2016-11-27 13:57:31 -08:00
0820c99462
GPU: Remove the broken frame_skip option.
...
Fixes #1960 .
2016-11-27 21:19:56 +00:00
4623415026
RasterizerGL: Use GL_TRUE and 0xFF in the stencil and depth masks instead of simply true and -1
2016-11-27 13:09:11 -05:00
743b0e71d9
Rasterizer/Memfill: Set the correct stencil write mask when clearing the stencil buffer.
2016-11-27 12:16:10 -05:00
d3b7f57b2b
Merge pull request #2168 from mailwl/mic
...
MIC_U: Stub service funcions
2016-11-27 00:19:33 -05:00
a0b30189e5
Merge pull request #2185 from freiro/local_folder
...
Change "user" folder default location to AppData/Roaming/ on Windows systems
2016-11-26 14:07:43 -08:00
593ec7fa74
Move to AppData/Roaming/Citra/
2016-11-26 22:57:36 +01:00
b230913c2b
Merge pull request #2215 from MerryMage/ticks_executed
...
dynarmic: Add ticks based on ticks executed, not ticks requested
2016-11-26 13:51:11 -08:00
27be446049
dynarmic: Add ticks based on ticks executed, not ticks requested
2016-11-26 20:32:33 +00:00
e5f8df8088
Add man documentation
...
Includes both SDL and QT frontends
2016-11-26 13:48:00 +11:00
972b289c78
Removed /user/ from path
2016-11-26 01:00:52 +01:00
ec15e485c9
Output parameters to log
2016-11-25 09:37:20 +03:00
d4cadf11fc
MIC_U: Stub service funcions
2016-11-25 09:37:19 +03:00
ed2ff8df85
Merge pull request #2210 from jroweboy/pagetables
...
Expose page table to dynarmic for optimized reads and writes to the JIT
2016-11-24 19:58:12 -08:00