mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-20 19:54:19 +01:00
[dxvk] Remove viewport state from graphics pipelines
And bump state cache version to v13.
This commit is contained in:
parent
4b82a05e05
commit
95f7aae3e6
@ -2400,7 +2400,6 @@ namespace dxvk {
|
||||
rs.polygonMode,
|
||||
rs.cullMode,
|
||||
rs.frontFace,
|
||||
m_state.gp.state.rs.viewportCount(),
|
||||
rs.sampleCount,
|
||||
rs.conservativeMode);
|
||||
|
||||
|
@ -223,17 +223,15 @@ namespace dxvk {
|
||||
VkPolygonMode polygonMode,
|
||||
VkCullModeFlags cullMode,
|
||||
VkFrontFace frontFace,
|
||||
uint32_t viewportCount,
|
||||
VkSampleCountFlags sampleCount,
|
||||
VkConservativeRasterizationModeEXT conservativeMode)
|
||||
: m_depthClipEnable (uint32_t(depthClipEnable)),
|
||||
m_depthBiasEnable (uint32_t(depthBiasEnable)),
|
||||
m_polygonMode (uint32_t(polygonMode)),
|
||||
m_cullMode (uint32_t(cullMode)),
|
||||
m_frontFace (uint32_t(frontFace)),
|
||||
m_viewportCount (uint32_t(viewportCount)),
|
||||
m_sampleCount (uint32_t(sampleCount)),
|
||||
m_conservativeMode(uint32_t(conservativeMode)),
|
||||
: m_depthClipEnable (uint16_t(depthClipEnable)),
|
||||
m_depthBiasEnable (uint16_t(depthBiasEnable)),
|
||||
m_polygonMode (uint16_t(polygonMode)),
|
||||
m_cullMode (uint16_t(cullMode)),
|
||||
m_frontFace (uint16_t(frontFace)),
|
||||
m_sampleCount (uint16_t(sampleCount)),
|
||||
m_conservativeMode(uint16_t(conservativeMode)),
|
||||
m_reserved (0) { }
|
||||
|
||||
VkBool32 depthClipEnable() const {
|
||||
@ -256,10 +254,6 @@ namespace dxvk {
|
||||
return VkFrontFace(m_frontFace);
|
||||
}
|
||||
|
||||
uint32_t viewportCount() const {
|
||||
return m_viewportCount;
|
||||
}
|
||||
|
||||
VkSampleCountFlags sampleCount() const {
|
||||
return VkSampleCountFlags(m_sampleCount);
|
||||
}
|
||||
@ -268,21 +262,16 @@ namespace dxvk {
|
||||
return VkConservativeRasterizationModeEXT(m_conservativeMode);
|
||||
}
|
||||
|
||||
void setViewportCount(uint32_t viewportCount) {
|
||||
m_viewportCount = viewportCount;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
uint32_t m_depthClipEnable : 1;
|
||||
uint32_t m_depthBiasEnable : 1;
|
||||
uint32_t m_polygonMode : 2;
|
||||
uint32_t m_cullMode : 2;
|
||||
uint32_t m_frontFace : 1;
|
||||
uint32_t m_viewportCount : 5;
|
||||
uint32_t m_sampleCount : 5;
|
||||
uint32_t m_conservativeMode : 2;
|
||||
uint32_t m_reserved : 13;
|
||||
uint16_t m_depthClipEnable : 1;
|
||||
uint16_t m_depthBiasEnable : 1;
|
||||
uint16_t m_polygonMode : 2;
|
||||
uint16_t m_cullMode : 2;
|
||||
uint16_t m_frontFace : 1;
|
||||
uint16_t m_sampleCount : 5;
|
||||
uint16_t m_conservativeMode : 2;
|
||||
uint16_t m_reserved : 2;
|
||||
|
||||
};
|
||||
|
||||
|
@ -62,6 +62,20 @@ namespace dxvk {
|
||||
return read(data);
|
||||
}
|
||||
|
||||
bool read(DxvkRsInfo& data, uint32_t version) {
|
||||
if (version < 13) {
|
||||
DxvkRsInfoV12 v12;
|
||||
|
||||
if (!read(v12))
|
||||
return false;
|
||||
|
||||
data = v12.convert();
|
||||
return true;
|
||||
}
|
||||
|
||||
return read(data);
|
||||
}
|
||||
|
||||
bool read(DxvkRtInfo& data, uint32_t version) {
|
||||
// v12 introduced this field
|
||||
if (version < 12)
|
||||
|
@ -51,7 +51,7 @@ namespace dxvk {
|
||||
*/
|
||||
struct DxvkStateCacheHeader {
|
||||
char magic[4] = { 'D', 'X', 'V', 'K' };
|
||||
uint32_t version = 12;
|
||||
uint32_t version = 13;
|
||||
uint32_t entrySize = 0; /* no longer meaningful */
|
||||
};
|
||||
|
||||
@ -123,4 +123,30 @@ namespace dxvk {
|
||||
}
|
||||
};
|
||||
|
||||
class DxvkRsInfoV12 {
|
||||
|
||||
public:
|
||||
|
||||
uint32_t m_depthClipEnable : 1;
|
||||
uint32_t m_depthBiasEnable : 1;
|
||||
uint32_t m_polygonMode : 2;
|
||||
uint32_t m_cullMode : 2;
|
||||
uint32_t m_frontFace : 1;
|
||||
uint32_t m_viewportCount : 5;
|
||||
uint32_t m_sampleCount : 5;
|
||||
uint32_t m_conservativeMode : 2;
|
||||
uint32_t m_reserved : 13;
|
||||
|
||||
DxvkRsInfo convert() const {
|
||||
return DxvkRsInfo(
|
||||
VkBool32(m_depthClipEnable),
|
||||
VkBool32(m_depthBiasEnable),
|
||||
VkPolygonMode(m_polygonMode),
|
||||
VkCullModeFlags(m_cullMode),
|
||||
VkFrontFace(m_frontFace),
|
||||
VkSampleCountFlags(m_sampleCount),
|
||||
VkConservativeRasterizationModeEXT(m_conservativeMode));
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user