vulkan: add initial Windows64 renderer backend and chunk texturing fixes

Introduce a Windows64 Vulkan renderer implementation under C4JRender with the core runtime path for init, frame recording, and present.

Includes Vulkan swapchain/device setup, triangle pipeline state management, command-list draw replay, dynamic vertex streaming, texture object APIs, descriptor binding, alpha-test path, and UI overlay bridge integration.

Add Vulkan shader blobs for world geometry/UI and bridge header used by the Windows64 path.

Chunk rendering updates for Vulkan stability:

- keep compact/compressed chunk vertices disabled on Windows until the compact decode path is fully ported

- decode legacy no-mipmap U encoding (u + 1.0f flag) in the Vulkan vertex expansion path

- fix command-list replay so texture/alpha state is only restored when it was explicitly recorded, preserving runtime texture binds for chunk lists
This commit is contained in:
Kitrae
2026-03-04 18:49:19 -06:00
parent c5e3e62f67
commit 5de34efe2a
6 changed files with 4860 additions and 1 deletions

View File

@@ -231,7 +231,12 @@ void Tesselator::useProjectedTexture(bool enable)
void Tesselator::useCompactVertices(bool enable)
{
#if defined(_WIN32) && !defined(_XBOX) && !defined(_XBOX_ONE)
// windows vulkan: keep compact off for now, decoder not finished.
useCompactFormat360 = false;
#else
useCompactFormat360 = enable;
#endif
}
bool Tesselator::getCompactVertices()
@@ -1077,4 +1082,4 @@ bool Tesselator::hasMaxVertices()
#else
return false;
#endif
}
}