mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-13 19:29:14 +01:00
[dxvk] Add support for transform feedback queries
This commit is contained in:
parent
4bdf6daa39
commit
929b75a038
@ -2283,6 +2283,9 @@ namespace dxvk {
|
||||
|
||||
m_cmd->cmdBeginTransformFeedback(
|
||||
0, MaxNumXfbBuffers, ctrBuffers, ctrOffsets);
|
||||
|
||||
m_queries.beginQueries(m_cmd,
|
||||
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2304,6 +2307,9 @@ namespace dxvk {
|
||||
m_cmd->trackResource(physSlice.resource());
|
||||
}
|
||||
|
||||
m_queries.endQueries(m_cmd,
|
||||
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT);
|
||||
|
||||
m_cmd->cmdEndTransformFeedback(
|
||||
0, MaxNumXfbBuffers, ctrBuffers, ctrOffsets);
|
||||
|
||||
|
@ -99,6 +99,7 @@ namespace dxvk {
|
||||
this->trackQueryPool(cmd, m_occlusion);
|
||||
this->trackQueryPool(cmd, m_pipeStats);
|
||||
this->trackQueryPool(cmd, m_timestamp);
|
||||
this->trackQueryPool(cmd, m_xfbStream);
|
||||
}
|
||||
|
||||
|
||||
@ -162,6 +163,9 @@ namespace dxvk {
|
||||
|
||||
case VK_QUERY_TYPE_TIMESTAMP:
|
||||
return m_timestamp;
|
||||
|
||||
case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:
|
||||
return m_xfbStream;
|
||||
|
||||
default:
|
||||
throw DxvkError("DXVK: Invalid query type");
|
||||
@ -171,10 +175,11 @@ namespace dxvk {
|
||||
|
||||
uint32_t DxvkQueryManager::getDxvkQueryTypeBit(VkQueryType type) {
|
||||
switch (type) {
|
||||
case VK_QUERY_TYPE_OCCLUSION: return 0x01;
|
||||
case VK_QUERY_TYPE_PIPELINE_STATISTICS: return 0x02;
|
||||
case VK_QUERY_TYPE_TIMESTAMP: return 0x04;
|
||||
default: return 0;
|
||||
case VK_QUERY_TYPE_OCCLUSION: return 0x01;
|
||||
case VK_QUERY_TYPE_PIPELINE_STATISTICS: return 0x02;
|
||||
case VK_QUERY_TYPE_TIMESTAMP: return 0x04;
|
||||
case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: return 0x08;
|
||||
default: return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -101,6 +101,7 @@ namespace dxvk {
|
||||
Rc<DxvkQueryPool> m_occlusion;
|
||||
Rc<DxvkQueryPool> m_pipeStats;
|
||||
Rc<DxvkQueryPool> m_timestamp;
|
||||
Rc<DxvkQueryPool> m_xfbStream;
|
||||
|
||||
std::vector<DxvkQueryRevision> m_activeQueries;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user