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

v3.0.0-beta.3 (better performance, new 3D style properties, WebGL 2) #12897

Merged
merged 57 commits into from
Sep 20, 2023

Conversation

mourner
Copy link
Member

@mourner mourner commented Sep 20, 2023

See #12829 for more information about the v3 release. Changes since v3.0.0-beta.2:

✨ Features and improvements

  • ⚠️ Breaking: drop support for WebGL 1. WebGL 2 support is now required to use GL JS v3 (thankfully it is now universally supported across browsers).
  • Add support for fading out 3D layers in the distance with fill-extrusion-cutoff-fade-range and model-cutoff-fade-range style properties.
  • Add support for controlling the vertical fog range with vertical-range style property.
  • Add support for elevating symbols over buildings & other 3D layers with symbol-z-elevate style property.
  • Improve rendering performance of the new 3D features (shadows, models and the new lighting model).

Bug fixes 🐞

  • Fix issues with light transitions when using map setLights or setConfigProperty.
  • Fix issues with shadows popping in abruptly when moving the map.
  • Fix a bug with horizon rendering on Windows/NVidia.
  • Fix map transformRequest option not being applied to model URLs.
  • Fix an edge case when rendering ground flood effect on very large buildings.
  • Fix an issue that could cause GL_INVALID_OPERATION: Vertex buffer is not big enough for the draw call warnings in certain map views.
  • Fix an issue with rendering of mipmapped non-square textures on models.
  • Fix an issue with light-dependent expressions not being re-evaluated on features without IDs.
  • Fix visibility not being re-evaluated when using setConfigProperty.
  • Fix various issues when calling setStyle on a map with style imports.
  • Accessibility fixes: remove tabindex when the map is not interactive; remove role="list" from the attribution control; add role="img" to markers (h/t @kumiko-haraguchi and @aviroopjana).
  • Fix an issue with styles not inheriting transition options from imports.
  • Fix an issue where an error loading Draco decompression library from CDN wasn't handled gracefully.

tristen and others added 30 commits September 12, 2023 14:04
* Remove role list from attribution inner container
* Update wording

* Rename slot `none` -> `top`

---------

Co-authored-by: Stepan Kuzmin <[email protected]>
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from 4.11.1 to 4.12.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/commits/selenium-4.12.0)

---
updated-dependencies:
- dependency-name: selenium-webdriver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.28 to 8.4.29.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.4.28...8.4.29)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [glob](https://github.com/isaacs/node-glob) from 10.3.3 to 10.3.4.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](isaacs/node-glob@v10.3.3...v10.3.4)

---
updated-dependencies:
- dependency-name: glob
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) from 7.22.11 to 7.22.15.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.15/eslint/babel-eslint-parser)

---
updated-dependencies:
- dependency-name: "@babel/eslint-parser"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 46.5.0 to 46.5.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](gajus/eslint-plugin-jsdoc@v46.5.0...v46.5.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.11 to 7.22.15.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.15/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* reduce shadow map sample count
* Remove branching in the shaders
* Add cutoff fade range property to model and fill extrusion layers

* Add cutoff effect to shaders

* Render cutoff when fade range is not zero

* Reorder fill extrusion and model layer in 3D playground example

* Update debug pages

* Add render tests for cutoff fade

* Use pixel range for cutoff fade, control cutoff based on LOD pitch limit

* Do not render cutoff if range is 1

* Use relative scale for cutoff range

* Move cutoff opacity calculation to fragment shader of ground shadow

* Cutoff shadow in terrain raster shader

* Fix cutoff rendering error with Metal backend

* Update render tests

* Disable cutoff effect on terrain
* Implement tile coverage for potential shadow casters

* Serve extra shadow caster tiles to layers capable of casting shadows

 - ShadowRenderer.drawShadowPass now uses visible tile coordinates extended with shadow casters

* WIP: frustum culling of shadow caster tiles

* Update render test expectations

* Avoid reloading/re-requesting 404s b3dm

* Check if cast shadows is enabled in the lights

* Add unit tests

* Avoid to parse/create buckets in 2D layers for extra shadowCaster tiles

* Fix blank tiles by relayouting tiles which changed their shadow visibility

* Update render-test shadows with terrain image

* Avoid to create extraShadowCaster tiles for 3D model layers (eg. trees)

* Fix render tests by adding minzoom to vector layers and void missing tiles

---------

Co-authored-by: Jordi Torres <[email protected]>
* Fix Lights API transition

* Scope the Lights and update them when corresponding config changes

---------

Co-authored-by: Volodymyr Agafonkin <[email protected]>
* Fix directional light cast-shadow

* canCastShadows -> shadowsEnabled

* Recalculate Lights on Style.setLights

* Use the Style-Spec Lights properties by default
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.15 to 7.22.17.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.17/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [rollup](https://github.com/rollup/rollup) from 3.28.1 to 3.29.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](rollup/rollup@v3.28.1...v3.29.1)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 46.5.1 to 46.6.0.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](gajus/eslint-plugin-jsdoc@v46.5.1...v46.6.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Compute evaluated height for symbols over fill extrusions. dynamic style POI changed to support it for POI

* render elevated symbols

* Optimizing fill extrusion lookup and zOffset buffer upload frequency

* building index file

* Landmarks

* symbol placement sorting tiles by Y and within tiles by z offset

SymbolInstance struct:
- add zOffset field
- reorder symbol instance struct array to fit the additional float within the same size.

Rename symbol-z-elevation property to symbol-z-from-buildings

Sort tiles by viewport Y and sort within tile by z offset. Bookkeep when there are changes in data to avoid unnecessary buffer upload and resorting.

In this PR, didn't want to "fix" viewport y sorting across tiles, deliberately disabled after #5150 (comment). Instead, z offset sorts tiles by viewport y and then by z offset.

* lint and flow fixes

* render tests

landmark-z-offset-scale-munich-museum validates the path where elevation is fetched from fill extrusion and different scale is used for FE and model layer.

* Increase allowed for test/integration/render-tests/regressions/mapbox-gl-js#10170

flaky on windows bot

* revert back te renaming to symbol-z-elevate

* Port triangle grid offset fix

pushed to gl-native in mapbox/mapbox-gl-native-internal#5058

* update test/unit/util/triangle_grid_index.test.js expectations

* Explicit documentation about sorting

* resolve conflict in debug/dynamic.js. doc update

* merge conflict

* Increase allowed to cover issues on native linux bots
… creating a new segment in ground effects. (internal-750)
…-749)

* fix uninitialised segment vector

* minor

* add missing logic for skipping bucket if no data is available
* apply transform request to model urls

* fixup
endanke and others added 24 commits September 20, 2023 13:29
* Add render test for brightness update without feature ID

* Update features without IDs in ProgramConfigurationSet
* Add instancing support for model layers

* Ignore instacing render-tests in webgl1
* Update Node runtime to v20 in the "check-changelog" action

* Update actions/checkout

* Empty commit to trigger CI
…est (internal-760)

gl-js implementation uploads z offset in placement code and this is prone to flickering on zoom change (symbols go down and then up) logged in https://mapbox.atlassian.net/browse/MAPS3D-1051

Added render test for zoom exposed occasional running condition when upload didn't have the array created yet.
* Use node v20 runner in Check Changelog

* Update Check PR Requirements
* Draw opaque 3D geometry without blending
* Add render test for geometry tile model opacity expression
* Drop WebGL1

* Drop WebGL1 tests

* Mock WebGL2 in unit tests

* Update WebGL2 flow typings

* Drop extStandardDerivatives

* Drop extVertexArrayObject
* Reevaluate layer visibility on changing config property

* Add unit test
Bumps [rollup](https://github.com/rollup/rollup) from 3.29.1 to 3.29.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](rollup/rollup@v3.29.1...v3.29.2)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 46.6.0 to 46.8.1.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc)
- [Commits](gajus/eslint-plugin-jsdoc@v46.6.0...v46.8.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…" (internal-777)

This reverts commit 5889d240f440bbcca41360fd52605255ba2c32a8.
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.29 to 8.4.30.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](postcss/postcss@8.4.29...8.4.30)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.22.17 to 7.22.20.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.20/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [puppeteer-core](https://github.com/puppeteer/puppeteer) from 21.1.1 to 21.2.1.
- [Release notes](https://github.com/puppeteer/puppeteer/releases)
- [Changelog](https://github.com/puppeteer/puppeteer/blob/main/release-please-config.json)
- [Commits](puppeteer/puppeteer@puppeteer-core-v21.1.1...puppeteer-core-v21.2.1)

---
updated-dependencies:
- dependency-name: puppeteer-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [sinon](https://github.com/sinonjs/sinon) from 15.2.0 to 16.0.0.
- [Release notes](https://github.com/sinonjs/sinon/releases)
- [Changelog](https://github.com/sinonjs/sinon/blob/main/docs/changelog.md)
- [Commits](sinonjs/sinon@v15.2.0...v16.0.0)

---
updated-dependencies:
- dependency-name: sinon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… runtime styling (internal-779)

* Report loaded status correctly when model is added using runtime styling
* Re-enable model API render tests
Previous code was getting the erroneous idealZom level to compute the extended tilecover. Resulting in an high number of overscaled tiles non necessary to compute the shadows and causing blank vector tiles rendered in some situations
* replace texelFetch temporarily to avoid compilation issues on osx platforms with gl backend

* set terrain exaggeration to 0 to eliminate irrelavant differences that cause failures across platforms on native

* raise render test threshold
* Use fragment transition options if present

* Extract defaultTransition
@mourner mourner added the skip changelog Used for PRs that do not need a changelog entry label Sep 20, 2023
@mourner mourner requested a review from a team as a code owner September 20, 2023 11:49
@mourner mourner merged commit 9a9d16b into release-v3.0 Sep 20, 2023
@mourner mourner deleted the v3-beta3 branch September 20, 2023 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
skip changelog Used for PRs that do not need a changelog entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.