You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-10 13:00:37 +00:00
Fix crash in RenderingDeviceVulkan::shader_create
This commit moves the declaration of a local variable to ensure its scope survives long enough; at least in some versions of GCC and LLVM the associated memory was freed too early and thus caused issues ranging from black screens to crashes.
This commit is contained in:
@@ -4312,8 +4312,10 @@ RID RenderingDeviceVulkan::shader_create(const Vector<ShaderStageData> &p_stages
|
|||||||
}
|
}
|
||||||
|
|
||||||
pipeline_layout_create_info.pSetLayouts = layouts.ptr();
|
pipeline_layout_create_info.pSetLayouts = layouts.ptr();
|
||||||
|
// Needs to be declared in this outer scope, otherwise it may not outlive its assignment
|
||||||
|
// to pipeline_layout_create_info.
|
||||||
|
VkPushConstantRange push_constant_range;
|
||||||
if (push_constant.push_constant_size) {
|
if (push_constant.push_constant_size) {
|
||||||
VkPushConstantRange push_constant_range;
|
|
||||||
push_constant_range.stageFlags = push_constant.push_constants_vk_stage;
|
push_constant_range.stageFlags = push_constant.push_constants_vk_stage;
|
||||||
push_constant_range.offset = 0;
|
push_constant_range.offset = 0;
|
||||||
push_constant_range.size = push_constant.push_constant_size;
|
push_constant_range.size = push_constant.push_constant_size;
|
||||||
|
|||||||
Reference in New Issue
Block a user