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

36 Commits

Author SHA1 Message Date
Philip Rebohle
782b021690
[dxvk] Move compute pipeline state to dxvk_graphics_state.h 2019-10-07 22:01:48 +02:00
Philip Rebohle
35a8cedbc2 [dxvk] Move shader set hash/eq functions into respective structs
Makes it easier to use them outside the pipeline manager.
2019-09-30 03:42:20 +02:00
Philip Rebohle
54ff7bf769 [dxvk] Add methods to retrieve shaders from pipeline 2019-09-30 01:54:49 +02:00
Philip Rebohle
e253183bc2
[dxvk] Apply spec constants to compute shaders as well 2019-09-21 14:11:51 +02:00
Philip Rebohle
d01b6baf38
[dxvk] Introduce compilePipeline method to Dxvk*Pipeline classes
Decouples the act of synchronously retrieving a handle
from asynchronously compiling the pipeline.
2019-07-30 12:14:52 +02:00
Philip Rebohle
3dc33c64a9
[dxvk] Introduce DxvkComputePipelineInstance
Same as the graphics pipeline equivalent.
2019-07-30 11:07:07 +02:00
Philip Rebohle
20b0cbdfb6
[dxvk] Rename compilePipeline -> createPipeline
More in line with Vulkan naming.
2019-07-30 11:06:25 +02:00
Philip Rebohle
eaa41eb76c
[dxvk] Don't use reference counting for pipeline objects
Again not necessary since these objects are persistent.
Eliminates refcount overhead of pipeline lookups entirely.
2019-07-23 13:15:06 +02:00
Philip Rebohle
8d4996bcda
[dxvk] Use shader key structs to store shaders in DxvkPipeline objects
Mostly a code cleanup to make constructing these objects a bit easier.
2019-07-23 12:48:11 +02:00
Philip Rebohle
604e89b97a
[dxvk] Rename Dxvk*PipelineKey -> Dxvk*PipelineShaders 2019-07-23 12:41:09 +02:00
Philip Rebohle
70294aac44
[dxvk] Disable resource tracking for DxvkPipeline objects
This isn't necessary at all since these objects are persistent.
2019-07-23 12:34:48 +02:00
Philip Rebohle
a93dd74f71
[dxvk] Don't use derivative pipelines
No driver appears to be taking advantage of this, so why bother.
2019-07-14 13:58:00 +02:00
Philip Rebohle
79e867624a
[dxvk] Don't cache shader modules for compute pipelines 2019-04-03 19:46:28 +02:00
Philip Rebohle
ec8559f40a [dxvk] Remove unneeded atomic that holds base pipeline handles
No longer needed because the full pipeline object gets locked anyway.
2018-10-29 12:11:33 +01:00
Philip Rebohle
b49876528a
[dxvk] Enable state cache for compute pipelines
Also cleans up some code to get the design more in line
with how graphics pipelines are handled.
2018-09-23 14:42:03 +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
5410680401
[dxvk] Refactor pipeline object constructors
This way we don't need to pass everything to the pipeline objects.
2018-09-22 11:59:25 +02:00
Philip Rebohle
f42f708f72
[dxvk] Rename DxvkBindingState -> DxvkBindingMask
Preparation for some more binding-related work.
2018-09-17 10:45:28 +02:00
Philip Rebohle
db7a7fa4bc
[dxvk] Use dynamic offsets for both graphics and compute pipelines 2018-06-22 00:33:47 +02:00
Philip Rebohle
d201a1f7c6 [dxvk] Made pipe manager and pipeline classes thread-safe 2018-05-01 16:45:28 +02:00
Philip Rebohle
9ef4168867 [dxvk] Added support for pipeline-related stat counters 2018-04-03 15:52:39 +02:00
Philip Rebohle
05e0f3d52d
[dxvk] Remove mutex from Dxvk(Graphics|Compute)Pipeline
Not needed anymore because the pipe manager itself won't be
accessed by multiple threads any longer.
2018-03-29 16:36:31 +02:00
Philip Rebohle
c931b4ba87
[dxvk] Implement proper compute pipeline lookup
Fixes correctness issues and potential GPU lockups in case
a compute shader resource is not bound at dispatch time.
2018-03-16 01:25:18 +01:00
Philip Rebohle
0c2058e8c4
[dxvk] Introduced DxvkComputePipelineStateInfo
Will be used to re-compile compute pipelines against the current
state, just like graphics pipelines. May fix GPU lockups etc.
2018-02-14 17:54:35 +01:00
Philip Rebohle
a1a7bb9092
[dxvk] DxvkBindingLayout -> DxvkPipelineLayout 2018-01-23 17:40:36 +01:00
Philip Rebohle
d3f84688cc
[dxvk] Make use of VK_AMD_rasterization_order
May slightly improve GPU performance in some scenarios.
2018-01-16 15:00:19 +01:00
Philip Rebohle
c1f16d36bd [dxvk] Implemented local pipeline cache 2018-01-13 22:18:32 +01:00
Philip Rebohle
19851c8432 [dxvk] Re-implemented pipeline creation within the backend 2017-12-07 09:38:31 +01:00
Philip Rebohle
b5d068366d [dxvk] Implemented shader resource binding 2017-12-03 20:23:26 +01:00
Philip Rebohle
a6bf7659b0 [dxvk] Refactored shader binding, client APIs must now create pipelines and pipeline layouts 2017-12-03 00:40:58 +01:00
Philip Rebohle
a9a03fec69 [dxvk] DxvkShader creates a VkShaderModule again 2017-11-20 14:03:00 +01:00
Philip Rebohle
2c3674190a [dxvk] Implemented proper resource binding 2017-10-15 19:23:10 +02:00
Philip Rebohle
e9eefbb3e7 [dxvk] Added graphics pipeline stub 2017-10-15 13:02:59 +02:00
Philip Rebohle
883ae9f39d [dxvk] Added pipeline manager stub 2017-10-14 23:52:47 +02:00
Philip Rebohle
b67d952e63 [dxvk] Added compute pipeline stub 2017-10-14 13:45:00 +02:00
Philip Rebohle
764220db98 [dxvk] Added shader stub, improved state tracking code 2017-10-13 03:19:23 +02:00