def torch_test(func): import taichi as ti if ti.has_pytorch(): # OpenGL somehow crashes torch test without a reason, unforturnately return ti.archs_excluding(ti.opengl)(func) else: return lambda: None
def archs_support_random(func): return ti.archs_excluding(ti.metal)(func)
def ti_support_non_top_dynamic(test): return ti.archs_excluding(ti.opengl, ti.cc)(test)
def ti_support_dynamic(test): return ti.archs_excluding(ti.cc)(test)
def archs_support_bitmasked(func): return ti.archs_excluding(ti.opengl)(func)
def all_archs_for_this(test): # ti.call_internal() is not supported on Metal and OpenGL yet return ti.archs_excluding(ti.metal, ti.opengl)(test)
def all_archs_for_this(test): # ti.call_internal() is not supported on CUDA, Metal, OpenGL yet return ti.archs_excluding(ti.metal, ti.opengl, ti.cuda, ti.vulkan)(test)
def ti_support_dynamic(test): return ti.archs_excluding(ti.opengl, ti.cc, ti.vulkan)(test)