Commit Graph

4765 Commits

Author SHA1 Message Date
Sandy Carter f9d708265f [threading linux] Fix events with closed handles
Linux: Remove copy and destroy call in make_unique invokation which closes
handles on all events.
Testing: Add Wait test for Events set and unset.
2020-11-15 11:12:05 -06:00
Sandy Carter 4280a6451d [threading] Simplify and test Fence
Remove atomic boolean in fence. Variable signaled_ is already protected
by mutex.
Remove wait loop with single predicate wait protected with mutex.

Add Fence Signal and Wait tests
Test signaling without waiting.
Test signaling before waiting.
Test signaling twice before waiting.
Test synchronizing threads with fence.

Few REQUIRES were used to test as there are no return codes.
A failing test may hang indefinitely or cause a segfault which would still
register as a fail.
2020-11-15 11:12:05 -06:00
Sandy Carter b5ea686475 [threading] Implement Posix HighResolutionTimer
Implement HighResolutionTimer for Posix by using native timers.
Callbacks are triggered with realtime interrupts if they are supported.
Create an enum to track user-defined interrupts as well as an initializer and
handler to register these interrupts per thread.
Add test cases for timers for both single and multiple.
Fix Sleep function to continue sleeping if interrupted by system.
Add local .gdbinit to ignore signal 34 which is used by high res timer
2020-11-15 11:12:05 -06:00
Sandy Carter d8d8a7dbb8 [threading linux] Fix nanosleep using microseconds
Add Sleep Test for 50ms.
Fix Sleep under linux that was using microseconds as nanoseconds.
Factor timespec creation to template function using div/mod and nanoseconds
from duration cast.
2020-11-15 11:12:05 -06:00
Sandy Carter 6c79c93f2b [threading] Add basic threading tests
Test logical_processor_count() 3 times to test static return value stays
correct.
Run EnableAffinityConfiguration(). No asserts possible.
Test setting thread id, test using uint32_t max to reset.
Test setting thread name. No asserts possible.
Test running MaybeYield(). No obvious more complex test case.
Test running SyncMemory(). No obvious more complex test case.
2020-11-15 11:12:05 -06:00
Triang3l c2e8d23139 [Vulkan] Scissor from draw_util 2020-11-15 17:26:41 +03:00
Triang3l 791326ff9b Merge branch 'master' into vulkan 2020-11-15 16:34:53 +03:00
Triang3l 56a07c1773 [GPU] Scissor in draw_util 2020-11-15 16:34:23 +03:00
Triang3l 715d614f5e [Vulkan] Float controls properties 2020-11-15 15:08:50 +03:00
Triang3l 8febf02a39 Merge branch 'master' into vulkan 2020-11-15 14:06:15 +03:00
Joel Linn 06214c544a [CPU] std::sort compare: satisfy comp(a,a)==false 2020-11-14 13:30:06 -06:00
Joel Linn 8b1ebe1130 Premake: Reorder links to speed up building.
- Re-enable LTO on clang.
- Set AR on travis so it builds with LTO.
2020-11-14 13:30:06 -06:00
Sandy Carter e348cacc6d [debugging linux] Implement functions
Check TracerPid in /proc/self/status for attached debugger.
Add SIGTRAP handler to prevent signal from halting app while not running
in a debugger.
Log DebugPrint in clog (stderr).
2020-11-14 13:17:15 -06:00
Radosław Gliński f8d7652dc4
[Kernel] Remove remaining SHIM usage from xam_net (#1671) 2020-11-14 19:30:56 +03:00
Triang3l a319617185 [Kernel] Thread affinity cleanup 2020-11-14 18:09:47 +03:00
Gliniak 2dc6b0b2ad [Kernel/Thread] Added missing paramteter to KeSetAffinityThread 2020-11-14 17:48:30 +03:00
Triang3l fe9b5b4a8f [D3D12] Cleanup: remove inline 2020-11-14 17:02:09 +03:00
Triang3l 6b988d43c7 [D3D12] Cleanup: pipeline state -> pipeline, other things 2020-11-14 16:43:18 +03:00
Triang3l 0ec215a8a0 Merge branch 'master' into vulkan 2020-11-14 14:17:54 +03:00
Triang3l 65c8d2b28e [Vulkan] Basic draw call architecture + [D3D12] Some cleanup 2020-11-14 14:16:04 +03:00
Gliniak 87a3c5fac2 [GPU] Added Stub for Packet: PM4_WAIT_FOR_IDLE 2020-11-10 22:48:00 +03:00
Triang3l 08c50af7b8 Merge branch 'master' into vulkan 2020-11-08 19:51:49 +03:00
Triang3l e196edc989 [Base] Use the original XEPACKEDSTRUCT/UNION names on MSVC 2020-11-08 19:41:41 +03:00
Triang3l 93f6a00201 [Vulkan] Transient descriptor pool + other cleanup for future drawing 2020-11-07 23:18:28 +03:00
Triang3l afe304b328 [Vulkan] Shared memory descriptor set 2020-11-07 20:43:45 +03:00
Triang3l d7341f9873 [Vulkan] Internal descriptor set layouts 2020-11-07 14:03:31 +03:00
Triang3l 8ef538a68f Merge branch 'master' into vulkan 2020-11-06 13:00:56 +03:00
Triang3l 6ac4d3e0c9 [DXBC] Fix texture binding reference use-after-grow 2020-11-06 13:00:22 +03:00
Triang3l d926e37f95 [SPIR-V] vfetch: packed formats 2020-11-05 23:49:39 +03:00
Triang3l 45d3dc4806 [SPIR-V] vfetch: 16-bit float 2020-11-05 21:49:36 +03:00
Triang3l a82b85a8ac [SPIR-V] vfetch: 32_* and 32_*_FLOAT formats 2020-11-04 23:56:12 +03:00
Triang3l 533bdf2114 [SPIR-V] Shared memory SSBOs 2020-11-04 18:57:08 +03:00
Triang3l 8665fa7517 [SPIR-V] Vertex index writing to r0.x 2020-11-03 23:31:52 +03:00
Triang3l 6030a4cf72 [SPIR-V] Add missing EnsureBuildPointAvailable in ALU 2020-11-02 12:17:47 +03:00
Triang3l de8b0a85ac [SPIR-V] Remaining scalar ALU instructions 2020-11-01 22:30:05 +03:00
Triang3l cb35aaf13b [SPIR-V] Scalar kill instructions 2020-11-01 22:22:34 +03:00
Triang3l 7512560416 [SPIR-V] SALU address and predicate 2020-11-01 22:17:12 +03:00
Triang3l 0f6aff6f74 [SPIR-V] Unary math functions 2020-11-01 21:48:14 +03:00
Triang3l d466ebbbe1 [SPIR-V] Scalar ALU comparison and simple unary 2020-11-01 21:12:09 +03:00
Triang3l 06b47d1df0 [SPIR-V] Scalar addition and multiplication 2020-11-01 20:42:59 +03:00
Triang3l fd4ba5622a [SPIR-V] Cube: multiply the major axis by 2 2020-11-01 15:56:51 +03:00
Triang3l c173ecc4ef [SPIR-V] Remaining VALU instructions 2020-11-01 15:45:26 +03:00
Triang3l d9f57c1ad8 [SPIR-V] Max4 2020-11-01 13:12:31 +03:00
Triang3l b32ca5fb4f [SPIR-V] Cube vector instruction 2020-10-31 21:42:51 +03:00
Triang3l 0949fac826 [SPIR-V] Dot product 2020-10-31 20:15:01 +03:00
Triang3l 06502d80d9 [SPIR-V] Vector max/min, comparison, unary 2020-10-31 19:15:00 +03:00
Triang3l 1acc5eff05 [SPIR-V] Vector mul, mad 2020-10-31 17:56:46 +03:00
Triang3l 52a8ed8e6d [SPIR-V] Version, float controls 2020-10-31 16:22:15 +03:00
Triang3l cacf702948 Merge branch 'master' into vulkan 2020-10-30 22:58:55 +03:00
Triang3l ae3b68c7b6 [DXBC] Fast mul path only for fully identical components because neg is post-abs 2020-10-30 22:31:30 +03:00
Triang3l feb8258a5e [DXBC] Multiplication signed zero handling 2020-10-30 22:14:38 +03:00
Triang3l 738cb0b847 [SPIR-V] Result storing 2020-10-29 22:07:02 +03:00
Triang3l 4dba2d8d89 [SPIR-V] Operand loading 2020-10-27 22:48:47 +03:00
Triang3l de059f3d57 Merge branch 'master' into vulkan 2020-10-27 21:03:40 +03:00
Triang3l 9bbe4365d1 [GPU] Fix adaptive quad tessellation inside factors 2020-10-27 21:01:55 +03:00
gibbed 2b8f347b0b [XAM] Stub xuids usage xeXamUserReadProfileSettingsEx.
[XAM] Stub valid xuids usage xeXamUserReadProfileSettingsEx.
2020-10-26 16:07:37 -05:00
Gliniak 10db913ca2 [Kernel/Xam] XNotifyGetNext - Overall improvements 2020-10-26 15:43:51 -05:00
Triang3l 1c83c8dcfa [SPIR-V] Instruction predication 2020-10-26 22:12:01 +03:00
Triang3l 556c8de2ab [SPIR-V] Loops 2020-10-25 20:24:48 +03:00
Triang3l a5410ada01 Merge branch 'master' into vulkan 2020-10-25 19:50:52 +03:00
Triang3l 445d78452f [DXBC] Pop aL on loop end 2020-10-25 19:50:24 +03:00
Triang3l fdbed73463 [Vulkan/SPIR-V] Some pipeline layout parts + exec conditionals 2020-10-25 15:09:39 +03:00
Triang3l 972d66d835 Merge branch 'master' into vulkan 2020-10-19 23:03:57 +03:00
Triang3l ca9086f3ba [GPU] Add a comment about non-positive tessellation factors 2020-10-19 23:02:20 +03:00
Triang3l 21726436b9 Merge branch 'master' into vulkan 2020-10-18 22:14:23 +03:00
Triang3l 9081046e7b [D3D12] Remove SRV[unbounded] and UAV overlap in bindless root sig 2020-10-18 22:09:08 +03:00
Triang3l afcf3c27c0 [Vulkan] Per-frame swapchain semaphores 2020-10-18 19:23:34 +03:00
Triang3l 7846245b66 [SPIR-V] Main program counter switch 2020-10-18 15:36:02 +03:00
Triang3l 1de144938c [SPIR-V] Main loop blocks, validation 2020-10-16 19:55:41 +03:00
Triang3l ae7d5a1b05 Merge branch 'master' into vulkan 2020-10-14 21:23:29 +03:00
Triang3l fd18a97f3a [GPU] Shaders: Make label_addresses accessible to translators 2020-10-14 21:19:33 +03:00
Triang3l b3339d7e46 [SPIR-V] Some initial bits of the translator 2020-10-11 20:22:15 +03:00
Triang3l 9d77d2131a Merge branch 'master' into vulkan 2020-10-08 23:09:12 +03:00
Triang3l 7e9e37bd09 [DXBC] Remove dxbc_source_map cvar export 2020-10-08 23:08:40 +03:00
Triang3l d572e878af [Vulkan] Remove FinalizeTrace 2020-10-08 23:06:02 +03:00
Triang3l 4862075976 [Vulkan] Cleanup and update SPIR-V dependencies 2020-10-08 23:05:30 +03:00
Triang3l 2782fc927d Merge branch 'master' into vulkan 2020-10-08 21:38:41 +03:00
Triang3l 81bc33523a [GPU] Remove unused FinalizeTrace 2020-10-08 21:37:29 +03:00
Triang3l 89ac9294bf [Vulkan] Shared memory trace download 2020-10-07 23:19:30 +03:00
Triang3l afcd01def5 Merge branch 'master' into vulkan 2020-10-07 23:18:08 +03:00
Triang3l 603150af64 [D3D12] Minor shared memory cleanup 2020-10-07 23:16:15 +03:00
Triang3l 4d59f556a9 [Vulkan] Sparse shared memory 2020-10-07 21:03:50 +03:00
Triang3l fee2189d39 Merge branch 'master' into vulkan 2020-10-06 22:36:16 +03:00
Triang3l b91c24870b [D3D12] Remove await result check in trace init - unsafe too, but not leaking 2020-10-06 22:35:43 +03:00
Triang3l e15c891656 Merge branch 'master' into vulkan 2020-10-06 21:54:52 +03:00
Triang3l 19121130a3 [GPU] SharedMemory: common sparse memory allocation 2020-10-06 21:32:44 +03:00
Triang3l 2c50c670d8 [Vulkan] Basic shared memory uploading 2020-10-04 22:08:30 +03:00
Triang3l 1fd0d48066 Merge branch 'master' into vulkan 2020-10-04 21:54:32 +03:00
Triang3l 75bf2d3c7d [D3D12] Minor deferred command list refactoring 2020-10-04 21:53:52 +03:00
Triang3l 81ee7b4c39 [D3D12] Minor FINE_GRAINED_DRAW_SCOPES refactoring 2020-10-04 21:49:10 +03:00
Triang3l c02534e5cf Merge branch 'master' into vulkan 2020-10-03 16:16:05 +03:00
Triang3l e0916be5cd [D3D12] Remove SHM EnsureTilesResident declaration 2020-10-03 16:15:25 +03:00
Triang3l 9f404090d3 [GPU] Split SharedMemory into common and D3D12 2020-10-03 16:13:17 +03:00
Triang3l 2acf2ce041 Merge branch 'master' into vulkan 2020-10-03 14:15:11 +03:00
Triang3l 6cb8f0aab4 [D3D12] Nicer DeferredCommandList uintmax_t alignment 2020-10-03 14:12:30 +03:00
Triang3l bc1cbd042e [Vulkan] Swapchain pass dependencies 2020-10-03 13:13:33 +03:00
Triang3l 865f77bae2 [Vulkan] Submissions 2020-10-01 21:17:10 +03:00
Triang3l 0fcf322565 Merge branch 'master' into vulkan 2020-09-29 21:18:10 +03:00
Triang3l 1014458783 [D3D12] Only await submission fence in one place 2020-09-29 21:17:20 +03:00
Triang3l 9d4e50c5d2 Merge branch 'master' into vulkan 2020-09-28 21:09:49 +03:00