Montains not rendering and some light flashings #422

Closed
opened 2026-11-08 00:36:46 +00:00 by Gianlz · 5 comments
Gianlz commented 2026-11-08 00:36:46 +00:00 (Migrated from github.com)

Builder version

foliage-linux-updater

How you built

Linux AppImage

Game files given to it

A .nup

The error

No apparent error on builder, is visual only

A rendering issue causes multiple tree models to appear suspended in mid-air, significantly above their expected positions.

In the screenshot, several clusters of coniferous trees are rendered high above the terrain, with no visible ground or supporting geometry beneath them. The trees appear to be displaced from their intended world positions, creating the appearance of floating vegetation.
Observed Behavior

    Multiple tree models appear floating high above the landscape.

    Trees are rendered at incorrect vertical positions.

    Some vegetation appears clustered in mid-air rather than following the terrain.

    The issue is visually prominent against the sky.

Expected Behavior

Tree models should be rendered at their correct world-space positions, properly aligned with the terrain.
Actual Behavior

Vegetation geometry appears significantly displaced vertically, resulting in trees floating in the sky.

Nvidia
CachyOS

Visual Studio or Build Tools version, and Windows SDK version

No response

Operating system and free space on the output drive

CachyOS - +/- 700Gb free

Before you send it

  • I'm on the newest release, or it still fails on it.
  • I searched the open issues for this error.
  • I'm not attaching game files or anything built from them.
### Builder version foliage-linux-updater ### How you built Linux AppImage ### Game files given to it A .nup ### The error ```text No apparent error on builder, is visual only A rendering issue causes multiple tree models to appear suspended in mid-air, significantly above their expected positions. In the screenshot, several clusters of coniferous trees are rendered high above the terrain, with no visible ground or supporting geometry beneath them. The trees appear to be displaced from their intended world positions, creating the appearance of floating vegetation. Observed Behavior Multiple tree models appear floating high above the landscape. Trees are rendered at incorrect vertical positions. Some vegetation appears clustered in mid-air rather than following the terrain. The issue is visually prominent against the sky. Expected Behavior Tree models should be rendered at their correct world-space positions, properly aligned with the terrain. Actual Behavior Vegetation geometry appears significantly displaced vertically, resulting in trees floating in the sky. Nvidia CachyOS ``` ### Visual Studio or Build Tools version, and Windows SDK version _No response_ ### Operating system and free space on the output drive CachyOS - +/- 700Gb free ### Before you send it - [x] I'm on the newest release, or it still fails on it. - [x] I searched the open issues for this error. - [x] I'm not attaching game files or anything built from them.
Gianlz commented 2026-11-08 00:37:15 +00:00 (Migrated from github.com)
Image

Here one example of the rendering bug

<img width="3439" height="1440" alt="Image" src="https://github.com/user-attachments/assets/6688b9b0-d28b-4e08-92a5-fa815a2379c3" /> Here one example of the rendering bug
TheRealBuju commented 2026-11-08 03:06:35 +00:00 (Migrated from github.com)

Same issues. :(

Same issues. :(
ArmstrongThomas commented 2026-11-08 03:20:24 +00:00 (Migrated from github.com)

Same issues here. Should be looking something like this:

https://7db.pw/ce83fc.png

Same issues here. Should be looking something like this: https://7db.pw/ce83fc.png
Nitnek commented 2026-11-08 20:26:15 +00:00 (Migrated from github.com)

I traced where the missing mountain (and so the floating trees, #352) comes from. RTX 3070 8 GB, Windows. The builds were main at 2ff3cff with the one-line #640 fix from #640 (without it nothing drawn by mesh programs shows, so the trees seemed fixed), and 53af338 before it. The test is an autosave in front of Hyrule Castle, where the trees float as soon as it loads. The tool is RX_VK_DRAW_STATS with RX_VK_MISS_LOG=1.

The mountain is already missing from the 1536x864 depth prepass, so this is not shading or fog. It lines up with the GPU culling's indirect mesh draws. The pairs below are the ones 629e2af describes as ground (depth program, then the colour program that tests EQUAL against it):

mesh pair (depth / colour) args written by 53af338 2ff3cff + #640 fix
e28434e1afe8321a / 6b4dea601798c255 compute 44511d69b52282ad 1 task group, 154–416 fragments 4 groups, 18–9120 fragments
cb71f79f6129aab8 / 68642bb810ee3e7c compute 4247f1b4c3ce6cf3 0 groups 1 group, 4 primitives, no fragments
c36a4f3f667c886a / 9d8403e2e566c773 compute 102f5b0abb0f1e63 (slot +0x40) 0 groups 0 groups

The same 102f5b0a dispatch fills its other slots fine (879fe82ef602ab53: 253 groups, 22063ecfa481a731: 6 + 165 groups). Only the +0x40 slot stays at 0. On 53af338, 4247f1b4 itself was an indirect dispatch whose arguments were 0 (gpu 0 1 1 0), written by b612216258832b9c through its table binding. On 2ff3cff it runs one group, which looks like the ATOMG.CAS/AddF32 translation work changed that part, but its pair still draws nothing.

What made no visible difference (floating trees in all five screenshots, same view):

  • RX_VK_SSBO_STRETCH=1
  • RX_VK_SSBO_WIDE=64
  • RX_VK_PROTECT_BARE=1: 0 kept for the GPU in every mirror-sync report, as in your Kokiri run
  • a local knob binding written bare table entries up to 64 MB instead of 1 MB
  • HOOKSHOT_OCCLUSION_OFF=1, although I couldn't confirm from the log that it was active

On 2ff3cff the miss log shows global memory misses: 0 programs. "Second-level pointers no binding covers" lists 8 programs, 4247f1b4 and 44511d69 among them, but the first pointer of each is the same odd 0x1100000010, so that may be a count read as a pointer. On 53af338 I also tried a 12-entry pointer table that covered every one of them, and the pairs stayed empty.

So the zeros seem to come from the culling programs' own results (b612216258832b9c → 4247f1b4c3ce6cf3, and 102f5b0abb0f1e63's +0x40 slot), not from memory that isn't bound. My next step is dumping those programs' inputs and outputs with RX_VK_DRAW_STATS_PROGS to see which value goes to 0. If you know what decides those categories (distance, LOD, the 1024x1024 masks b6122162 samples), that would help.

I traced where the missing mountain (and so the floating trees, #352) comes from. RTX 3070 8 GB, Windows. The builds were `main` at `2ff3cff` with the one-line #640 fix from https://git.magicbean.dev/MagicBeanDev/Hookshot/issues/640 (without it nothing drawn by mesh programs shows, so the trees seemed fixed), and `53af338` before it. The test is an autosave in front of Hyrule Castle, where the trees float as soon as it loads. The tool is `RX_VK_DRAW_STATS` with `RX_VK_MISS_LOG=1`. The mountain is already missing from the 1536x864 depth prepass, so this is not shading or fog. It lines up with the GPU culling's indirect mesh draws. The pairs below are the ones `629e2af` describes as ground (depth program, then the colour program that tests EQUAL against it): | mesh pair (depth / colour) | args written by | `53af338` | `2ff3cff` + #640 fix | |---|---|---|---| | `e28434e1afe8321a` / `6b4dea601798c255` | compute `44511d69b52282ad` | 1 task group, 154–416 fragments | 4 groups, 18–9120 fragments | | `cb71f79f6129aab8` / `68642bb810ee3e7c` | compute `4247f1b4c3ce6cf3` | **0 groups** | 1 group, 4 primitives, **no fragments** | | `c36a4f3f667c886a` / `9d8403e2e566c773` | compute `102f5b0abb0f1e63` (slot +0x40) | **0 groups** | **0 groups** | The same `102f5b0a` dispatch fills its other slots fine (`879fe82ef602ab53`: 253 groups, `22063ecfa481a731`: 6 + 165 groups). Only the +0x40 slot stays at 0. On `53af338`, `4247f1b4` itself was an indirect dispatch whose arguments were 0 (`gpu 0 1 1 0`), written by `b612216258832b9c` through its table binding. On `2ff3cff` it runs one group, which looks like the ATOMG.CAS/AddF32 translation work changed that part, but its pair still draws nothing. What made no visible difference (floating trees in all five screenshots, same view): - `RX_VK_SSBO_STRETCH=1` - `RX_VK_SSBO_WIDE=64` - `RX_VK_PROTECT_BARE=1`: `0 kept for the GPU` in every mirror-sync report, as in your Kokiri run - a local knob binding written bare table entries up to 64 MB instead of 1 MB - `HOOKSHOT_OCCLUSION_OFF=1`, although I couldn't confirm from the log that it was active On `2ff3cff` the miss log shows `global memory misses: 0 programs`. "Second-level pointers no binding covers" lists 8 programs, `4247f1b4` and `44511d69` among them, but the first pointer of each is the same odd `0x1100000010`, so that may be a count read as a pointer. On `53af338` I also tried a 12-entry pointer table that covered every one of them, and the pairs stayed empty. So the zeros seem to come from the culling programs' own results (`b612216258832b9c` → `4247f1b4c3ce6cf3`, and `102f5b0abb0f1e63`'s +0x40 slot), not from memory that isn't bound. My next step is dumping those programs' inputs and outputs with `RX_VK_DRAW_STATS_PROGS` to see which value goes to 0. If you know what decides those categories (distance, LOD, the 1024x1024 masks `b6122162` samples), that would help.
NotRexed commented 2026-11-09 05:48:31 +00:00 (Migrated from github.com)

Tracked in #994, follow there. That issue collects every report of floating trees and missing or vanishing vegetation, and this one is linked from it with its GPU, version and log details. It is a known issue in v2.0.6 and not fixed yet. If it still happens on v2.0.6 (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.6; Update next to Play in the launcher), please add a comment there with your hookshot_log.txt.

Tracked in #994, follow there. That issue collects every report of floating trees and missing or vanishing vegetation, and this one is linked from it with its GPU, version and log details. It is a known issue in v2.0.6 and not fixed yet. If it still happens on v2.0.6 (https://github.com/NotRexed/Hookshot/releases/tag/v2.0.6; Update next to Play in the launcher), please add a comment there with your `hookshot_log.txt`.
Commenting is not possible because the repository is archived.
No milestone
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Hookshot#422
No description provided.