mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Rename Dxvk*PipelineKey -> Dxvk*PipelineShaders
This commit is contained in:
parent
70294aac44
commit
604e89b97a
@ -15,6 +15,14 @@ namespace dxvk {
|
|||||||
class DxvkDevice;
|
class DxvkDevice;
|
||||||
class DxvkPipelineManager;
|
class DxvkPipelineManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Shaders used in compute pipelines
|
||||||
|
*/
|
||||||
|
struct DxvkComputePipelineShaders {
|
||||||
|
Rc<DxvkShader> cs;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Compute pipeline state info
|
* \brief Compute pipeline state info
|
||||||
*/
|
*/
|
||||||
|
@ -28,6 +28,18 @@ namespace dxvk {
|
|||||||
using DxvkGraphicsPipelineFlags = Flags<DxvkGraphicsPipelineFlag>;
|
using DxvkGraphicsPipelineFlags = Flags<DxvkGraphicsPipelineFlag>;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Shaders used in graphics pipelines
|
||||||
|
*/
|
||||||
|
struct DxvkGraphicsPipelineShaders {
|
||||||
|
Rc<DxvkShader> vs;
|
||||||
|
Rc<DxvkShader> tcs;
|
||||||
|
Rc<DxvkShader> tes;
|
||||||
|
Rc<DxvkShader> gs;
|
||||||
|
Rc<DxvkShader> fs;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Graphics pipeline state info
|
* \brief Graphics pipeline state info
|
||||||
*
|
*
|
||||||
|
@ -4,13 +4,13 @@
|
|||||||
|
|
||||||
namespace dxvk {
|
namespace dxvk {
|
||||||
|
|
||||||
size_t DxvkPipelineKeyHash::operator () (const DxvkComputePipelineKey& key) const {
|
size_t DxvkPipelineKeyHash::operator () (const DxvkComputePipelineShaders& key) const {
|
||||||
std::hash<DxvkShader*> hash;
|
std::hash<DxvkShader*> hash;
|
||||||
return hash(key.cs.ptr());
|
return hash(key.cs.ptr());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
size_t DxvkPipelineKeyHash::operator () (const DxvkGraphicsPipelineKey& key) const {
|
size_t DxvkPipelineKeyHash::operator () (const DxvkGraphicsPipelineShaders& key) const {
|
||||||
DxvkHashState state;
|
DxvkHashState state;
|
||||||
|
|
||||||
std::hash<DxvkShader*> hash;
|
std::hash<DxvkShader*> hash;
|
||||||
@ -24,15 +24,15 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
bool DxvkPipelineKeyEq::operator () (
|
bool DxvkPipelineKeyEq::operator () (
|
||||||
const DxvkComputePipelineKey& a,
|
const DxvkComputePipelineShaders& a,
|
||||||
const DxvkComputePipelineKey& b) const {
|
const DxvkComputePipelineShaders& b) const {
|
||||||
return a.cs == b.cs;
|
return a.cs == b.cs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool DxvkPipelineKeyEq::operator () (
|
bool DxvkPipelineKeyEq::operator () (
|
||||||
const DxvkGraphicsPipelineKey& a,
|
const DxvkGraphicsPipelineShaders& a,
|
||||||
const DxvkGraphicsPipelineKey& b) const {
|
const DxvkGraphicsPipelineShaders& b) const {
|
||||||
return a.vs == b.vs && a.tcs == b.tcs
|
return a.vs == b.vs && a.tcs == b.tcs
|
||||||
&& a.tes == b.tes && a.gs == b.gs
|
&& a.tes == b.tes && a.gs == b.gs
|
||||||
&& a.fs == b.fs;
|
&& a.fs == b.fs;
|
||||||
@ -63,7 +63,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
std::lock_guard<std::mutex> lock(m_mutex);
|
std::lock_guard<std::mutex> lock(m_mutex);
|
||||||
|
|
||||||
DxvkComputePipelineKey key;
|
DxvkComputePipelineShaders key;
|
||||||
key.cs = cs;
|
key.cs = cs;
|
||||||
|
|
||||||
auto pair = m_computePipelines.find(key);
|
auto pair = m_computePipelines.find(key);
|
||||||
@ -89,7 +89,7 @@ namespace dxvk {
|
|||||||
|
|
||||||
std::lock_guard<std::mutex> lock(m_mutex);
|
std::lock_guard<std::mutex> lock(m_mutex);
|
||||||
|
|
||||||
DxvkGraphicsPipelineKey key;
|
DxvkGraphicsPipelineShaders key;
|
||||||
key.vs = vs;
|
key.vs = vs;
|
||||||
key.tcs = tcs;
|
key.tcs = tcs;
|
||||||
key.tes = tes;
|
key.tes = tes;
|
||||||
|
@ -21,41 +21,16 @@ namespace dxvk {
|
|||||||
uint32_t numComputePipelines;
|
uint32_t numComputePipelines;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Compute pipeline key
|
|
||||||
*
|
|
||||||
* Identifier for a compute pipeline object.
|
|
||||||
* Consists of the compute shader itself.
|
|
||||||
*/
|
|
||||||
struct DxvkComputePipelineKey {
|
|
||||||
Rc<DxvkShader> cs;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Graphics pipeline key
|
|
||||||
*
|
|
||||||
* Identifier for a graphics pipeline object.
|
|
||||||
* Consists of all graphics pipeline shaders.
|
|
||||||
*/
|
|
||||||
struct DxvkGraphicsPipelineKey {
|
|
||||||
Rc<DxvkShader> vs;
|
|
||||||
Rc<DxvkShader> tcs;
|
|
||||||
Rc<DxvkShader> tes;
|
|
||||||
Rc<DxvkShader> gs;
|
|
||||||
Rc<DxvkShader> fs;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct DxvkPipelineKeyHash {
|
struct DxvkPipelineKeyHash {
|
||||||
size_t operator () (const DxvkComputePipelineKey& key) const;
|
size_t operator () (const DxvkComputePipelineShaders& key) const;
|
||||||
size_t operator () (const DxvkGraphicsPipelineKey& key) const;
|
size_t operator () (const DxvkGraphicsPipelineShaders& key) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct DxvkPipelineKeyEq {
|
struct DxvkPipelineKeyEq {
|
||||||
bool operator () (const DxvkComputePipelineKey& a, const DxvkComputePipelineKey& b) const;
|
bool operator () (const DxvkComputePipelineShaders& a, const DxvkComputePipelineShaders& b) const;
|
||||||
bool operator () (const DxvkGraphicsPipelineKey& a, const DxvkGraphicsPipelineKey& b) const;
|
bool operator () (const DxvkGraphicsPipelineShaders& a, const DxvkGraphicsPipelineShaders& b) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -146,13 +121,13 @@ namespace dxvk {
|
|||||||
std::mutex m_mutex;
|
std::mutex m_mutex;
|
||||||
|
|
||||||
std::unordered_map<
|
std::unordered_map<
|
||||||
DxvkComputePipelineKey,
|
DxvkComputePipelineShaders,
|
||||||
Rc<DxvkComputePipeline>,
|
Rc<DxvkComputePipeline>,
|
||||||
DxvkPipelineKeyHash,
|
DxvkPipelineKeyHash,
|
||||||
DxvkPipelineKeyEq> m_computePipelines;
|
DxvkPipelineKeyEq> m_computePipelines;
|
||||||
|
|
||||||
std::unordered_map<
|
std::unordered_map<
|
||||||
DxvkGraphicsPipelineKey,
|
DxvkGraphicsPipelineShaders,
|
||||||
Rc<DxvkGraphicsPipeline>,
|
Rc<DxvkGraphicsPipeline>,
|
||||||
DxvkPipelineKeyHash,
|
DxvkPipelineKeyHash,
|
||||||
DxvkPipelineKeyEq> m_graphicsPipelines;
|
DxvkPipelineKeyEq> m_graphicsPipelines;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user