Revert "feat(render): Campaign V slice V4d-2 - move terrain onto the RHI"

This reverts commit b064668b63.
This commit is contained in:
Erik 2026-07-27 22:38:02 +02:00
parent b064668b63
commit ad61f250fb
7 changed files with 553 additions and 496 deletions

View file

@ -30,26 +30,15 @@ out vec4 fragColor;
// Campaign V slice V2b (2026-07-27): uTerrainHandle/uAlphaHandle (uvec2, raw
// ARB_bindless_texture handles) became uTextureIndexA/uTextureIndexB (slots
// into the binding=9 handle table, ACDREAM_TEXTURE_HANDLE in common.glsl).
// Named to match the pinned GpuPushConstants.TextureIndexA/B fields, so slice
// V4d's move onto push constants was a rename rather than a redesign. The GL
// backend maps each push-constant field to the correspondingly named uniform,
// which is why these stay declared exactly as they are.
// Named to match the pinned GpuPushConstants.TextureIndexA/B fields so V4d's
// move to push constants is a rename, not a redesign — there is no
// push-constant plumbing yet, so these stay plain uniforms for now.
uniform uint uTextureIndexA;
uniform uint uTextureIndexB;
uniform float uTexTiling[36];
#define uTerrain sampler2DArray(ACDREAM_TEXTURE_HANDLE(uTextureIndexA))
#define uAlpha sampler2DArray(ACDREAM_TEXTURE_HANDLE(uTextureIndexB))
// Campaign V slice V4d: the per-layer tiling table moved out of a loose
// `uniform float uTexTiling[36]` and into a uniform block at
// GpuBindingModel.UniformTerrainTiling. At 144 bytes of payload it cannot ride
// in the 96-byte GpuPushConstants block (nor Vulkan's guaranteed 128-byte
// ceiling), and there is no RHI verb for setting a uniform array. std140 pads
// each array element to 16 bytes, so the block is 576 bytes; the element type
// is unchanged so uTexTiling[i] reads exactly as it did before.
layout(std140, ACDREAM_UBO_SET binding = 3) uniform TerrainTiling {
float uTexTiling[36];
};
struct Light {
vec4 posAndKind;
vec4 dirAndRange;