Taichi 0.8.7 和 0.8.6 不支持 taichi-glsl 了吗

我更新到0.8.6和0.8.7之后就不能运行之前的墨戏引擎了,错误如下:

[Taichi] version 0.8.7, llvm 10.0.0, commit 88d81df6, win, python 3.9.6
[TaiGLSL] version 0.0.11
[Taichi] Starting on arch=vulkan
Backend TkAgg is interactive backend. Turning interactive mode on.
Traceback (most recent call last):
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 479, in build_Attribute
    node.ptr = getattr(node.value.ptr, node.attr)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi_glsl\vector.py", line 498, in _vector_getattr
    if ti.inside_kernel():
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\__init__.py", line 35, in __getattr__
    raise AttributeError(f"module '{__name__}' has no attribute '{attr}'")
AttributeError: module 'taichi' has no attribute 'inside_kernel'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 338, in build_Call
    node.ptr = node.func.ptr(*args, **keywords)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\kernel_impl.py", line 58, in decorated
    return fun.__call__(*args)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\kernel_impl.py", line 177, in __call__
    return transform_tree(tree, ctx)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\transform.py", line 9, in transform_tree
    tree = ASTTransformer()(ctx, tree)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 473, in build_Module
    node.body = [build_stmt(ctx, stmt) for stmt in list(node.body)]
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 473, in <listcomp>
    node.body = [build_stmt(ctx, stmt) for stmt in list(node.body)]
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 444, in build_FunctionDef
    build_stmts(ctx, node.body)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 1062, in build_stmts
    result.append(build_stmt(ctx, stmt))
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 450, in build_Return
    node.value = build_stmt(ctx, node.value)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 484, in build_BinOp
    node.left = build_stmt(ctx, node.left)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 484, in build_BinOp
    node.left = build_stmt(ctx, node.left)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 484, in build_BinOp
    node.left = build_stmt(ctx, node.left)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 484, in build_BinOp
    node.left = build_stmt(ctx, node.left)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 484, in build_BinOp
    node.left = build_stmt(ctx, node.left)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 322, in build_Call
    node.args = build_stmts(ctx, node.args)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 1062, in build_stmts
    result.append(build_stmt(ctx, stmt))
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 485, in build_BinOp
    node.right = build_stmt(ctx, node.right)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 33, in __call__
    raise TaichiCompilationError(msg)
taichi.lang.exception.TaichiCompilationError: On line 90 of file "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi_glsl\sampling.py":
    return (sample(field, I + D.xx) * x.x * x.y +
                              ^^^^
AttributeError: module 'taichi' has no attribute 'inside_kernel'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Vineyo\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\Users\Vineyo\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "c:\Users\Vineyo\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy\__main__.py", line 45, in <module>
    cli.main()
  File "c:\Users\Vineyo\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 444, in main
    run()
  File "c:\Users\Vineyo\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 285, in run_file
    runpy.run_path(target_as_str, run_name=compat.force_str("__main__"))
  File "C:\Users\Vineyo\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 268, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "C:\Users\Vineyo\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 97, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "C:\Users\Vineyo\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "c:\Users\Vineyo\Desktop\Ti-Moxi\demo.py", line 33, in <module>
    moxi.update()
  File "c:\Users\Vineyo\Desktop\Ti-Moxi\Taichi_Moxi.py", line 235, in update
    self.update_Pf_star()
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\kernel_impl.py", line 767, in __call__
    return self._primal(self._kernel_owner, *args, **kwargs)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\kernel_impl.py", line 631, in __call__
    key = self.ensure_compiled(*args)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\kernel_impl.py", line 617, in ensure_compiled
    self.materialize(key=key, args=args, arg_features=arg_features)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\kernel_impl.py", line 463, in materialize
    taichi_kernel = _ti_core.create_kernel(taichi_ast_generator,
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\kernel_impl.py", line 458, in taichi_ast_generator
    transform_tree(tree, ctx)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\transform.py", line 9, in transform_tree
    tree = ASTTransformer()(ctx, tree)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 473, in build_Module
    node.body = [build_stmt(ctx, stmt) for stmt in list(node.body)]
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 473, in <listcomp>
    node.body = [build_stmt(ctx, stmt) for stmt in list(node.body)]
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 444, in build_FunctionDef
    build_stmts(ctx, node.body)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 1062, in build_stmts
    result.append(build_stmt(ctx, stmt))
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 873, in build_For
    return ASTTransformer.build_struct_for(ctx,
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 795, in build_struct_for
    node.body = build_stmts(ctx, node.body)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 1062, in build_stmts
    result.append(build_stmt(ctx, stmt))
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 27, in __call__
    raise e
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 24, in __call__
    return method(ctx, node)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer.py", line 68, in build_Assign
    node.value = build_stmt(ctx, node.value)
  File "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi\lang\ast\ast_transformer_utils.py", line 33, in __call__
    raise TaichiCompilationError(msg)
taichi.lang.exception.TaichiCompilationError: On line 197 of file "c:\Users\Vineyo\Desktop\Ti-Moxi\Taichi_Moxi.py":
            self.Pigment_flow_star_c[P] = tg.sampling.bilerp(
                                          ^^^^^^^^^^^^^^^^^^^
                self.Pigment_flow_c, Ppre)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^
On line 90 of file "c:\pyvenv\taichi-0.8.7\lib\site-packages\taichi_glsl\sampling.py":
    return (sample(field, I + D.xx) * x.x * x.y +
                              ^^^^
AttributeError: module 'taichi' has no attribute 'inside_kernel'
[E 12/13/21 23:01:53.892 13944] Received signal 11 (SIGSEGV)


***********************************
* Taichi Compiler Stack Traceback *
***********************************
0x7ff8811c79fa: taichi::print_traceback in taichi_core.pyd
0x7ff88108d529: PyInit_taichi_core in taichi_core.pyd
0x7ff8811b2168: PyInit_taichi_core in taichi_core.pyd
0x7ff91a220ef5: seh_filter_exe in ucrtbase.dll
0x7ff71f7724cc: Unknown Function in python.exe
0x7ff905bfecd0: _C_specific_handler in VCRUNTIME140.dll
0x7ff91c9d217f: _chkstk in ntdll.dll
0x7ff91c981454: RtlRaiseException in ntdll.dll
0x7ff91c9d0cae: KiUserExceptionDispatcher in ntdll.dll
0x7ff88325dc3c: taichi::print_traceback in taichi_core.pyd
0x7ff88325eeae: taichi::print_traceback in taichi_core.pyd
0x7ff8812e3716: taichi::print_traceback in taichi_core.pyd
0x7ff8812eb233: taichi::print_traceback in taichi_core.pyd
0x7ff880f16714: PyInit_taichi_core in taichi_core.pyd
0x7ff880f18ba3: PyInit_taichi_core in taichi_core.pyd
0x7ff880ef526e: pybind11::error_already_set::clear in taichi_core.pyd
0x7ff880efcf12: PyInit_taichi_core in taichi_core.pyd
0x7ff8f5525314: PyDict_NewPresized in python39.dll
0x7ff8f5525808: PyObject_GetDictPtr in python39.dll
0x7ff8f54cf2ed: Py_CheckFunctionResult in python39.dll
0x7ff8f55296fe: PyErr_Clear in python39.dll
0x7ff8f5529711: PyErr_Clear in python39.dll
0x7ff8f5529711: PyErr_Clear in python39.dll
0x7ff8f5529711: PyErr_Clear in python39.dll
0x7ff8f5529711: PyErr_Clear in python39.dll
0x7ff8f5529711: PyErr_Clear in python39.dll
0x7ff8f5529711: PyErr_Clear in python39.dll
0x7ff8f550e1ba: PyObject_GenericSetAttrWithDict in python39.dll
0x7ff8f550d2f6: PyDict_SetItem in python39.dll
0x7ff8f54a8ffb: PyDict_SetItemString in python39.dll
0x7ff8f54a9872: PyModule_GetDict in python39.dll
0x7ff8f54e858a: Py_FinalizeEx in python39.dll
0x7ff8f55321d6: Py_RunMain in python39.dll
0x7ff8f552e3f1: Py_Main in python39.dll
0x7ff71f771254: Unknown Function in python.exe
0x7ff91c677034: BaseThreadInitThunk in KERNEL32.DLL
0x7ff91c982651: RtlUserThreadStart in ntdll.dll

Internal error occurred. Check out this page for possible solutions:
https://docs.taichi.graphics/lang/articles/misc/install

0.8.5倒是没问题,而且可以在 arch=vulkan 时用 GGUI 了,感谢开发人员的努力。

Hi @Vineyo,我建议你把对taichi_glsl的依赖去掉,把使用的函数自己写一下。
因为taichi_glsl暂时没有人力去维护了。

2 个赞