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.
This commit is contained in:
parent
d44d165e8a
commit
59aefaf3d0
|
@ -1 +1 @@
|
|||
Subproject commit 08b372721b9b33a16f380cab23b2e5ded738ea96
|
||||
Subproject commit 4331c8e76c2f42b9fd903716c333d6cdeaa5cebd
|
|
@ -1 +1 @@
|
|||
Subproject commit d887a4ea6b2a9d64b926034d4e78ecf7a48ca979
|
||||
Subproject commit fe59d382b4fd2047920208fa92d39fc1361d9242
|
|
@ -1 +1 @@
|
|||
Subproject commit 9d538629bb8a425991c7d10a49bab1ba0788c18f
|
||||
Subproject commit 14ab9273409ea0231d08ba6e86fdc73d4e459e99
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 3582f5326d08ca05c2a19056597e49ec5511d854
|
||||
Subproject commit d5a1cc672121237f7ce7b85383f4bd6457678f64
|
Loading…
Reference in New Issue