1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-05-04 00:47:46 +00:00

Fix crash when loading an invalid shader package

It tries to make a buffer of zero size, which does not make any sense.
This commit is contained in:
Joshua Goins 2025-05-01 18:00:01 -04:00
parent d82333ae3e
commit 092037b0d5

View file

@ -221,7 +221,7 @@ RenderMaterial MDLPart::createMaterial(const physis_Material &material)
auto shpkData = physis_gamedata_extract_file(data, shpkPath.c_str());
if (shpkData.data != nullptr) {
newMaterial.shaderPackage = physis_parse_shpk(shpkData);
if (newMaterial.shaderPackage.p_ptr) {
// create the material parameters for this shader package
newMaterial.materialBuffer =
renderer->device().createBuffer(newMaterial.shaderPackage.material_parameters_size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT);
@ -248,6 +248,7 @@ RenderMaterial MDLPart::createMaterial(const physis_Material &material)
renderer->device().copyToBuffer(newMaterial.materialBuffer, buffer.data(), buffer.size() * sizeof(float));
}
}
}
for (uint32_t i = 0; i < material.num_textures; i++) {
std::string t = material.textures[i];