Browse Source
Merge pull request #13171 from liamwhite/fake-address
texture_cache: do not track invalid addresses
pull/15/merge
liamwhite
2 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with
6 additions and
2 deletions
-
src/video_core/texture_cache/texture_cache.h
|
|
|
@ -2114,7 +2114,9 @@ void TextureCache<P>::TrackImage(ImageBase& image, ImageId image_id) { |
|
|
|
ASSERT(False(image.flags & ImageFlagBits::Tracked)); |
|
|
|
image.flags |= ImageFlagBits::Tracked; |
|
|
|
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; |
|
|
|
} |
|
|
|
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)); |
|
|
|
image.flags &= ~ImageFlagBits::Tracked; |
|
|
|
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; |
|
|
|
} |
|
|
|
ASSERT(True(image.flags & ImageFlagBits::Registered)); |
|
|
|
|