Render test: Inconsistent fill extrusion height rendering across tile boundaries
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 12.4k
- Forks
- 2.4k
- PR merge metrics
- No merged PRs in 30d
Description
**mapbox-gl-js version**: v2.0.0
**browser**: Chrome but likely any
### Steps to Trigger Behavior
This was found during work on running the render tests in the browser. The affected tests are `fill-extrusion-pattern/multiple-layers-flat` and `fill-extrusion-pattern/opacity-terrain-flat-on-border`.
1. Remove `"render-tests/fill-extrusion-pattern/opacity-terrain-flat-on-border": "skip"` from `test/ignores.json`
2. Run `yarn watch-render`
3. Visit `http://localhost:7357/849/test/integration/testem_page.html?filter=fill-extrusion-pattern/opacity-terrain-flat-on-border`
### Link to Demonstration
n/a
### Expected Behavior
The tests should pass on every run.
### Actual Behavior
The tests occasionally fail because the building heights are rendered higher than expected. This only seems to happen with specific buildings at tile boundaries. I tried inlining the terrain rather than calling a `setTerrain` operation but that didn't fix the issue.

This is related to https://github.com/mapbox/mapbox-gl-js/issues/10170 but I believe exhibits somewhat different behavior (building height vs flat roofs).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the render tests named in the issue, especially fill-extrusion-pattern/opacity-terrain-flat-on-border, and inspect its skip entry in test/ignores.json. Run yarn watch-render and the provided testem URL to reproduce the intermittent tile-boundary rendering difference. Done means the affected render tests pass consistently without the skip.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- computer-graphics, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100