1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

[dxvk] Optimize retrieval of dynamic buffer offsets

This commit is contained in:
Philip Rebohle 2018-09-20 15:19:33 +02:00
parent f61ff5d345
commit 2eda95f61a
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
3 changed files with 31 additions and 1 deletions

View File

@ -80,6 +80,16 @@ namespace dxvk {
return m_physSlice.getDescriptor(offset, length, keepOffset);
}
/**
* \brief Retrieves dynamic offset
*
* \param [in] offset Offset into the buffer
* \returns Physical buffer slice offset
*/
VkDeviceSize getDynamicOffset(VkDeviceSize offset) const {
return m_physSlice.getDynamicOffset(offset);
}
/**
* \brief Underlying buffer resource
*
@ -270,6 +280,16 @@ namespace dxvk {
return m_buffer->getDescriptor(m_offset, m_length, keepOffset);
}
/**
* \brief Retrieves dynamic offset
*
* Used for descriptor set binding.
* \returns Buffer slice offset
*/
VkDeviceSize getDynamicOffset() const {
return m_buffer->getDynamicOffset(m_offset);
}
/**
* \brief Pointer to mapped memory region
*

View File

@ -197,6 +197,16 @@ namespace dxvk {
return m_buffer->getDescriptor(offset, length);
}
/**
* \brief Retrieves dynamic offset
*
* \param [in] offset Offset into the slice
* \returns Physical buffer slice offset
*/
VkDeviceSize getDynamicOffset(VkDeviceSize offset) const {
return m_offset + offset;
}
/**
* \brief Map pointer
*

View File

@ -2305,7 +2305,7 @@ namespace dxvk {
const auto& res = m_rc[binding.slot];
m_descOffsets[i] = res.bufferSlice.defined()
? res.bufferSlice.physicalSlice().offset()
? res.bufferSlice.getDynamicOffset()
: 0;
}