-
Notifications
You must be signed in to change notification settings - Fork 0
Both DX backends ignore VertexFormatHandle entirely: the custom vertex format API is... #164
Copy link
Copy link
Open
Labels
area: renderingRenderer, shaders, post processingRenderer, shaders, post processingbackend: dx11Specific to the dx11 backendSpecific to the dx11 backendbackend: dx12Specific to the dx12 backendSpecific to the dx12 backendbackend: openglSpecific to the opengl backendSpecific to the opengl backendbackend: vulkanSpecific to the vulkan backendSpecific to the vulkan backendbugSomething isn't workingSomething isn't workingpriority: criticalCrash, data loss, or blocks other workCrash, data loss, or blocks other workvisualIncorrect or degraded rendering outputIncorrect or degraded rendering output
Milestone
Description
Activity
Metadata
Metadata
Assignees
Labels
area: renderingRenderer, shaders, post processingRenderer, shaders, post processingbackend: dx11Specific to the dx11 backendSpecific to the dx11 backendbackend: dx12Specific to the dx12 backendSpecific to the dx12 backendbackend: openglSpecific to the opengl backendSpecific to the opengl backendbackend: vulkanSpecific to the vulkan backendSpecific to the vulkan backendbugSomething isn't workingSomething isn't workingpriority: criticalCrash, data loss, or blocks other workCrash, data loss, or blocks other workvisualIncorrect or degraded rendering outputIncorrect or degraded rendering output
src/Graphics/DirectX11/DirectX11Renderer.cpp:487;src/Graphics/DirectX12/DirectX12Renderer.cpp:1012;src/Graphics/DirectX11/DirectX11Shader.hpp:57-64;src/Graphics/DirectX11/DirectX11Shader.cpp:97grep -n "VertexFormat" src/Graphics/DirectX11/*.cpp src/Graphics/DirectX12/*.cppreturns zero hits.Both backends hardcode the stride:
UINT stride = sizeof(Sleak::Vertex);(:487)vbView.StrideInBytes = sizeof(Sleak::Vertex);(:1012)GL (
OpenGLRenderer.cpp:349-351) and Vulkan (VulkanRenderer.cpp:687,VulkanPipelines.cpp:741) both honorthe handle.
Sleak::Vertexis 96 bytes (MeshData.hpp:14states so in its own doc comment); SleakCraft'sVoxelVertexis 48.It compounds at the input layout:
DirectX11Shader.hpp:57-64hardcodesDefaultLayoutoffsets0/12/24/40/56, and
DirectX11Shader.cpp:97picks between exactly two fixed tables based only onwhether the VS declares
BLENDINDICES. Soflat_shader.hlsl: whoseVS_INPUT(lines 8-14) is preciselythe 48-byte voxel layout with color@24 and uv@40: is fed color from byte 40 and UV from byte 56, at double
the correct stride.
Consequence: SleakCraft renders garbage geometry on
-r d3d11and-r d3d12. This is the engine's headlinecustom-vertex-format abstraction (CLAUDE.md §3) silently absent on two of four backends.
Severity: corruption.
Found by a full audit of the graphics layer. Assessed severity: corruption.