fix fetch shader V_SAD_U32, video-out buffer overlap

This commit is contained in:
nmzik committed 2026-07-21 07:37:52 +02:00
1 parent aebf6b4913
commit 42f634a751
4 files changed
+52 -44

No files matched your search

@@ -2578,11 +2578,13 @@ void TextureCache::RefreshVideoOut(VideoOutVulkanImage* image, bool render_targe
if (cached.gpu_modified) {
return;
}
const auto& info = cached.video_out;
const bool image_dirty = m_memory_tracker.IsRegionCpuModified(info.address, info.size);
const bool buffer_dirty = cached.buffer_modified ||
m_buffer_cache.IsRegionCpuModified(info.address, info.size) ||
m_buffer_cache.IsRegionGpuModified(info.address, info.size);
const auto& info = cached.video_out;
const bool image_dirty = m_memory_tracker.IsRegionCpuModified(info.address, info.size);
const bool buffer_overlap = m_buffer_cache.HasPageOverlap(info.address, info.size);
const bool buffer_dirty =
cached.buffer_modified ||
(buffer_overlap && (m_buffer_cache.IsRegionCpuModified(info.address, info.size) ||
m_buffer_cache.IsRegionGpuModified(info.address, info.size)));
if (!image_dirty && !buffer_dirty) {
if (info.compression == VideoOutCompression::Uncompressed ||
CanUseVideoOutNativeWithoutUpload(info.compression, render_target, false, false)) {