mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Support new query implementation
This commit is contained in:
parent
a8144370c8
commit
e5441e841f
@ -98,6 +98,16 @@ namespace dxvk {
|
|||||||
m_queries.disableQuery(m_cmd, query);
|
m_queries.disableQuery(m_cmd, query);
|
||||||
query.query->endRecording(query.revision);
|
query.query->endRecording(query.revision);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxvkContext::beginQuery(const Rc<DxvkGpuQuery>& query) {
|
||||||
|
m_queryManager.enableQuery(m_cmd, query);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxvkContext::endQuery(const Rc<DxvkGpuQuery>& query) {
|
||||||
|
m_queryManager.disableQuery(m_cmd, query);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DxvkContext::bindRenderTargets(
|
void DxvkContext::bindRenderTargets(
|
||||||
@ -1116,11 +1126,17 @@ namespace dxvk {
|
|||||||
m_queries.beginQueries(m_cmd,
|
m_queries.beginQueries(m_cmd,
|
||||||
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
|
m_queryManager.beginQueries(m_cmd,
|
||||||
|
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
m_cmd->cmdDispatch(x, y, z);
|
m_cmd->cmdDispatch(x, y, z);
|
||||||
|
|
||||||
m_queries.endQueries(m_cmd,
|
m_queries.endQueries(m_cmd,
|
||||||
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
|
m_queryManager.endQueries(m_cmd,
|
||||||
|
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
this->commitComputePostBarriers();
|
this->commitComputePostBarriers();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1144,6 +1160,9 @@ namespace dxvk {
|
|||||||
m_queries.beginQueries(m_cmd,
|
m_queries.beginQueries(m_cmd,
|
||||||
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
|
m_queryManager.beginQueries(m_cmd,
|
||||||
|
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
m_cmd->cmdDispatchIndirect(
|
m_cmd->cmdDispatchIndirect(
|
||||||
bufferSlice.handle,
|
bufferSlice.handle,
|
||||||
bufferSlice.offset);
|
bufferSlice.offset);
|
||||||
@ -1151,6 +1170,9 @@ namespace dxvk {
|
|||||||
m_queries.endQueries(m_cmd,
|
m_queries.endQueries(m_cmd,
|
||||||
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
|
m_queryManager.endQueries(m_cmd,
|
||||||
|
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
this->commitComputePostBarriers();
|
this->commitComputePostBarriers();
|
||||||
|
|
||||||
m_barriers.accessBuffer(bufferSlice,
|
m_barriers.accessBuffer(bufferSlice,
|
||||||
@ -1790,6 +1812,11 @@ namespace dxvk {
|
|||||||
|
|
||||||
query.query->endRecording(query.revision);
|
query.query->endRecording(query.revision);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DxvkContext::writeTimestamp(const Rc<DxvkGpuQuery>& query) {
|
||||||
|
m_queryManager.writeTimestamp(m_cmd, query);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DxvkContext::clearImageViewFb(
|
void DxvkContext::clearImageViewFb(
|
||||||
@ -2439,6 +2466,9 @@ namespace dxvk {
|
|||||||
// Begin occlusion queries
|
// Begin occlusion queries
|
||||||
m_queries.beginQueries(m_cmd, VK_QUERY_TYPE_OCCLUSION);
|
m_queries.beginQueries(m_cmd, VK_QUERY_TYPE_OCCLUSION);
|
||||||
m_queries.beginQueries(m_cmd, VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
m_queries.beginQueries(m_cmd, VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
|
m_queryManager.beginQueries(m_cmd, VK_QUERY_TYPE_OCCLUSION);
|
||||||
|
m_queryManager.beginQueries(m_cmd, VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2455,6 +2485,9 @@ namespace dxvk {
|
|||||||
m_queries.endQueries(m_cmd, VK_QUERY_TYPE_OCCLUSION);
|
m_queries.endQueries(m_cmd, VK_QUERY_TYPE_OCCLUSION);
|
||||||
m_queries.endQueries(m_cmd, VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
m_queries.endQueries(m_cmd, VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
|
m_queryManager.endQueries(m_cmd, VK_QUERY_TYPE_OCCLUSION);
|
||||||
|
m_queryManager.endQueries(m_cmd, VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
|
|
||||||
this->renderPassUnbindFramebuffer();
|
this->renderPassUnbindFramebuffer();
|
||||||
this->unbindGraphicsPipeline();
|
this->unbindGraphicsPipeline();
|
||||||
|
|
||||||
@ -2644,6 +2677,9 @@ namespace dxvk {
|
|||||||
|
|
||||||
m_queries.beginQueries(m_cmd,
|
m_queries.beginQueries(m_cmd,
|
||||||
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT);
|
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT);
|
||||||
|
|
||||||
|
m_queryManager.beginQueries(m_cmd,
|
||||||
|
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2668,6 +2704,9 @@ namespace dxvk {
|
|||||||
m_queries.endQueries(m_cmd,
|
m_queries.endQueries(m_cmd,
|
||||||
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT);
|
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT);
|
||||||
|
|
||||||
|
m_queryManager.endQueries(m_cmd,
|
||||||
|
VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT);
|
||||||
|
|
||||||
m_cmd->cmdEndTransformFeedback(
|
m_cmd->cmdEndTransformFeedback(
|
||||||
0, MaxNumXfbBuffers, ctrBuffers, ctrOffsets);
|
0, MaxNumXfbBuffers, ctrBuffers, ctrOffsets);
|
||||||
|
|
||||||
|
@ -84,6 +84,9 @@ namespace dxvk {
|
|||||||
void beginQuery(
|
void beginQuery(
|
||||||
const DxvkQueryRevision& query);
|
const DxvkQueryRevision& query);
|
||||||
|
|
||||||
|
void beginQuery(
|
||||||
|
const Rc<DxvkGpuQuery>& query);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Ends generating query data
|
* \brief Ends generating query data
|
||||||
* \param [in] query The query to end
|
* \param [in] query The query to end
|
||||||
@ -91,6 +94,9 @@ namespace dxvk {
|
|||||||
void endQuery(
|
void endQuery(
|
||||||
const DxvkQueryRevision& query);
|
const DxvkQueryRevision& query);
|
||||||
|
|
||||||
|
void endQuery(
|
||||||
|
const Rc<DxvkGpuQuery>& query);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Sets render targets
|
* \brief Sets render targets
|
||||||
*
|
*
|
||||||
@ -789,6 +795,9 @@ namespace dxvk {
|
|||||||
void writeTimestamp(
|
void writeTimestamp(
|
||||||
const DxvkQueryRevision& query);
|
const DxvkQueryRevision& query);
|
||||||
|
|
||||||
|
void writeTimestamp(
|
||||||
|
const Rc<DxvkGpuQuery>& query);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
const Rc<DxvkDevice> m_device;
|
const Rc<DxvkDevice> m_device;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user