1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

114 Commits

Author SHA1 Message Date
Andrew Eikum
a3065fca8e [d3d11] Extend interop interfaces for OpenXR support 2021-01-07 23:54:02 +01:00
Philip Rebohle
0c0d582f24
[dxvk] Default to fragment shader resolved on official AMD drivers
Improves performance of MSAA resolves. RADV does not benefit.
2020-05-19 18:54:25 +02:00
Philip Rebohle
7b81db2c75
[dxvk] Pass device to sampler constructor 2020-05-04 19:46:57 +02:00
Philip Rebohle
588beb5b2f [hud] Don't initialize client API HUD item by default
Removes the client API property from the DXVK device as well.
Instead, client APIs should create the HUD item manually.
2020-01-28 16:32:58 +00:00
Philip Rebohle
3beca254e2 [dxvk] Move UMA check to backend 2020-01-28 16:31:34 +00:00
Philip Rebohle
7a18cb1227
[dxvk] Remove unused memory stat counters 2019-12-13 12:08:36 +01:00
Philip Rebohle
8e587af0da
[dxvk] Add method to retrieve per-heap memory stats 2019-12-13 11:54:13 +01:00
Philip Rebohle
9ccad0d197
[dxvk] Use waitForIdle when destroying DXVK device
Otherwise, we might call vkDeviceWaitIdle before all command buffers
have been submitted to the Vulkan queue. Found by inspection.
2019-11-26 22:06:13 +01:00
Philip Rebohle
596001c37e
[dxvk] Enable shader-based depth-stencil copies for AMDVLK
Turns out to be slightly faster in practice.
2019-11-22 02:12:02 +01:00
Philip Rebohle
ceddbaf7c4
[dxvk] Fix synchronization around vkDeviceWaitIdle
From the spec:
	"Host access to all VkQueue objects created
	from device must be externally synchronized"

We were not doing that, which could cause hangs and
all sorts of issues when recreating the swap chain
on Nvidia GPUs.
2019-11-19 23:34:14 +01:00
Philip Rebohle
b2317cad4d
[dxvk] Pass DXVK instance to DXVK device directly, not through the adapter 2019-11-08 11:17:02 +01:00
Philip Rebohle
acf0001fd1
[dxvk] Make device properties accessible from the device 2019-08-13 14:37:50 +02:00
Philip Rebohle
65c1e58bd9
[dxvk] Use DxvkObjects to create and pass around common objects 2019-07-30 20:00:38 +02:00
Philip Rebohle
cfd7033e40
[dxvk] Pass DxvkDevice to DxvkRenderPassPool constructor 2019-07-30 20:00:38 +02:00
Philip Rebohle
e12103121f
[dxvk] Pass DxvkDevice to DxvkEventPool constructor 2019-07-30 20:00:38 +02:00
Philip Rebohle
40028a5b8c
[dxvk] Pass DxvkDevice to DxvkMetaClearObjects constructor 2019-07-30 20:00:38 +02:00
Philip Rebohle
6a58c432ec
[dxvk] Pass DxvkDevice to DxvkMetaPackObjects constructor 2019-07-30 20:00:38 +02:00
Philip Rebohle
5bb20cceb6
[dxvk] Add GPU idle time to stat counters 2019-07-18 23:23:12 +02:00
Philip Rebohle
8889d6402e
[dxvk] Use new fullscreen shaders for mip gen operations 2019-07-18 18:57:18 +02:00
Philip Rebohle
a08f9d0897
[dxvk] Implement device- and driver-specific performance hints
These are meant to be read by the DxvkContext in order to choose
a fast path for certasin operations.
2019-07-18 17:25:56 +02:00
Philip Rebohle
0dd8cba199
[dxvk] Support depth-stencil formats for meta copy objects 2019-07-18 17:25:50 +02:00
Philip Rebohle
ed5c43a14d
[dxvk] Implement asynchronous presentation
Off-loads the vkQueuePresentKHR call to the queue submission thread
to avoid synchronization with that thread on a present call.
2019-07-05 15:11:59 +02:00
Philip Rebohle
d8163c4446
[dxvk] Don't pass queue handles to DxvkCommandList
Instead, pull them from the device as needed. This coupling would
only make sense if we required one command list per queue family.
2019-06-29 01:53:32 +02:00
Philip Rebohle
1c39765b86
[dxvk] Rework queue family selection
This allows us to support multiple queues more easily.
2019-06-29 01:53:32 +02:00
Philip Rebohle
1c9bc235d0
[dxvk] Remove old staging buffer code 2019-06-21 16:43:22 +02:00
Philip Rebohle
b35f3c14df
[dxvk] Off-load command buffer submission to separate thread
Reduces load on the CS thread a bit, which may yield a small
performance improvement.
2019-05-05 16:49:17 +02:00
Philip Rebohle
bb01318984
[dxvk] Add stat counter for shader compiler activity 2019-04-14 13:28:57 +02:00
Philip Rebohle
ea5dcd5b14
[dxvk] Re-implement class to create meta-resolve objects
This time with specialization constants so that we don't have
to read the tetxure's sample count from the descriptor.
2019-04-07 21:07:25 +02:00
Philip Rebohle
73bb0d8ae2 [dxvk] Remove shader-based resolve
No longer necessary since we're using render pass resolve now.
2019-03-24 16:36:35 +01:00
Philip Rebohle
209248e26d [dxvk] Use vkResetQueryPoolEXT to reset individual queries
This is much faster than the fallback path which uses GPU functions.
2019-03-17 16:25:00 +01:00
Philip Rebohle
a8144370c8
[dxvk] Create new query pool and forward it to the context 2019-03-14 21:16:41 +01:00
Philip Rebohle
6b9653d261
[dxvk] Create GPU event pool and forward it to the context 2019-03-14 21:16:41 +01:00
Philip Rebohle
2a6d4fa2ba
[dxvk] Implement DxvkDevice::getShaderPipelineStages 2019-03-02 19:56:00 +01:00
Philip Rebohle
10123ce9ab
[dxvk] Pass description of the client API to the DXVK device 2019-02-15 17:38:52 +01:00
Philip Rebohle
8b5db80fbd
[dxvk] Reimplement DxvkBuffer
Avoids the DxvkPhysicalBuffer indirection and keeps all buffer
objects alive until the DxvkBuffer itself gets destroyed.
2019-01-09 18:04:46 +01:00
Philip Rebohle
092cad0e76
[dxvk] Remove DxvkSemaphore 2018-11-28 12:44:18 +01:00
Philip Rebohle
9b923bb386
[dxvk] Remove DxvkSwapChain 2018-11-28 12:44:17 +01:00
Philip Rebohle
81306cdc11
[dxvk] Support new Vulkan presenter in DxvkDevice 2018-11-28 12:44:17 +01:00
Philip Rebohle
746529b71b
[dxvk] Pass raw semaphore handles to submitCommandList 2018-11-28 12:44:17 +01:00
Philip Rebohle
4057937d2d
[dxvk] Refactor descriptor set allocation
With this new approach, descriptor pools are decoupled from the
command list they are used with. Instead, the DXVK context takes
ownership of a single descriptor pool until it runs out of memory.

This reduces the amount of memory wasted for under-utilized pools
and should this reduce an application's memory footprint.
2018-11-27 11:42:13 +01:00
Philip Rebohle
99f6953e89
[dxvk] Store DXVK options directly with the instance object 2018-11-20 15:50:01 +01:00
Philip Rebohle
fc8f49899a
[dxvk] Create instance of depth-stencil packing objects 2018-11-08 18:10:56 +01:00
Philip Rebohle
a42f03e32d
[dxbc] Add Xfb structures to DxbcModuleInfo 2018-10-10 10:28:15 +02:00
Philip Rebohle
509e6f1abf
[dxvk] Use new meta copy for depth <> color image copies 2018-09-27 11:44:09 +02:00
Philip Rebohle
4a72cae1e6
[dxvk] Enable state cache 2018-09-23 14:41:43 +02:00
Philip Rebohle
83447975ac
[dxvk] Refactor pipeline stat counters
The stat counter struct no longer has to be passed to
the pipeline compiler function.

The new implementation uses atomic counters of the pipeline manager
rather than per-command list counters, which removes the need to
pass the counter structure to the compiler function.
2018-09-22 12:02:20 +02:00
Philip Rebohle
0f52ec2796
Revert "[dxvk] Move command submission to separate thread"
This reverts commit f61ff5d345fdbd1627b2fd833f57ff303015c747.

Apparently, this causes extremely poor frame times on some
configurations. Reason is currently unknown.
2018-09-20 19:58:00 +02:00
Philip Rebohle
f61ff5d345
[dxvk] Move command submission to separate thread
- Reduces load on the CS thread and the main rendering thread.
- This takes into account that VR apps access the queue as well.
2018-09-20 14:43:06 +02:00
Philip Rebohle
9e3914b368
[dxvk] Remove redundant parameter from DxvkCommandList constructor 2018-09-12 18:54:05 +02:00
Philip Rebohle
c7ddaea5a6
[dxvk] Add method to retrieve current frame number 2018-09-10 18:05:33 +02:00