summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-03-20 23:09:17 +0200
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-03-24 02:14:26 +0200
commit0084a93bc4019be2e1ba9aae715a2e927981900b (patch)
tree50209b3f34e88b3d07cf8098e8dd988109e68385
parent689123f10a6ddf1b8de5f88c40d23b3a57c3f3f9 (diff)
#5558 Don't spam server with requests we don't need
Animation takes less than a second, regions take over a second to load. Don't request transitionarry regions, got for target.
-rw-r--r--indra/newview/llworldmap.cpp4
-rwxr-xr-xindra/newview/llworldmapview.cpp7
2 files changed, 7 insertions, 4 deletions
diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp
index 798462748d..c7c8404eb9 100644
--- a/indra/newview/llworldmap.cpp
+++ b/indra/newview/llworldmap.cpp
@@ -623,7 +623,7 @@ void LLWorldMap::updateRegions(S32 x0, S32 y0, S32 x1, S32 y1)
block_y0 = llmax(block_y0, 0);
block_y1 = llmin(block_y1, MAP_BLOCK_RES - 1);
- // Process blocks, grouping unloaded blocks into larger requests up to MAX_BLOCKS
+ // Process blocks, grouping unloaded blocks into larger requests up to MAX_TOTAL_BLOCKS
for (S32 block_y = block_y0; block_y <= block_y1; )
{
for (S32 block_x = block_x0; block_x <= block_x1; )
@@ -651,7 +651,7 @@ void LLWorldMap::updateRegions(S32 x0, S32 y0, S32 x1, S32 y1)
// Expand height (check vertical contiguous unloaded blocks)
while (request_height < MAX_BLOCKS_PER_SIDE &&
(block_y + request_height) <= block_y1 &&
- (request_width * request_height < MAX_TOTAL_BLOCKS)) // Don't exceed 64 total regions
+ (request_width * (request_height + 1) <= MAX_TOTAL_BLOCKS)) // Don't exceed 64 total regions
{
bool can_expand = true;
// Width can be >1, loop over blocks in the line
diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index 1be6a6cfff..8e7b86eb00 100755
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -1737,8 +1737,11 @@ void LLWorldMapView::updateVisibleBlocks()
const F32 half_height = F32(height) / 2.0f;
// Compute center into sim grid coordinates
- S32 world_center_x = S32((-mPanX / mMapScale) + (camera_global.mdV[0] / REGION_WIDTH_METERS));
- S32 world_center_y = S32((-mPanY / mMapScale) + (camera_global.mdV[1] / REGION_WIDTH_METERS));
+ // mPanX and mPanY values can be obsolete as they are used for
+ // animation and there is no point loading regions we will see
+ // so briefly, they won't have time to load. Use target directly.
+ S32 world_center_x = S32((-mTargetPanX / mMapScale) + (camera_global.mdV[0] / REGION_WIDTH_METERS));
+ S32 world_center_y = S32((-mTargetPanY / mMapScale) + (camera_global.mdV[1] / REGION_WIDTH_METERS));
// Compute the boundaries into sim grid coordinates
S32 world_left = world_center_x - S32(half_width / mMapScale) - 1;