0cbcd6ec9a
kernel: Eliminate kernel global state
...
As means to pave the way for getting rid of global state within core,
This eliminates kernel global state by removing all globals. Instead
this introduces a KernelCore class which acts as a kernel instance. This
instance lives in the System class, which keeps its lifetime contained
to the lifetime of the System class.
This also forces the kernel types to actually interact with the main
kernel instance itself instead of having transient kernel state placed
all over several translation units, keeping everything together. It also
has a nice consequence of making dependencies much more explicit.
This also makes our initialization a tad bit more correct. Previously we
were creating a kernel process before the actual kernel was initialized,
which doesn't really make much sense.
The KernelCore class itself follows the PImpl idiom, which allows
keeping all the implementation details sealed away from everything else,
which forces the use of the exposed API and allows us to avoid any
unnecessary inclusions within the main kernel header.
2018-08-28 22:31:51 -04:00
45fb74d262
gpu: Make memory_manager private
...
Makes the class interface consistent and provides accessors for
obtaining a reference to the memory manager instance.
Given we also return references, this makes our more flimsy uses of
const apparent, given const doesn't propagate through pointers in the
way one would typically expect. This makes our mutable state more
apparent in some places.
2018-08-28 11:11:50 -04:00
c65713832c
debug_utils: Remove unused includes
...
Quite a bit of these aren't necessary directly within the debug_utils
header and can be removed or included where actually necessary.
2018-08-24 20:49:14 -04:00
3a67876252
textures: Refactor out for Texture/Depth FormatFromPixelFormat.
2018-08-09 20:36:03 -04:00
168958f8e2
Merge pull request #942 from lioncash/default
...
qt: Minor cleanup-related changes
2018-08-06 21:32:25 -04:00
7846295a8f
qt: Add missing override specifiers where applicable
2018-08-06 13:29:14 -04:00
00a68c5eea
qt: Default destructors where applicable
...
Makes code consistent with our style of defaulting special member
functions where applicable.
2018-08-06 13:27:08 -04:00
2feb1a8ba6
kernel/event: Make data members private
...
Instead we can simply provide accessors to the required data instead of
giving external read/write access to the variables directly.
2018-08-06 12:53:02 -04:00
4c3c608d59
Merge pull request #894 from lioncash/object
...
kernel: Move object class to its own source files
2018-08-03 00:28:43 -04:00
db340f6402
yuzu: Use Qt 5 signal/slots where applicable
...
Makes the signal/slot connections type-safe instead of string-based.
2018-08-02 22:18:33 -04:00
bf45092c61
kernel: Move object class to its own source files
...
General moving to keep kernel object types separate from the direct
kernel code. Also essentially a preliminary cleanup before eliminating
global kernel state in the kernel code.
2018-08-01 23:34:42 -04:00
0cd843151f
kernel/timer: Make data members private where applicable
...
Instead, we can just expose functions that return the queryable state
instead of letting anything modify it.
2018-07-26 09:51:44 -04:00
2474340684
wait_tree: Add missing switch case for WaitTreeThread::GetText()
...
We were missing the enum entry for WaitIPC
2018-07-25 15:50:41 -04:00
9d2cacdc9e
wait_tree: Silence warning about all code paths not returning a value
...
If code execution hits this spot, something has gone very wrong, so mark
the path as unreachable. This silences a warning on MSVC.
2018-07-24 04:06:55 -04:00
863579736c
gpu: Rename Get3DEngine() to Maxwell3D()
...
This makes it match its const qualified equivalent.
2018-07-20 18:34:49 -04:00
dbfe82773d
thread: Convert ThreadStatus into an enum class
...
Makes the thread status strongly typed, so implicit conversions can't
happen. It also makes it easier to catch mistakes at compile time.
2018-07-19 22:08:56 -04:00
b30c5370b1
yuzu - Fix duplicate logs
2018-07-12 01:11:43 -06:00
6269a01b4e
Add configurable logging backends
2018-07-02 21:45:47 -04:00
4f81bc4e1b
Kernel/Arbiters: Mostly implement SignalToAddress
2018-06-21 04:10:11 -06:00
9d71ce88ce
Kernel/Arbiters: Implement WaitForAddress
2018-06-21 01:40:29 -06:00
7786f41cc0
Qt: Removed the Registers widget.
...
It was crashing and nobody actually uses this.
2018-06-12 20:33:32 -05:00
c50393e066
Qt/WaitTree: Display the callstack for each thread in the wait tree widget.
2018-05-19 16:52:49 -05:00
46ec9a9bc9
thread: Rename mask to affinity_masks.
2018-05-10 19:34:53 -04:00
e6671190a5
wait_tree: Add ideal core and affinity mask.
2018-05-10 19:34:52 -04:00
5c0421ebd8
wait_tree: Show all threads on all schedulers.
2018-05-10 19:34:48 -04:00
a434fdcb10
core: Implement multicore support.
2018-05-10 19:34:46 -04:00
239ac8abe2
memory_manager: Make GpuToCpuAddress return an optional.
2018-04-24 17:49:19 -04:00
9e11a76e92
memory_manager: Use GPUVAdddr, not PAddr, for GPU addresses.
2018-04-24 17:40:43 -04:00
0214351f4f
Merge pull request #370 from Subv/sync_primitives
...
Kernel: Reworked the new kernel synchronization primitives.
2018-04-23 16:33:00 -04:00
010227e149
GPU: Implement the RGB10_A2 RenderTarget format, it will use the same format as the A2BGR10 texture format.
2018-04-23 10:50:28 -05:00
013778aa21
Qt: Update the WaitTree widget to show info about the current mutex of each thread.
2018-04-20 21:04:34 -05:00
d8f745382b
graphics_surface: Remove superfluous cast.
2018-03-26 21:17:05 -04:00
666d53299c
graphics_surface: Fix merge conflicts.
2018-03-26 21:17:03 -04:00
0ce52b1da2
GPU: Make the debug_context variable a member of the frontend instead of a global.
2018-03-24 23:35:06 -05:00
39e60cfeb1
Frontend: Updated the surface view debug widget to work with Maxwell surfaces.
2018-03-24 11:31:53 -05:00
77fd0d47e7
Frontend: Ported the GPU breakpoints and surface viewer widgets from citra.
2018-03-24 11:31:49 -05:00
e353b9fb3d
thread: Add THREADSTATUS_WAIT_HLE_EVENT, remove THREADSTATUS_WAIT_ARB.
2018-03-18 20:56:32 -04:00
ac81c02ed9
kernel: Use Scheduler class for threading.
2018-02-18 15:17:16 -05:00
c85e3a2234
debugger: Fix wait_tree crash.
2018-02-14 00:02:14 -05:00
096be16636
Format: Run the new clang format on everything
2018-01-20 16:45:11 -07:00
5e46a9bb2b
qt: Migrate to Qt 5 signal/slot connection syntax where applicable
2018-01-18 20:09:40 -05:00
e35644c005
clang-format
2018-01-16 18:05:21 +00:00
389979018c
Remove gpu debugger and get yuzu qt to compile
2018-01-12 19:11:04 -07:00
ebf9a784a9
Massive removal of unused modules
2018-01-12 19:11:03 -07:00