File tree Expand file tree Collapse file tree 1 file changed +7
-0
lines changed
Expand file tree Collapse file tree 1 file changed +7
-0
lines changed Original file line number Diff line number Diff line change @@ -1052,6 +1052,13 @@ void TextureCache::ScaledResolveGlobalWatchCallback(
10521052 uint32_t resolve_l2_block_last = resolve_block_last >> 6 ;
10531053 for (uint32_t i = resolve_l2_block_first; i <= resolve_l2_block_last; ++i) {
10541054 uint64_t resolve_l2_block = scaled_resolve_pages_l2_[i];
1055+ // Pre-mask to only process blocks within the write range.
1056+ if (i == resolve_l2_block_first) {
1057+ resolve_l2_block &= ~((UINT64_C (1 ) << (resolve_block_first & 63 )) - 1 );
1058+ }
1059+ if (i == resolve_l2_block_last && (resolve_block_last & 63 ) != 63 ) {
1060+ resolve_l2_block &= (UINT64_C (1 ) << ((resolve_block_last & 63 ) + 1 )) - 1 ;
1061+ }
10551062 uint32_t resolve_block_relative_index;
10561063 while (
10571064 xe::bit_scan_forward (resolve_l2_block, &resolve_block_relative_index)) {
You can’t perform that action at this time.
0 commit comments