Vulkan: Fix sanitizers error with empty shader name

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
This commit is contained in:
Pavel Kraynyukhov 2023-08-05 08:49:37 +02:00 committed by Rémi Verschelde
parent f7bc653cbe
commit 77b02359c9
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -4812,12 +4812,15 @@ Vector<uint8_t> RenderingDeviceVulkan::shader_compile_binary_from_spirv(const Ve
offset += sizeof(uint32_t); offset += sizeof(uint32_t);
memcpy(binptr + offset, &binary_data, sizeof(RenderingDeviceVulkanShaderBinaryData)); memcpy(binptr + offset, &binary_data, sizeof(RenderingDeviceVulkanShaderBinaryData));
offset += sizeof(RenderingDeviceVulkanShaderBinaryData); offset += sizeof(RenderingDeviceVulkanShaderBinaryData);
if (binary_data.shader_name_len > 0) {
memcpy(binptr + offset, shader_name_utf.ptr(), binary_data.shader_name_len); memcpy(binptr + offset, shader_name_utf.ptr(), binary_data.shader_name_len);
offset += binary_data.shader_name_len; offset += binary_data.shader_name_len;
if ((binary_data.shader_name_len % 4) != 0) { // Alignment rules are really strange. if ((binary_data.shader_name_len % 4) != 0) { // Alignment rules are really strange.
offset += 4 - (binary_data.shader_name_len % 4); offset += 4 - (binary_data.shader_name_len % 4);
} }
}
for (int i = 0; i < uniform_info.size(); i++) { for (int i = 0; i < uniform_info.size(); i++) {
int count = uniform_info[i].size(); int count = uniform_info[i].size();