[dxvk] Do not discard sparse buffers

This would only blow up.
This commit is contained in:
Philip Rebohle 2022-08-21 20:51:54 +02:00
parent dd54de4d97
commit 6f216f9df4
1 changed files with 6 additions and 1 deletions

View File

@ -1170,7 +1170,8 @@ namespace dxvk {
void DxvkContext::discardBuffer(
const Rc<DxvkBuffer>& buffer) {
if (buffer->memFlags() & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)
if ((buffer->memFlags() & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)
|| (buffer->info().flags & VK_BUFFER_CREATE_SPARSE_BINDING_BIT))
return;
if (m_execBarriers.isBufferDirty(buffer->getSliceHandle(), DxvkAccess::Write))
@ -5745,6 +5746,10 @@ namespace dxvk {
if (buffer->memFlags() & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT)
return false;
// Don't discard sparse buffers
if (buffer->info().flags & VK_BUFFER_CREATE_SPARSE_BINDING_BIT)
return false;
// Suspend the current render pass if transform feedback is active prior to
// invalidating the buffer, since otherwise we may invalidate a bound buffer.
if ((buffer->info().usage & VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT)