Commit: 59aefaf3d092a849b329d8bf92e826b5a5cae62c Author: Jeroen Bakker Date: Tue Jan 31 09:25:50 2023 +0100 Branches: master https://developer.blender.org/rB59aefaf3d092a849b329d8bf92e826b5a5cae62c
Vulkan: Fix assert when compiling transform feedback shaders. Transform feedback shaders don't have a fragment shader and should not fail when it is not given. =================================================================== M release/datafiles/locale M release/scripts/addons M release/scripts/addons_contrib M source/blender/gpu/vulkan/vk_shader.cc M source/tools =================================================================== diff --git a/release/datafiles/locale b/release/datafiles/locale index 08b372721b9..4331c8e76c2 160000 --- a/release/datafiles/locale +++ b/release/datafiles/locale @@ -1 +1 @@ -Subproject commit 08b372721b9b33a16f380cab23b2e5ded738ea96 +Subproject commit 4331c8e76c2f42b9fd903716c333d6cdeaa5cebd diff --git a/release/scripts/addons b/release/scripts/addons index d887a4ea6b2..fe59d382b4f 160000 --- a/release/scripts/addons +++ b/release/scripts/addons @@ -1 +1 @@ -Subproject commit d887a4ea6b2a9d64b926034d4e78ecf7a48ca979 +Subproject commit fe59d382b4fd2047920208fa92d39fc1361d9242 diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib index 9d538629bb8..14ab9273409 160000 --- a/release/scripts/addons_contrib +++ b/release/scripts/addons_contrib @@ -1 +1 @@ -Subproject commit 9d538629bb8a425991c7d10a49bab1ba0788c18f +Subproject commit 14ab9273409ea0231d08ba6e86fdc73d4e459e99 diff --git a/source/blender/gpu/vulkan/vk_shader.cc b/source/blender/gpu/vulkan/vk_shader.cc index 5e7e7440624..79583fd8255 100644 --- a/source/blender/gpu/vulkan/vk_shader.cc +++ b/source/blender/gpu/vulkan/vk_shader.cc @@ -633,14 +633,15 @@ void VKShader::compute_shader_from_glsl(MutableSpan<const char *> sources) build_shader_module(sources, shaderc_compute_shader, &compute_module_); } -bool VKShader::finalize(const shader::ShaderCreateInfo * /*info*/) +bool VKShader::finalize(const shader::ShaderCreateInfo *info) { if (compilation_failed_) { return false; } if (vertex_module_ != VK_NULL_HANDLE) { - BLI_assert(fragment_module_ != VK_NULL_HANDLE); + BLI_assert((fragment_module_ != VK_NULL_HANDLE && info->tf_type_ == GPU_SHADER_TFB_NONE) || + (fragment_module_ == VK_NULL_HANDLE && info->tf_type_ != GPU_SHADER_TFB_NONE)); BLI_assert(compute_module_ == VK_NULL_HANDLE); VkPipelineShaderStageCreateInfo vertex_stage_info = {}; @@ -658,12 +659,14 @@ bool VKShader::finalize(const shader::ShaderCreateInfo * /*info*/) geo_stage_info.pName = "main"; pipeline_infos_.append(geo_stage_info); } - VkPipelineShaderStageCreateInfo fragment_stage_info = {}; - fragment_stage_info.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; - fragment_stage_info.stage = VK_SHADER_STAGE_FRAGMENT_BIT; - fragment_stage_info.module = fragment_module_; - fragment_stage_info.pName = "main"; - pipeline_infos_.append(fragment_stage_info); + if (fragment_module_ != VK_NULL_HANDLE) { + VkPipelineShaderStageCreateInfo fragment_stage_info = {}; + fragment_stage_info.sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; + fragment_stage_info.stage = VK_SHADER_STAGE_FRAGMENT_BIT; + fragment_stage_info.module = fragment_module_; + fragment_stage_info.pName = "main"; + pipeline_infos_.append(fragment_stage_info); + } } else { BLI_assert(vertex_module_ == VK_NULL_HANDLE); @@ -679,6 +682,10 @@ bool VKShader::finalize(const shader::ShaderCreateInfo * /*info*/) pipeline_infos_.append(compute_stage_info); } +#ifdef NDEBUG + UNUSED_VARS(info); +#endif + return true; } diff --git a/source/tools b/source/tools index 3582f5326d0..d5a1cc67212 160000 --- a/source/tools +++ b/source/tools @@ -1 +1 @@ -Subproject commit 3582f5326d08ca05c2a19056597e49ec5511d854 +Subproject commit d5a1cc672121237f7ce7b85383f4bd6457678f64 _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs