diff --git a/binaries/data/mods/mod/shaders/glsl/compute_skinning.cs b/binaries/data/mods/mod/shaders/glsl/compute_skinning.cs index 020d0fb8f1..eb7f2f6740 100644 --- a/binaries/data/mods/mod/shaders/glsl/compute_skinning.cs +++ b/binaries/data/mods/mod/shaders/glsl/compute_skinning.cs @@ -26,7 +26,6 @@ struct Vertex vec4 tangent; vec4 normal; vec4 position; - vec4 padding; }; STORAGE_BUFFER(0) restrict readonly buffer InputVertices diff --git a/source/renderer/GPUSkinnedModelRenderer.cpp b/source/renderer/GPUSkinnedModelRenderer.cpp index 8904f0e87c..c0a80d1e53 100644 --- a/source/renderer/GPUSkinnedModelRenderer.cpp +++ b/source/renderer/GPUSkinnedModelRenderer.cpp @@ -62,7 +62,7 @@ namespace // // Created on a model load and read by a compute shader for each frame where // the model is visible. -// InputVertex(size/stride=64): +// InputVertex(size/stride=48): // vec4/CVector4D tangent (offset=0) // vec3/CVector3D normal (offset=16) // vec3/CVector3D position (offset=32) @@ -251,7 +251,7 @@ ModelDefRData::ModelDefRData(const CModelDefPtr& modelDef) m_UVArray.FreeBackingStore(); } - ENSURE(m_Array.GetStride() == INPUT_VERTEX_ATTRIBUTE_ALIGNMENT * 4); + ENSURE(m_Array.GetStride() == INPUT_VERTEX_ATTRIBUTE_ALIGNMENT * 3); ENSURE(m_Position.offset == INPUT_VERTEX_POSITION_OFFSET); ENSURE(m_Normal.offset == INPUT_VERTEX_NORMAL_OFFSET); ENSURE(m_Tangent.offset == INPUT_VERTEX_TANGENT_OFFSET); diff --git a/source/renderer/VertexArray.cpp b/source/renderer/VertexArray.cpp index 800d9d932b..391e678090 100644 --- a/source/renderer/VertexArray.cpp +++ b/source/renderer/VertexArray.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2025 Wildfire Games. +/* Copyright (C) 2026 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -231,10 +231,8 @@ static uint32_t RoundStride(uint32_t stride) return 4; if (stride <= 8) return 8; - if (stride <= 16) - return 16; - return Align<32>(stride); + return Align<16>(stride); } // Re-layout by assigning offsets on a first-come first-serve basis,