From 604e89b97a463845e4b4c7c95d50b83002d76e5d Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Tue, 23 Jul 2019 12:41:09 +0200 Subject: [PATCH] [dxvk] Rename Dxvk*PipelineKey -> Dxvk*PipelineShaders --- src/dxvk/dxvk_compute.h | 8 ++++++++ src/dxvk/dxvk_graphics.h | 12 ++++++++++++ src/dxvk/dxvk_pipemanager.cpp | 16 +++++++-------- src/dxvk/dxvk_pipemanager.h | 37 ++++++----------------------------- 4 files changed, 34 insertions(+), 39 deletions(-) diff --git a/src/dxvk/dxvk_compute.h b/src/dxvk/dxvk_compute.h index 4c30b8edd..60a03450c 100644 --- a/src/dxvk/dxvk_compute.h +++ b/src/dxvk/dxvk_compute.h @@ -15,6 +15,14 @@ namespace dxvk { class DxvkDevice; class DxvkPipelineManager; + /** + * \brief Shaders used in compute pipelines + */ + struct DxvkComputePipelineShaders { + Rc cs; + }; + + /** * \brief Compute pipeline state info */ diff --git a/src/dxvk/dxvk_graphics.h b/src/dxvk/dxvk_graphics.h index 2b77c8747..8a95d9400 100644 --- a/src/dxvk/dxvk_graphics.h +++ b/src/dxvk/dxvk_graphics.h @@ -28,6 +28,18 @@ namespace dxvk { using DxvkGraphicsPipelineFlags = Flags; + /** + * \brief Shaders used in graphics pipelines + */ + struct DxvkGraphicsPipelineShaders { + Rc vs; + Rc tcs; + Rc tes; + Rc gs; + Rc fs; + }; + + /** * \brief Graphics pipeline state info * diff --git a/src/dxvk/dxvk_pipemanager.cpp b/src/dxvk/dxvk_pipemanager.cpp index 682db83d1..5a6ed582f 100644 --- a/src/dxvk/dxvk_pipemanager.cpp +++ b/src/dxvk/dxvk_pipemanager.cpp @@ -4,13 +4,13 @@ namespace dxvk { - size_t DxvkPipelineKeyHash::operator () (const DxvkComputePipelineKey& key) const { + size_t DxvkPipelineKeyHash::operator () (const DxvkComputePipelineShaders& key) const { std::hash hash; return hash(key.cs.ptr()); } - size_t DxvkPipelineKeyHash::operator () (const DxvkGraphicsPipelineKey& key) const { + size_t DxvkPipelineKeyHash::operator () (const DxvkGraphicsPipelineShaders& key) const { DxvkHashState state; std::hash hash; @@ -24,15 +24,15 @@ namespace dxvk { bool DxvkPipelineKeyEq::operator () ( - const DxvkComputePipelineKey& a, - const DxvkComputePipelineKey& b) const { + const DxvkComputePipelineShaders& a, + const DxvkComputePipelineShaders& b) const { return a.cs == b.cs; } bool DxvkPipelineKeyEq::operator () ( - const DxvkGraphicsPipelineKey& a, - const DxvkGraphicsPipelineKey& b) const { + const DxvkGraphicsPipelineShaders& a, + const DxvkGraphicsPipelineShaders& b) const { return a.vs == b.vs && a.tcs == b.tcs && a.tes == b.tes && a.gs == b.gs && a.fs == b.fs; @@ -63,7 +63,7 @@ namespace dxvk { std::lock_guard lock(m_mutex); - DxvkComputePipelineKey key; + DxvkComputePipelineShaders key; key.cs = cs; auto pair = m_computePipelines.find(key); @@ -89,7 +89,7 @@ namespace dxvk { std::lock_guard lock(m_mutex); - DxvkGraphicsPipelineKey key; + DxvkGraphicsPipelineShaders key; key.vs = vs; key.tcs = tcs; key.tes = tes; diff --git a/src/dxvk/dxvk_pipemanager.h b/src/dxvk/dxvk_pipemanager.h index fb62cb9ac..9bcb279e5 100644 --- a/src/dxvk/dxvk_pipemanager.h +++ b/src/dxvk/dxvk_pipemanager.h @@ -21,41 +21,16 @@ namespace dxvk { uint32_t numComputePipelines; }; - /** - * \brief Compute pipeline key - * - * Identifier for a compute pipeline object. - * Consists of the compute shader itself. - */ - struct DxvkComputePipelineKey { - Rc cs; - }; - - - /** - * \brief Graphics pipeline key - * - * Identifier for a graphics pipeline object. - * Consists of all graphics pipeline shaders. - */ - struct DxvkGraphicsPipelineKey { - Rc vs; - Rc tcs; - Rc tes; - Rc gs; - Rc fs; - }; - struct DxvkPipelineKeyHash { - size_t operator () (const DxvkComputePipelineKey& key) const; - size_t operator () (const DxvkGraphicsPipelineKey& key) const; + size_t operator () (const DxvkComputePipelineShaders& key) const; + size_t operator () (const DxvkGraphicsPipelineShaders& key) const; }; struct DxvkPipelineKeyEq { - bool operator () (const DxvkComputePipelineKey& a, const DxvkComputePipelineKey& b) const; - bool operator () (const DxvkGraphicsPipelineKey& a, const DxvkGraphicsPipelineKey& b) const; + bool operator () (const DxvkComputePipelineShaders& a, const DxvkComputePipelineShaders& b) const; + bool operator () (const DxvkGraphicsPipelineShaders& a, const DxvkGraphicsPipelineShaders& b) const; }; @@ -146,13 +121,13 @@ namespace dxvk { std::mutex m_mutex; std::unordered_map< - DxvkComputePipelineKey, + DxvkComputePipelineShaders, Rc, DxvkPipelineKeyHash, DxvkPipelineKeyEq> m_computePipelines; std::unordered_map< - DxvkGraphicsPipelineKey, + DxvkGraphicsPipelineShaders, Rc, DxvkPipelineKeyHash, DxvkPipelineKeyEq> m_graphicsPipelines;