Commit graph

6950 commits

Author SHA1 Message Date
Triang3l
8ccd6f9560 [Build] xenia-build Android host OS detection 2020-11-21 14:54:57 +03:00
Triang3l
1f69516bb5 [Build] Better Android detection in tools/build/premake 2020-11-21 14:43:10 +03:00
Triang3l
6584a2421c [Vulkan] Faceness-related rasterization state 2020-11-20 23:47:19 +03:00
Triang3l
8b4a52aeed Merge branch 'master' into vulkan 2020-11-20 23:16:38 +03:00
Triang3l
00a7d1a067 [D3D12] Cleanup rasterizer state 2020-11-20 23:12:12 +03:00
Triang3l
0422e1813e Merge branch 'vulkan' of github.com:Triang3l/xenia into vulkan 2020-11-20 21:50:30 +03:00
Triang3l
fbb1a22708 [Build] Clone premake to internal storage on Android 2020-11-20 21:34:06 +03:00
Triang3l
4fab2cc4d3 Merge branch 'master' into vulkan 2020-11-19 23:56:08 +03:00
Triang3l
44a3f200c3 [GPU] Rename PrimitiveTwoFaced to PrimitivePolygonal, add rects to it and ignore fill modes for non-polygons 2020-11-19 23:55:49 +03:00
Triang3l
e99e8c7a7d Merge branch 'master' into vulkan 2020-11-19 21:31:44 +03:00
Triang3l
3ff5965133 [Build] Disable potentially dangerous floating point optimizations 2020-11-19 21:28:02 +03:00
Triang3l
1e818dca4b [Vulkan] Include Vulkan Android header and fix some warnings 2020-11-19 11:38:20 +03:00
Triang3l
a94301d967 [Vulkan] Viewport from draw_util and vtx_fmt 2020-11-18 12:48:12 +03:00
Triang3l
c0550bafe9 Merge branch 'master' into vulkan 2020-11-18 12:28:38 +03:00
Triang3l
99bb82fd1c [GPU] Separate GetHostViewportInfo X and Y bounds 2020-11-18 12:27:36 +03:00
gibbed
49dc0e9c39 [XAM] Rollup of user fixes.
- [XAM] Fix XamUserGetXUID type mask handling.
- [XAM] Fix XamGetUserName return values.
- [XAM] Fix XamGetUserName copy size.
- [XAM] Implement XamGetUserGamerTag.
- [XAM] Fix XamUserCheckPrivilege handling of all users.
- [XAM] Stub XamUserGetMembershipTier.
2020-11-17 19:58:30 -06:00
Triang3l
44e4849e1a Merge branch 'master' into vulkan 2020-11-16 23:17:50 +03:00
Triang3l
b7ba3051f2 [Kernel] Fix null in thread affinity init + ignore affinity when less than 6 cores 2020-11-16 23:15:51 +03:00
Satori
52230fd4e8 [Base] Fix FileLogSink not writing to log file 2020-11-16 14:04:17 -06:00
Triang3l
10d7bcde93 [GPU] Viewport in draw_util with host API flexibility 2020-11-16 23:03:42 +03:00
Sandy
eda027a220 readme: fix label in linux help 2020-11-16 20:38:48 +03:00
Satori
b74eac36c7 [Base] Log to stdout by default 2020-11-16 01:52:27 -06:00
Satori
446837edb1 [Base/Win] Add cvars to enable a console window to be shown with xenia 2020-11-16 01:52:27 -06:00
Satori
42b10209fe [Base] Add support for multiple log sinks in Logger 2020-11-16 01:52:27 -06:00
Sandy
36466231d0
threading test: zero initialize counter
The high performance test atomic counters need to be set to zero to have reliable results.
2020-11-16 00:13:14 -06:00
Cancerous
94b9616b3a [XAM] Raise the size of the dummy HDD to 20GB.
- [XAM] Raise the size of the dummy HDD to 20GB.
- [XAM] Rename unknown field to device_type in X_CONTENT_DEVICE_DATA.
2020-11-15 15:04:40 -06:00
Cancerous
ce1a31faad [Kernel] Set flag 5 in XboxHardwareInfo.
[Kernel] Set flag 5 (indicates storage is initialized) in XboxHardwareInfo.
2020-11-15 15:04:40 -06:00
gibbed
362251df0b [Base] Fix dangling pointer in LaunchWebBrowser.
[Base] Fix dangling pointer in LaunchWebBrowser. Fixes #1614.
2020-11-15 14:36:13 -06:00
gibbed
a4e5c4cecf [App] Fix dangling ptr in Discord playing update.
[App] Fix dangling pointer in Discord playing update. Fixes #1621.
2020-11-15 13:59:25 -06:00
gibbed
e848a20c23 [Kernel] Allow wildcard filter to end in *. 2020-11-15 13:29:34 -06:00
gibbed
32e8b47a33 [Kernel] Enforce *. in wildcard matching. Supersedes #1675. 2020-11-15 13:24:06 -06:00
Gliniak
d1f7ee3593 [Audio/XMA] Invalidate output buffer when there is no valid input buffer 2020-11-15 11:31:11 -06:00
Triang3l
91d5ba444a [Base/Kernel] Add and use truncating null-terminating string copying 2020-11-15 11:27:59 -06:00
Joel Linn
68cf47e245 [threading] Fix Fence for multiple waiting threads 2020-11-15 11:12:05 -06:00
Sandy Carter
d7094fae52 [threading linux] Implement native_handle
Move wait implementation to not use native_handle.
Implement native_handle for each primitive using posix natives.
2020-11-15 11:12:05 -06:00
Sandy Carter
e945a13957 [threading linux] Implement suspend count
Add suspend count to thread implementation.
Increment suspend count on suspend and decrement on resume.
Wait on suspend count to be decremented to 0.
Return suspend count on suspend and on resume before incr/decr.
Fix naming of resume suspend count to make clear that suspend count is
before incr/decr.
Add test.
2020-11-15 11:12:05 -06:00
Sandy Carter
382dd8860f [threading] Change thread names to suit pthread
Shorten names to 16.
Rename Win32 to Windowing.
Shorten GraphicsSystem thread names due to 16 length limit of pthread.
Without this change, both show up as GraphicsSystem.
Remove redundant "Worker" and "Thread" from names.
Remove redundant thread handle from thread name.
2020-11-15 11:12:05 -06:00
Sandy Carter
a503b6222f [threads linux] Free and signal suspended threads
Give other threads access to initially suspended threads by signalling
conditional variable before waiting for state to be changed again.
2020-11-15 11:12:05 -06:00
Sandy Carter
e11fa0372d [threading linux] Implement Signal and Wait
Add Signal abstract function to handles.
Test SignalAndWait.
2020-11-15 11:12:05 -06:00
Sandy Carter
cb905fb195 [threading] Add complex wait on multiple test 2020-11-15 11:12:05 -06:00
Sandy Carter
e9e269622b [threading linux] Implement TLS
Implement TLSHandle with pthread_key_t.

Test Alloc, Free, Get and Set.
2020-11-15 11:12:05 -06:00
Sandy Carter
634f87f63b [threading linux] Implement Callback Queuing
Add thread local bool for alertable state.
Use real-time event interrupt to run callback.
Fix sleep duration from miliseconds (microseconds / 1000) to seconds in sleep
command.
Add note for future implementation.

Ignore real-time event 37 in .gdbinit which is used to signal callback.

Test AlertableSleep
Test Thread QueueUserCallback.
TODO: Test alerted wait result when using IO functions.
2020-11-15 11:12:05 -06:00
Sandy Carter
4397f25325 [threading linux] Implement suspendable pthreads
Use real-time event interrupt to communicate suspend in timely manner.
Use conditional_variable to implement suspend wait and resume trigger.

Ignore real-time event 36 in .gdbinit which is used to signal suspend.

Test suspending threads.
2020-11-15 11:12:05 -06:00
Sandy Carter
b2912e7891 [threading linux] Wait for thread start 2020-11-15 11:12:05 -06:00
Sandy Carter
b91203a0b5 [threading linux] Implement basic Thread function
Add Basic Tests on Threads
2020-11-15 11:12:05 -06:00
Sandy Carter
c2de074d5c [threading linux] Implement Timer
Test Manual Reset and Synchronization timers single threaded.
Test Cancelling timers.
Test WaitMultiple.
Ignore real-time event 35 in .gdbinit which is used to signal timer.

Callbacks don't seem to be called so testing them is difficult.
2020-11-15 11:12:05 -06:00
Sandy Carter
331bb0ea9a [threading linux] Implement Mutant
Keep track of recursive locks with owner and count of locks.
Only allow recursive locks from same thread and increment count.
Only allow first locks from when count is zero.

Test acquiring and releasing mutant on same and on different threads.
Test Release return values.
Test WaitAll and WaitAny.
2020-11-15 11:12:05 -06:00
Sandy Carter
5d0efedaf4 [threading linux] Implement Semaphore
Test acquiring and releasing semaphores on same and on different threads.
Test previous_count values.
Test WaitAll and WaitAny.

Add tests for invalid semaphore creation parameters but disactivated as
they do not pass on any platform. These should be enabled and the
implementations fixed to match documentation.
2020-11-15 11:12:05 -06:00
Sandy Carter
75d54e2fa2 [threading linux] Make PosixCondition base class
Add PosixConditionBase as base class for Waitables to use common
primitives mutex and conditional variable
Add abstract signaled() and post_execution() to use single WaitMultiple
implementation.
2020-11-15 11:12:05 -06:00
Sandy Carter
6e13a38cad [threading linux] Implement WaitMultiple
Make conditional_variable and mutex static and create generalisation of
Wait for vector of handles.
Use std::any for waitany and std::all for waitall
2020-11-15 11:12:05 -06:00