[Bf-blender-cvs] [fc0f409911a] tmp-vulkan: VK: Avoid asserts in debug builds.

Clément Foucault noreply at git.blender.org
Wed Sep 16 22:05:42 CEST 2020


Commit: fc0f409911aca9d7d389346109b7d38c6f10e6d9
Author: Clément Foucault
Date:   Wed Sep 16 22:04:03 2020 +0200
Branches: tmp-vulkan
https://developer.blender.org/rBfc0f409911aca9d7d389346109b7d38c6f10e6d9

VK: Avoid asserts in debug builds.

===================================================================

M	source/blender/draw/intern/draw_manager_data.c
M	source/blender/gpu/vulkan/vk_shader_interface.hh

===================================================================

diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c
index 81842f5d2ec..72eb4c8c92c 100644
--- a/source/blender/draw/intern/draw_manager_data.c
+++ b/source/blender/draw/intern/draw_manager_data.c
@@ -1241,6 +1241,7 @@ static void drw_shgroup_init(DRWShadingGroup *shgroup, GPUShader *shader)
         shgroup, view_ubo_location, DRW_UNIFORM_BLOCK, G_draw.view_ubo, 0, 0, 1);
   }
 
+#ifndef WITH_VULKAN /* This is needed until we have proper shader interfaces for vulkan. */
   /* Not supported. */
   BLI_assert(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_MODELVIEW_INV) == -1);
   BLI_assert(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_MODELVIEW) == -1);
@@ -1253,6 +1254,7 @@ static void drw_shgroup_init(DRWShadingGroup *shgroup, GPUShader *shader)
   BLI_assert(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_PROJECTION_INV) == -1);
   BLI_assert(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_CLIPPLANES) == -1);
   BLI_assert(GPU_shader_get_builtin_uniform(shader, GPU_UNIFORM_MVP) == -1);
+#endif
 }
 
 static DRWShadingGroup *drw_shgroup_create_ex(struct GPUShader *shader, DRWPass *pass)
diff --git a/source/blender/gpu/vulkan/vk_shader_interface.hh b/source/blender/gpu/vulkan/vk_shader_interface.hh
index 554d189d09c..b9047f44cf9 100644
--- a/source/blender/gpu/vulkan/vk_shader_interface.hh
+++ b/source/blender/gpu/vulkan/vk_shader_interface.hh
@@ -45,6 +45,12 @@ class VKShaderInterface : public ShaderInterface {
   {
     inputs_ = (ShaderInput *)MEM_callocN(sizeof(*inputs_), __func__);
     name_buffer_ = (char *)MEM_callocN(1, __func__);
+    for (int i = 0; i < GPU_NUM_UNIFORMS; i++) {
+      builtins_[i] = 0;
+    }
+    for (int i = 0; i < GPU_NUM_UNIFORM_BLOCKS; i++) {
+      builtin_blocks_[i] = 0;
+    }
   };
   ~VKShaderInterface(){};



More information about the Bf-blender-cvs mailing list