diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-31 10:31:41 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-31 10:31:41 -0400 |
| commit | 049c9633edd9b3f7eaed6b4b3a18a4ead0cd18b7 (patch) | |
| tree | a249860ff43f615ac3e3ee4b7eb03eac5317836a /src/core/cpu_manager.cpp | |
| parent | 8ac95d5e42fc571279eede89bfd0a4f83d2783d2 (diff) | |
nx2: read texture handles that hold a header byte offset
Switch Sports' scenery shaders take their 64-bit texture handles from a uniform
register, and the texture part of those handles is the header's byte offset in the
pool (index * 32), not its index: 0x96e46000 names header 8960 (a 640x152 2D
texture), while the plain reading, 286720, runs far past the 33067-entry pool. Eden
skipped them at draw time (null view) and built the shaders for a garbage header, so
the island's ground, cliffs and buildings drew black.
When a handle's index falls past the pool but index / 32 lands inside it, take that
header, both when building the shader and when binding the view. Handles that
already resolve keep their meaning.
Diffstat (limited to 'src/core/cpu_manager.cpp')
0 files changed, 0 insertions, 0 deletions
