From fa988be4aa69cc08b5f4e222dbb836361a1d9b80 Mon Sep 17 00:00:00 2001 From: Joshua Ashton Date: Fri, 5 Jun 2020 02:40:41 +0100 Subject: [PATCH] [d3d9] Improve MarkAllForUpload implementation Only mark the bits we are actually using. --- src/d3d9/d3d9_common_texture.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/d3d9/d3d9_common_texture.h b/src/d3d9/d3d9_common_texture.h index df3f3cd4a..50cbc8a24 100644 --- a/src/d3d9/d3d9_common_texture.h +++ b/src/d3d9/d3d9_common_texture.h @@ -356,10 +356,11 @@ namespace dxvk { void SetNeedsUpload(UINT Subresource, bool upload) { m_needsUpload.set(Subresource, upload); } void MarkAllForUpload() { - for (uint32_t i = 0; i < m_needsUpload.dwordCount() - 1; i++) + uint32_t subresourceDwords = CountSubresources() / 32; + for (uint32_t i = 0; i < subresourceDwords; i++) m_needsUpload.dword(i) = std::numeric_limits::max(); - m_needsUpload.dword(m_needsUpload.dwordCount() - 1) = CountSubresources() % 32; + m_needsUpload.dword(subresourceDwords) = CountSubresources() % 32; } bool NeedsAnyUpload() { return m_needsUpload.any(); } void ClearNeedsUpload() { return m_needsUpload.clearAll(); }