diff options
| author | liamwhite <liamwhite@users.noreply.github.com> | 2023-06-07 14:03:40 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-07 14:03:40 -0400 | 
| commit | 6907d30258b64717346f82a7a5a019f5fcc37142 (patch) | |
| tree | 57d86cdaba80c1291e59705cb94df68726180e3f | |
| parent | 219bd901525c2d6d2b3c9e8296f91afd8f9aeaa0 (diff) | |
| parent | 1fc47361a12afd91d8ea0b76378e0b3d4feb93a6 (diff) | |
Merge pull request #10583 from ameerj/ill-logic
AccelerateDMA: Fix incorrect check in Buffer<->Texture copies
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 12 | 
1 files changed, 4 insertions, 8 deletions
| diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 2cf082c5d..c7f7448e9 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -850,15 +850,11 @@ void TextureCache<P>::PopAsyncFlushes() {  template <class P>  ImageId TextureCache<P>::DmaImageId(const Tegra::DMA::ImageOperand& operand, bool is_upload) {      const ImageInfo dst_info(operand); -    const ImageId dst_id = FindDMAImage(dst_info, operand.address); -    if (!dst_id) { -        return NULL_IMAGE_ID; -    } -    auto& image = slot_images[dst_id]; -    if (False(image.flags & ImageFlagBits::GpuModified)) { -        // No need to waste time on an image that's synced with guest +    const ImageId image_id = FindDMAImage(dst_info, operand.address); +    if (!image_id) {          return NULL_IMAGE_ID;      } +    auto& image = slot_images[image_id];      if (!is_upload && !image.info.dma_downloaded) {          // Force a full sync.          image.info.dma_downloaded = true; @@ -868,7 +864,7 @@ ImageId TextureCache<P>::DmaImageId(const Tegra::DMA::ImageOperand& operand, boo      if (!base) {          return NULL_IMAGE_ID;      } -    return dst_id; +    return image_id;  }  template <class P> | 
