mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-08 19:54:15 +01:00
[dxvk] Use out-of-order transfer helper in clearBuffer
This commit is contained in:
parent
76db753024
commit
c02b5ed10b
@ -218,18 +218,17 @@ namespace dxvk {
|
|||||||
VkDeviceSize offset,
|
VkDeviceSize offset,
|
||||||
VkDeviceSize length,
|
VkDeviceSize length,
|
||||||
uint32_t value) {
|
uint32_t value) {
|
||||||
bool replaceBuffer = this->tryInvalidateDeviceLocalBuffer(buffer, length);
|
DxvkCmdBuffer cmdBuffer = DxvkCmdBuffer::InitBuffer;
|
||||||
auto bufferSlice = buffer->getSliceHandle(offset, align(length, sizeof(uint32_t)));
|
|
||||||
|
|
||||||
if (!replaceBuffer) {
|
if (!prepareOutOfOrderTransfer(buffer, offset, length, DxvkAccess::Write)) {
|
||||||
this->spillRenderPass(true);
|
spillRenderPass(true);
|
||||||
|
|
||||||
flushPendingAccesses(*buffer, offset, length, DxvkAccess::Write);
|
flushPendingAccesses(*buffer, offset, length, DxvkAccess::Write);
|
||||||
|
|
||||||
|
cmdBuffer = DxvkCmdBuffer::ExecBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
DxvkCmdBuffer cmdBuffer = replaceBuffer
|
auto bufferSlice = buffer->getSliceHandle(offset, align(length, sizeof(uint32_t)));
|
||||||
? DxvkCmdBuffer::InitBuffer
|
|
||||||
: DxvkCmdBuffer::ExecBuffer;
|
|
||||||
|
|
||||||
if (length > sizeof(value)) {
|
if (length > sizeof(value)) {
|
||||||
m_cmd->cmdFillBuffer(cmdBuffer,
|
m_cmd->cmdFillBuffer(cmdBuffer,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user