Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enforce limits on tile GPU memory usage (bp #688) #716

Merged
merged 1 commit into from
Feb 4, 2021

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Feb 4, 2021

This is an automatic backport of pull request #688 done by Mergify.

Cherry-pick of d661abc has failed:

On branch mergify/bp/release/2.12.x/pr-688
Your branch is up to date with 'origin/release/2.12.x'.

You are currently cherry-picking commit d661abc05b.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   common/api/bentleyjs-core.api.md
	modified:   common/api/frontend-devtools.api.md
	modified:   common/api/imodeljs-frontend.api.md
	modified:   common/api/summary/bentleyjs-core.exports.csv
	modified:   common/api/summary/frontend-devtools.exports.csv
	modified:   common/api/summary/imodeljs-frontend.exports.csv
	modified:   common/api/summary/webgl-compatibility.exports.csv
	modified:   common/api/webgl-compatibility.api.md
	new file:   common/changes/@bentley/bentleyjs-core/gpu-memory-limits_2021-01-26-15-27.json
	new file:   common/changes/@bentley/frontend-devtools/gpu-memory-limits_2021-01-26-15-27.json
	new file:   common/changes/@bentley/frontend-devtools/gpu-memory-limits_2021-02-03-23-21.json
	new file:   common/changes/@bentley/hypermodeling-frontend/gpu-memory-limits_2021-01-26-15-27.json
	new file:   common/changes/@bentley/imodeljs-frontend/gpu-memory-limits_2021-01-26-15-27.json
	new file:   common/changes/@bentley/imodeljs-frontend/gpu-memory-limits_2021-02-03-23-21.json
	new file:   common/changes/@bentley/webgl-compatibility/gpu-memory-limits_2021-02-03-23-21.json
	new file:   core/bentley/src/OrderedSet.ts
	modified:   core/bentley/src/bentleyjs-core.ts
	modified:   core/frontend-devtools/README.md
	modified:   core/frontend-devtools/public/locales/en/FrontendDevTools.json
	modified:   core/frontend-devtools/src/FrontEndDevTools.ts
	modified:   core/frontend-devtools/src/frontend-devtools.ts
	new file:   core/frontend-devtools/src/tools/SetGpuMemoryLimitTool.ts
	modified:   core/frontend-devtools/src/widgets/DiagnosticsPanel.ts
	modified:   core/frontend-devtools/src/widgets/MemoryTracker.ts
	new file:   core/frontend-devtools/src/widgets/TileMemoryBreakdown.ts
	modified:   core/frontend/src/DrawingViewState.ts
	modified:   core/frontend/src/IModelApp.ts
	modified:   core/frontend/src/SheetViewState.ts
	modified:   core/frontend/src/ViewManager.ts
	modified:   core/frontend/src/ViewState.ts
	modified:   core/frontend/src/Viewport.ts
	new file:   core/frontend/src/test/tile/LRUTileList.test.ts
	new file:   core/frontend/src/test/tile/TileAdmin.test.ts
	new file:   core/frontend/src/test/tile/ViewportIdSet.test.ts
	modified:   core/frontend/src/tile/ClassifierTileTree.ts
	new file:   core/frontend/src/tile/DisclosedTileTreeSet.ts
	modified:   core/frontend/src/tile/IModelTile.ts
	modified:   core/frontend/src/tile/IModelTileTree.ts
	new file:   core/frontend/src/tile/LRUTileList.ts
	modified:   core/frontend/src/tile/OrbitGtTileTree.ts
	modified:   core/frontend/src/tile/RealityModelTileTree.ts
	modified:   core/frontend/src/tile/RealityTileTree.ts
	modified:   core/frontend/src/tile/Tile.ts
	modified:   core/frontend/src/tile/TileAdmin.ts
	modified:   core/frontend/src/tile/TileTree.ts
	modified:   core/frontend/src/tile/TileTreeReference.ts
	modified:   core/frontend/src/tile/internal.ts
	modified:   core/frontend/src/tile/map/ImageryTileTree.ts
	modified:   core/frontend/src/tile/map/MapTile.ts
	modified:   core/frontend/src/tile/map/MapTileTree.ts
	modified:   core/hypermodeling/src/SectionGraphicsProvider.ts
	modified:   core/webgl-compatibility/src/Capabilities.ts
	modified:   full-stack-tests/core/src/frontend/standalone/tile/TileTree.test.ts
	modified:   full-stack-tests/core/src/frontend/standalone/tile/Unloading.test.ts

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   docs/changehistory/NextVersion.md

To fixup this pull request, you can check out it locally. See documentation: https://help.github.com/articles/checking-out-pull-requests-locally/


Mergify commands and options

More conditions and actions can be found in the documentation.

You can also trigger Mergify actions by commenting on this pull request:

  • @Mergifyio refresh will re-evaluate the rules
  • @Mergifyio rebase will rebase this PR on its base branch
  • @Mergifyio update will merge the base branch into this PR
  • @Mergifyio backport <destination> will backport this PR on <destination> branch

Additionally, on Mergify dashboard you can:

  • look at your merge queues
  • generate the Mergify configuration with the config editor.

Finally, you can contact us on https://mergify.io/

* OrderedSet; DisclosedTileTreeSet.

* Do not override Tile.collectStatistics - that's what _collectStatistics is for.

* WIP track tile memory by category.

* TileMemoryBreakdown

* Memory breakdown UI.

* docs etc

* Test proving we currently reload parent tile content when children are selectable (fails).

* If parent tile's content is loaded and then later unloaded to converse memory, don't reload it if children are selectable.

* MemoryTracker can display stats for selected tiles.

* WIP track tile memory usage.

* ViewportIdSet

* Test ViewportIdSet.

* WIP test LRUTileList.

* Fix node insertion/removal.

* More tests.

* Fix clearSelectedForViewport; tests.

* docs clarification

* docs

* Remove redundant and now-unwieldy TileAdmin abstract base class.

* TileAdmin has a LRUTileList.

* Hook up memory limits in TileAdmin.

* typo

* wip more tests.

* More tests.

* fix merge.

* `fdt tile max mem` key-in

* fix key-in docs.

* Do not discard contents of tiles we want to draw but can't yet.

* Iterators over LRUTileList partitions.

* Additional info in TileMemoryBreakdown.

* Map tiles opt-out of memory limits.

* TileAdmin docs; GpuMemoryLimit(s)

* doc.

* GpuMemoryLimits replace mobileExpirationMemoryThreshold and TileTree.forcePrune.

* Add tests and fix bugs revealed thereby.

* More tests => more bug fixes.

* Adjust key-in for GpuMemoryLimit.

* docs.

* lint

* extract-api

* NextVersion.md

* broken doc link

* fix outdated tool Id

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit d661abc)

# Conflicts:
#	docs/changehistory/NextVersion.md
@mergify mergify bot requested review from bbastings, pmconne and a team as code owners February 4, 2021 22:00
@mergify mergify bot added the conflicts label Feb 4, 2021
@pmconne pmconne merged commit 6d3ef0e into release/2.12.x Feb 4, 2021
@pmconne pmconne deleted the mergify/bp/release/2.12.x/pr-688 branch February 4, 2021 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant