[Bf-blender-cvs] [59aefaf3d09] master: Vulkan: Fix assert when compiling transform feedback shaders.

Jeroen Bakker noreply at git.blender.org
Tue Jan 31 09:53:04 CET 2023


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



More information about the Bf-blender-cvs mailing list