GPUDevice: Ensure 16 byte minimum UBO alignment

This commit is contained in:
Stenzek 2025-01-07 17:52:31 +10:00
parent 4c801c3ff3
commit 0030bc2699
No known key found for this signature in database
2 changed files with 2 additions and 1 deletions

View File

@ -746,6 +746,7 @@ bool OpenGLDevice::CreateBuffers()
GL_OBJECT_NAME(m_uniform_buffer, "Device Uniform Buffer");
glGetIntegerv(GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT, reinterpret_cast<GLint*>(&m_uniform_buffer_alignment));
m_uniform_buffer_alignment = std::max<GLuint>(m_uniform_buffer_alignment, 16);
if (!m_disable_pbo)
{

View File

@ -1976,7 +1976,7 @@ bool VulkanDevice::CreateDeviceAndMainSwapChain(std::string_view adapter, Featur
// Read device physical memory properties, we need it for allocating buffers
vkGetPhysicalDeviceProperties(m_physical_device, &m_device_properties);
m_device_properties.limits.minUniformBufferOffsetAlignment =
std::max(m_device_properties.limits.minUniformBufferOffsetAlignment, static_cast<VkDeviceSize>(1));
std::max(m_device_properties.limits.minUniformBufferOffsetAlignment, static_cast<VkDeviceSize>(16));
m_device_properties.limits.minTexelBufferOffsetAlignment =
std::max(m_device_properties.limits.minTexelBufferOffsetAlignment, static_cast<VkDeviceSize>(1));
m_device_properties.limits.optimalBufferCopyOffsetAlignment =