Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/hlsl.y:
vkd3d_free(v->initializer.args); vkd3d_free(v->initializer.instrs); } + else if (var->modifiers & HLSL_STORAGE_STATIC) + { + struct hlsl_ir_constant *zero; + struct hlsl_ir_load *load; + + /* Initialize statics to zero by default. */ + + if (type_has_object_components(var->data_type, false)) + { + hlsl_error(ctx, &v->loc, VKD3D_SHADER_ERROR_HLSL_MISSING_INITIALIZER, + "Static variable cannot be initialized to 0 if it has object components.");
Actually, it seems that a static variable with objects is fine if it contains *only* objects. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/54#note_18634