mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	Merge pull request #13171 from liamwhite/fake-address
texture_cache: do not track invalid addresses
This commit is contained in:
		@@ -2114,7 +2114,9 @@ void TextureCache<P>::TrackImage(ImageBase& image, ImageId image_id) {
 | 
				
			|||||||
    ASSERT(False(image.flags & ImageFlagBits::Tracked));
 | 
					    ASSERT(False(image.flags & ImageFlagBits::Tracked));
 | 
				
			||||||
    image.flags |= ImageFlagBits::Tracked;
 | 
					    image.flags |= ImageFlagBits::Tracked;
 | 
				
			||||||
    if (False(image.flags & ImageFlagBits::Sparse)) {
 | 
					    if (False(image.flags & ImageFlagBits::Sparse)) {
 | 
				
			||||||
        device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, 1);
 | 
					        if (image.cpu_addr < ~(1ULL << 40)) {
 | 
				
			||||||
 | 
					            device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, 1);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (True(image.flags & ImageFlagBits::Registered)) {
 | 
					    if (True(image.flags & ImageFlagBits::Registered)) {
 | 
				
			||||||
@@ -2140,7 +2142,9 @@ void TextureCache<P>::UntrackImage(ImageBase& image, ImageId image_id) {
 | 
				
			|||||||
    ASSERT(True(image.flags & ImageFlagBits::Tracked));
 | 
					    ASSERT(True(image.flags & ImageFlagBits::Tracked));
 | 
				
			||||||
    image.flags &= ~ImageFlagBits::Tracked;
 | 
					    image.flags &= ~ImageFlagBits::Tracked;
 | 
				
			||||||
    if (False(image.flags & ImageFlagBits::Sparse)) {
 | 
					    if (False(image.flags & ImageFlagBits::Sparse)) {
 | 
				
			||||||
        device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, -1);
 | 
					        if (image.cpu_addr < ~(1ULL << 40)) {
 | 
				
			||||||
 | 
					            device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, -1);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    ASSERT(True(image.flags & ImageFlagBits::Registered));
 | 
					    ASSERT(True(image.flags & ImageFlagBits::Registered));
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user