Commit Graph

4749 Commits

Author SHA1 Message Date
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
Sandy Carter 4ce9eddfb9 [threading] Test WaitAll and WaitAny with Events 2020-11-15 11:12:05 -06:00
Sandy Carter 9d20adfa77 [threading linux] Implement Events
Remove file-descriptor specific wait implementation to PosixFdHandle class
which breaks on waits of non-fd handles.
Replace with PosixConditionHandle and extend to support auto reset and
initial values.
Simplify mutex and conditional variable use with stdlib versions which
wrap these primitives but provide better C++ interface.
Test Event and Reset
2020-11-15 11:12:05 -06:00
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 56a07c1773 [GPU] Scissor in draw_util 2020-11-15 16:34:23 +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
Gliniak 87a3c5fac2 [GPU] Added Stub for Packet: PM4_WAIT_FOR_IDLE 2020-11-10 22:48:00 +03:00
Triang3l e196edc989 [Base] Use the original XEPACKEDSTRUCT/UNION names on MSVC 2020-11-08 19:41:41 +03:00
Triang3l 6ac4d3e0c9 [DXBC] Fix texture binding reference use-after-grow 2020-11-06 13:00:22 +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 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 445d78452f [DXBC] Pop aL on loop end 2020-10-25 19:50:24 +03:00
Triang3l ca9086f3ba [GPU] Add a comment about non-positive tessellation factors 2020-10-19 23:02:20 +03:00
Triang3l 9081046e7b [D3D12] Remove SRV[unbounded] and UAV overlap in bindless root sig 2020-10-18 22:09:08 +03:00
Triang3l fd18a97f3a [GPU] Shaders: Make label_addresses accessible to translators 2020-10-14 21:19:33 +03:00
Triang3l 7e9e37bd09 [DXBC] Remove dxbc_source_map cvar export 2020-10-08 23:08:40 +03:00
Triang3l 81bc33523a [GPU] Remove unused FinalizeTrace 2020-10-08 21:37:29 +03:00
Triang3l 603150af64 [D3D12] Minor shared memory cleanup 2020-10-07 23:16:15 +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 19121130a3 [GPU] SharedMemory: common sparse memory allocation 2020-10-06 21:32:44 +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 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 6cb8f0aab4 [D3D12] Nicer DeferredCommandList uintmax_t alignment 2020-10-03 14:12:30 +03:00
Triang3l 1014458783 [D3D12] Only await submission fence in one place 2020-09-29 21:17:20 +03:00
Triang3l 0156d3ef26 [D3D12] Await UpdateTileMappings when syncing with the GPU 2020-09-28 12:16:09 +03:00
Triang3l c2e8c5554d [UI] Replace ImmediateTexture handles with pointers + small cleanup 2020-09-27 16:30:53 +03:00
Triang3l f5f8714c3f [D3D12] Delayed ImmediateTexture releasing 2020-09-27 16:21:14 +03:00
Triang3l d437555036 [UI] Remove immdraw restrict_texture_samples + cleanup 2020-09-26 22:06:04 +03:00
Triang3l 18031a8f6d [D3D12] Immdraw texture upload leak fix + cleanup 2020-09-26 18:36:31 +03:00
Triang3l c218d6dc10 [D3D12] Move D3D12ImmediateTexture to D3D12ImmediateDrawer 2020-09-21 23:15:51 +03:00
Triang3l dfeeb959c3 [D3D12] Swap R/B in Capture 2020-09-21 21:56:30 +03:00
Triang3l fc55b1f81d [UI] Remove pass-unfriendly UpdateTexture of ImmediateDrawer 2020-09-20 20:34:22 +03:00
Triang3l 183c7eee2b [D3D12] Various refactoring mostly on the immediate drawer side, cache immdraw scissor, force stretch alpha to 1 2020-09-20 15:15:08 +03:00
Triang3l 6ba0620b10 [UI] Fix build error due to undeclared size_t 2020-09-18 21:20:37 +03:00
Gliniak ba565c3403 [Kernel/Usbcam] XUsbcamCreate
- Provided description to some parameters
- Provided description what function more/less should do
- Changed return code based on game behaviour
2020-09-17 23:14:33 +03:00
Triang3l 5c291d0589 [D3D12] Remove unneeded code things from pools 2020-09-17 22:55:16 +03:00
Triang3l 3236d0ae75 [D3D12] Fix DescriptorHeapPool closing comment 2020-09-17 22:01:41 +03:00
Triang3l 1ebd0067f0 [Vulkan Old] Fix build error caused by constexpr countof 2020-09-17 21:51:44 +03:00
Triang3l 7c2245bb94 [UI] Remove GraphicsUploadBufferPool double include 2020-09-17 21:39:11 +03:00
Triang3l 189a38826f [UI] UploadBufferPool common code 2020-09-17 21:37:44 +03:00
Triang3l 2cebd3cabe [D3D12] Unify UploadBufferPool page size (2 MB), add alignment parameter 2020-09-15 22:13:53 +03:00
Triang3l dfbe36a8aa [UI/D3D12] Small refactoring, allow BeginSwap to return false if no surface 2020-09-14 23:27:19 +03:00
Triang3l acb1fc059f [D3D12] Make the feature list in the log sorted again 2020-09-06 00:57:00 +03:00
Triang3l 38e0cc4941 [D3D12] Non-zeroed heaps on 2004 2020-09-06 00:52:30 +03:00
Triang3l b3f84f4a9c [GPU] Rename present_stretch to present_rescale 2020-09-05 19:34:36 +03:00
Triang3l 74804ae710 [DXBC] ROV: Fix depth being overwritten if stencil failed 2020-09-05 19:23:45 +03:00
Triang3l 0be0eb2b38 [GPU/D3D12] Letterboxing cropping to action-safe area 2020-09-05 17:47:32 +03:00
Triang3l 52efbcf741 [Memory] Fix Protect range calculation 2020-09-01 12:44:37 +03:00
Triang3l 1e9ee8f43b [D3D12] Change most subsystem pointers to references 2020-08-30 22:07:35 +03:00
Triang3l c5dd7403f0 [D3D12] Change swap chain format to BGRA 2020-08-30 18:59:53 +03:00
Triang3l deff124ce5 [D3D12] Add xenia-ui-window-d3d12-demo 2020-08-30 16:56:06 +03:00
Gliniak 7fd1991074 [Kernel/Object] Added base to object handle 2020-08-29 15:17:31 +03:00
Triang3l 1b3db70a07 [GPU] Fix negative shift build error 2020-08-29 00:22:15 +03:00
Triang3l 210c30aef9 [D3D12] Fix resolve not syncing with CPU memory and memory extent calculation 2020-08-28 23:49:23 +03:00
Triang3l a1d33615b0 [DXBC] Inline depth/stencil test 2020-08-27 23:46:41 +03:00
Triang3l fd14a68420 [Kernel] NtQueryVirtualMemory state test case info 2020-08-27 16:59:42 +03:00
Triang3l c2c263f34a [Kernel] Return only one state from NtQueryVirtualMemory 2020-08-27 15:47:51 +03:00
Gliniak eac7e2cd1f [Kernel/Memory] NtQueryVirtualMemory - Added support for returning X_MEM_FREE state 2020-08-27 14:55:02 +03:00
Gliniak b3e537a5bf [Base] Use enum instead of define for X_PAGE_* 2020-08-27 14:55:02 +03:00
Gliniak 4908754d84 [Base] Use enum instead of define for X_MEM_* 2020-08-27 14:55:02 +03:00
Gliniak 4f5c313fe3 [Kernel/XAM] Added Support For: XamContentDeleteInternal
Now some EA games should have working savefiles
2020-08-25 20:51:01 +03:00
Triang3l dffdf92e39 [Vulkan] Remove stillborn vk project 2020-08-22 23:31:52 +03:00
Triang3l 82ca0a7eec [D3D12] Slightly cleanup DXC object initialization 2020-08-22 23:21:00 +03:00
Triang3l 0c13b239fd [D3D12] DXILConv disassembly dumping option 2020-08-22 23:15:50 +03:00
Jonathan Goyvaerts 92e445f01a [App] Add portable as a launch option in addition to checking for portable.txt existence 2020-08-21 20:31:19 +03:00
Triang3l 6dc94d9154 [DXBC] ROV: Inline color ROP 2020-08-16 17:10:07 +03:00
Triang3l 9428af52e4 [CPU] break_on_unimplemented_instructions cvar 2020-08-09 22:01:54 +03:00
Triang3l 36501be9f8 [D3D12] Remove now-unused d3d12_resolution_scale_resolve_edge_clamp cvar 2020-08-09 21:36:09 +03:00
Triang3l bd5f77bc3b [GPU] Common resolve code based on compute shaders, swap MSAA samples 1 and 2, change ROV write rounding, random refactoring 2020-08-09 21:33:10 +03:00
Silent 72e41e2bf8 Fix building with XE_OPTION_ENABLE_LOGGING off 2020-08-08 23:26:49 -05:00
Triang3l 9418f3f2c5 [D3D12] Fix a storing typo in the DXT3 decompression shader 2020-07-14 17:45:41 +03:00
gibbed c99c430665 [Kernel] Reject IO for invalid characters.
[Kernel] Reject IO for paths with invalid characters.
2020-07-12 12:22:24 -05:00
Joel Linn 41cf7c7a63 [Input] Fix doubling with any enabled.
Keystrokes from multiple backends where mixed.
Effectively doubling all keystroke inputs.
2020-07-12 08:57:21 -05:00
Joel Linn 993393a939 [ImGui] Fix context initialization.
Every context after the first wasn't initialized properly.
2020-07-12 08:56:45 -05:00
Gliniak ab2b9393c2 [Kernel] Implemented NtQueueApcThread 2020-07-12 08:56:15 -05:00
Triang3l b84239d507 [GPU] xenos.h: max texture size, interpolators 2020-07-11 18:56:56 +03:00
Triang3l 79413345af [C++17] static constexpr variables are implicitly inline now 2020-07-11 16:44:57 +03:00
Triang3l f8320d53d7 [D3D12] Fix bitfield lint errors 2020-07-11 16:31:16 +03:00
Triang3l 4bb0ca0e09 [GPU] Move all xenos.h to gpu::xenos, disambiguate Dimension/TextureDimension 2020-07-11 15:54:22 +03:00
Triang3l 39490f3c3a [GPU] Centroid interpolation usage comment 2020-07-09 12:22:45 +03:00
Triang3l 1547b9df41 [D3D12] Interpolation at centroid 2020-07-08 23:20:36 +03:00
Triang3l 829c6ee2b0 [D3D12] Dithered alpha to coverage 2020-07-07 23:09:53 +03:00
Cancerous 596f1691c0 [XAM] - correct storage device ID fixes saving and storage detection in many games
most of the games this can be evidenced in are Unreal Engine titles or games that otherwise do not work in master yet but it can be shown in Saints Row 2 that does work in the master branch
this ID was found from debugging games where storage device detection wasn't working and reverse engineering of Unreal Engine 3
2020-07-07 01:57:40 -05:00
Triang3l 0fbf0eec9d [DXBC] ROV: Inline 24-bit depth conversion 2020-07-05 22:50:24 +03:00
Triang3l 713f26b5c8 [D3D12] Use typed buffers for texture untiling, calculate guest address once per thread 2020-07-03 20:03:53 +03:00
Triang3l 1d35ba9ee7 [D3D12] Fix bindless sampler offset 2020-06-23 23:51:59 +03:00
Triang3l d26f84b36b [D3D12] Untile whole mip tail to make alignment assumptions later, other mip fixes 2020-06-23 23:49:42 +03:00
Triang3l bd1a1e2de3 [D3D12] Lint root_parameters_bindless 2020-06-20 12:30:07 +03:00
Triang3l dbc7794399
[D3D12] Enable bindless resources by default 2020-06-20 01:27:31 +03:00
Triang3l 40e335e2a9 [D3D12] Bindless textures/samplers 2020-06-19 23:52:33 +03:00
Triang3l 9f789e01b6 [DXBC] Fix and cleanup depth-only PS register usage 2020-06-07 15:21:31 +03:00
Triang3l 2cd69092ce [Kernel] Fix incorrect C-like structure declaration 2020-06-06 22:25:48 +03:00
Triang3l 8a64861ec0 [DXBC] New tfetch: pre-swizzle signs, additive LOD + refactoring 2020-06-06 19:12:34 +03:00
Joel Linn 68dd818029 [GPU] Add workaround for occlusion queries. 2020-06-01 22:40:55 -05:00
Triang3l aa73d652ba [DXBC] OpenGL snorm vfetch because why not 2020-05-24 19:25:35 +03:00
Triang3l 04ca28c902 [DXBC] Unbreak signed integer vfetch + don't multiply by 1 in normalization 2020-05-23 19:04:42 +03:00
Triang3l 7f2d9ca929 [D3D12] Revert half-pixel offset through viewport because of SSAA issues 2020-05-23 18:37:28 +03:00
Triang3l 3879ff29b3 [DXBC/GPU] vfetch to new codegen, signed vfetch offset, fix AND with system flags 2020-05-23 17:15:11 +03:00
Gliniak e80115020e [Kernel/XAM] Implemented XamContentCreateInternal 2020-05-18 14:07:07 -05:00
Triang3l 3d2b04333e [D3D12] RT Cache: Fix typos (in something broken anyway) 2020-05-17 16:05:22 +03:00
Triang3l cf0ddc7549 [D3D12] Disable the proper D3D12 warning about render targets 2020-05-17 13:32:19 +03:00
Triang3l 581646cff2
[GPU] Lint xe_gpu_texture_fetch_t 2020-05-17 01:38:15 +03:00
Triang3l b7a5c24bb1 [D3D12] d3d12_break_on_error + fix PerformSwap descriptor heap wrap 2020-05-17 00:26:04 +03:00
Triang3l 8341a48210 [D3D12] Fix state of textures bound to both VS and PS 2020-05-16 19:33:22 +03:00
Triang3l fdd97fc831 [D3D12] Reword clamp FIXME because WONTFIX 2020-05-16 00:19:18 +03:00
Triang3l 8c2f607793 [GPU] Notes about tiled offset patterns 2020-05-14 23:42:54 +03:00
Triang3l 35abd8e2e8 [D3D12] Actually properly select tessellation mode 2020-05-11 22:47:07 +03:00
Triang3l 0d14ae01bb [D3D12] Allow non-adaptive tessellation for patch primitive types, and all triangle and quad tessellation modes 2020-05-11 22:40:52 +03:00
Triang3l 4631b2b16c [D3D12] Apply half pixel offset through viewport, remove some 2560 references 2020-05-11 20:37:02 +03:00
Triang3l 6d0e4787fb [DXBC] Use div for vtx_fmt w0 instead of rcp 2020-05-11 16:51:48 +03:00
Triang3l a3b4c77fdb [GPU] Add texture_util::SwizzleSigns for later 2020-05-11 16:30:09 +03:00
Triang3l b256005b7a [GPU] Fix GatherInstructionInformation enum values not handled warning 2020-05-11 00:28:26 +03:00
Triang3l 814990f686 [DXBC] ALU scalar ops to new codegen 2020-05-10 20:57:33 +03:00
Triang3l ef37cbb955 [DXBC] Fix an outdated comment about cube operands 2020-05-10 16:35:40 +03:00
Triang3l b79ba69548 [DXBC] ALU vector ops to new codegen 2020-05-10 16:33:39 +03:00
Triang3l 3aa0ce3096 [GPU] Shader translator refactoring (mostly ALU), fixes for disassembly round trip and write masks 2020-05-08 23:57:51 +03:00
Triang3l 8f91e580f4 [D3D12] d3d12_queue_priority cvar 2020-05-04 18:55:31 +03:00