1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-31 14:52:11 +01:00

[dxvk] Do not track buffer view objects

No longer necessary as they have the same lifetime as the
parent buffer now. Only track the buffers themselves.
This commit is contained in:
Philip Rebohle 2024-09-23 22:15:19 +02:00 committed by Philip Rebohle
parent 088ba404a6
commit 93547aec8d
2 changed files with 4 additions and 14 deletions

View File

@ -108,7 +108,7 @@ namespace dxvk {
/** /**
* \brief Virtual buffer view * \brief Virtual buffer view
*/ */
class DxvkBufferView : public DxvkResource { class DxvkBufferView {
public: public:

View File

@ -307,7 +307,6 @@ namespace dxvk {
bufferView->buffer()->info().stages, bufferView->buffer()->info().stages,
bufferView->buffer()->info().access); bufferView->buffer()->info().access);
m_cmd->trackResource<DxvkAccess::None>(bufferView);
m_cmd->trackResource<DxvkAccess::Write>(bufferView->buffer()); m_cmd->trackResource<DxvkAccess::Write>(bufferView->buffer());
} }
@ -991,9 +990,6 @@ namespace dxvk {
// Track all involved resources // Track all involved resources
m_cmd->trackResource<DxvkAccess::Write>(dstBuffer); m_cmd->trackResource<DxvkAccess::Write>(dstBuffer);
m_cmd->trackResource<DxvkAccess::Read>(srcBuffer); m_cmd->trackResource<DxvkAccess::Read>(srcBuffer);
m_cmd->trackResource<DxvkAccess::None>(dstView);
m_cmd->trackResource<DxvkAccess::None>(srcView);
} }
@ -1185,9 +1181,7 @@ namespace dxvk {
// Track all involved resources // Track all involved resources
m_cmd->trackResource<DxvkAccess::Write>(dstImage); m_cmd->trackResource<DxvkAccess::Write>(dstImage);
m_cmd->trackResource<DxvkAccess::Read>(srcBuffer); m_cmd->trackResource<DxvkAccess::Read>(srcBuffer);
m_cmd->trackResource<DxvkAccess::Read>(tmpBuffer);
m_cmd->trackResource<DxvkAccess::None>(tmpBufferViewD);
m_cmd->trackResource<DxvkAccess::None>(tmpBufferViewS);
} }
@ -5324,10 +5318,8 @@ namespace dxvk {
if (res.bufferView != nullptr) { if (res.bufferView != nullptr) {
descriptorInfo.texelBuffer = res.bufferView->handle(); descriptorInfo.texelBuffer = res.bufferView->handle();
if (m_rcTracked.set(binding.resourceBinding)) { if (m_rcTracked.set(binding.resourceBinding))
m_cmd->trackResource<DxvkAccess::None>(res.bufferView);
m_cmd->trackResource<DxvkAccess::Read>(res.bufferView->buffer()); m_cmd->trackResource<DxvkAccess::Read>(res.bufferView->buffer());
}
} else { } else {
descriptorInfo.texelBuffer = VK_NULL_HANDLE; descriptorInfo.texelBuffer = VK_NULL_HANDLE;
} }
@ -5339,10 +5331,8 @@ namespace dxvk {
if (res.bufferView != nullptr) { if (res.bufferView != nullptr) {
descriptorInfo.texelBuffer = res.bufferView->handle(); descriptorInfo.texelBuffer = res.bufferView->handle();
if (m_rcTracked.set(binding.resourceBinding)) { if (m_rcTracked.set(binding.resourceBinding))
m_cmd->trackResource<DxvkAccess::None>(res.bufferView);
m_cmd->trackResource<DxvkAccess::Write>(res.bufferView->buffer()); m_cmd->trackResource<DxvkAccess::Write>(res.bufferView->buffer());
}
} else { } else {
descriptorInfo.texelBuffer = VK_NULL_HANDLE; descriptorInfo.texelBuffer = VK_NULL_HANDLE;
} }