diff options
| -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() { | |||
| 850 | template <class P> | 850 | template <class P> |
| 851 | ImageId TextureCache<P>::DmaImageId(const Tegra::DMA::ImageOperand& operand, bool is_upload) { | 851 | ImageId TextureCache<P>::DmaImageId(const Tegra::DMA::ImageOperand& operand, bool is_upload) { |
| 852 | const ImageInfo dst_info(operand); | 852 | const ImageInfo dst_info(operand); |
| 853 | const ImageId dst_id = FindDMAImage(dst_info, operand.address); | 853 | const ImageId image_id = FindDMAImage(dst_info, operand.address); |
| 854 | if (!dst_id) { | 854 | if (!image_id) { |
| 855 | return NULL_IMAGE_ID; | ||
| 856 | } | ||
| 857 | auto& image = slot_images[dst_id]; | ||
| 858 | if (False(image.flags & ImageFlagBits::GpuModified)) { | ||
| 859 | // No need to waste time on an image that's synced with guest | ||
| 860 | return NULL_IMAGE_ID; | 855 | return NULL_IMAGE_ID; |
| 861 | } | 856 | } |
| 857 | auto& image = slot_images[image_id]; | ||
| 862 | if (!is_upload && !image.info.dma_downloaded) { | 858 | if (!is_upload && !image.info.dma_downloaded) { |
| 863 | // Force a full sync. | 859 | // Force a full sync. |
| 864 | image.info.dma_downloaded = true; | 860 | image.info.dma_downloaded = true; |
| @@ -868,7 +864,7 @@ ImageId TextureCache<P>::DmaImageId(const Tegra::DMA::ImageOperand& operand, boo | |||
| 868 | if (!base) { | 864 | if (!base) { |
| 869 | return NULL_IMAGE_ID; | 865 | return NULL_IMAGE_ID; |
| 870 | } | 866 | } |
| 871 | return dst_id; | 867 | return image_id; |
| 872 | } | 868 | } |
| 873 | 869 | ||
| 874 | template <class P> | 870 | template <class P> |