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

@@ -385,7 +385,11 @@ void Chunk::rebuild()
MemSect(0);
glPushMatrix();
glDepthMask(true); // 4J added
#if defined(_XBOX) || defined(_XBOX_ONE) || defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__)
t->useCompactVertices(true); // 4J added
#else
t->useCompactVertices(false); // compact path on w vulkan caused uv decode issues, keep this false
#endif
translateToPos();
float ss = 1.000001f;
// 4J - have removed this scale as I don't think we should need it, and have now optimised the vertex
@@ -704,7 +708,11 @@ void Chunk::rebuild_SPU()
MemSect(0);
glPushMatrix();
glDepthMask(true); // 4J added
#if defined(_XBOX) || defined(_XBOX_ONE) || defined(__PS3__) || defined(__ORBIS__) || defined(__PSVITA__)
t->useCompactVertices(true); // 4J added
#else
t->useCompactVertices(false); // compact path on w vulkan caused uv decode issues, keep this false
#endif
translateToPos();
float ss = 1.000001f;
// 4J - have removed this scale as I don't think we should need it, and have now optimised the vertex