1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-03 04:24:11 +01:00

[dxvk] Use out-of-order transfer helper in updateBuffer

This commit is contained in:
Philip Rebohle 2024-10-28 03:21:58 +01:00
parent cf2c81f5ef
commit c402c62fde

View File

@ -1997,18 +1997,17 @@ namespace dxvk {
VkDeviceSize offset,
VkDeviceSize size,
const void* data) {
bool replaceBuffer = this->tryInvalidateDeviceLocalBuffer(buffer, size);
auto bufferSlice = buffer->getSliceHandle(offset, size);
DxvkCmdBuffer cmdBuffer = DxvkCmdBuffer::InitBuffer;
if (!replaceBuffer) {
this->spillRenderPass(true);
if (!prepareOutOfOrderTransfer(buffer, offset, size, DxvkAccess::Write)) {
spillRenderPass(true);
flushPendingAccesses(*buffer, offset, size, DxvkAccess::Write);
cmdBuffer = DxvkCmdBuffer::ExecBuffer;
}
DxvkCmdBuffer cmdBuffer = replaceBuffer
? DxvkCmdBuffer::InitBuffer
: DxvkCmdBuffer::ExecBuffer;
auto bufferSlice = buffer->getSliceHandle(offset, size);
m_cmd->cmdUpdateBuffer(cmdBuffer,
bufferSlice.handle,