diff --git a/cmake/TaichiCore.cmake b/cmake/TaichiCore.cmake index 7017364300774..3096832be40c7 100644 --- a/cmake/TaichiCore.cmake +++ b/cmake/TaichiCore.cmake @@ -251,9 +251,11 @@ if (APPLE) ) endif() +# TODO: replace these includes per target basis include_directories(${CMAKE_SOURCE_DIR}) include_directories(external/include) include_directories(external/spdlog/include) +include_directories(external/glad/include) include_directories(external/SPIRV-Tools/include) include_directories(external/PicoSHA2) if (TI_WITH_OPENGL) @@ -351,6 +353,9 @@ if (TI_WITH_OPENGL) add_subdirectory(external/SPIRV-Cross) target_include_directories(${CORE_LIBRARY_NAME} PRIVATE external/SPIRV-Cross) target_link_libraries(${CORE_LIBRARY_NAME} PRIVATE spirv-cross-glsl spirv-cross-core) + + add_subdirectory(taichi/runtime/opengl) + target_link_libraries(${CORE_LIBRARY_NAME} PRIVATE opengl_runtime) endif() if (TI_WITH_DX11) diff --git a/taichi/backends/opengl/codegen_opengl.cpp b/taichi/backends/opengl/codegen_opengl.cpp index 173d8cd1c8aee..7f232b26315b5 100644 --- a/taichi/backends/opengl/codegen_opengl.cpp +++ b/taichi/backends/opengl/codegen_opengl.cpp @@ -3,7 +3,7 @@ #include -#include "taichi/backends/opengl/opengl_api.h" +#include "taichi/runtime/opengl/opengl_api.h" #include "taichi/backends/opengl/opengl_data_types.h" #include "taichi/backends/opengl/opengl_kernel_util.h" #include "taichi/ir/ir.h" @@ -31,7 +31,7 @@ namespace shaders { #define TI_INSIDE_OPENGL_CODEGEN #include "taichi/backends/opengl/shaders/atomics_macro_f32.glsl.h" -#include "taichi/backends/opengl/shaders/runtime.h" +#include "taichi/runtime/opengl/shaders/runtime.h" #include "taichi/backends/opengl/shaders/random.glsl.h" #include "taichi/backends/opengl/shaders/fast_pow.glsl.h" #include "taichi/backends/opengl/shaders/print.glsl.h" diff --git a/taichi/backends/opengl/codegen_opengl.h b/taichi/backends/opengl/codegen_opengl.h index a630f291b3959..8e4dba27f3977 100644 --- a/taichi/backends/opengl/codegen_opengl.h +++ b/taichi/backends/opengl/codegen_opengl.h @@ -3,7 +3,7 @@ #include "taichi/inc/constants.h" #include "taichi/lang_util.h" #include "taichi/backends/opengl/struct_opengl.h" -#include "taichi/backends/opengl/opengl_api.h" +#include "taichi/runtime/opengl/opengl_api.h" #include #include diff --git a/taichi/backends/opengl/opengl_device.cpp b/taichi/backends/opengl/opengl_device.cpp index 2eda864bab310..b399cbb12e9ab 100644 --- a/taichi/backends/opengl/opengl_device.cpp +++ b/taichi/backends/opengl/opengl_device.cpp @@ -1,5 +1,5 @@ #include "opengl_device.h" -#include "opengl_api.h" +#include "taichi/runtime/opengl/opengl_api.h" namespace taichi { namespace lang { diff --git a/taichi/backends/opengl/opengl_program.h b/taichi/backends/opengl/opengl_program.h index d6f8e9e120307..1d495f7654a3a 100644 --- a/taichi/backends/opengl/opengl_program.h +++ b/taichi/backends/opengl/opengl_program.h @@ -2,8 +2,8 @@ #include "taichi/backends/opengl/struct_opengl.h" -#include "taichi/backends/opengl/opengl_kernel_launcher.h" -#include "taichi/backends/opengl/opengl_api.h" +#include "taichi/runtime/opengl/opengl_kernel_launcher.h" +#include "taichi/runtime/opengl/opengl_api.h" #include "taichi/backends/opengl/codegen_opengl.h" #include "taichi/system/memory_pool.h" diff --git a/taichi/backends/opengl/shaders/indirect.glsl.h b/taichi/backends/opengl/shaders/indirect.glsl.h index 04b215a7ef50d..09170c998c5de 100644 --- a/taichi/backends/opengl/shaders/indirect.glsl.h +++ b/taichi/backends/opengl/shaders/indirect.glsl.h @@ -5,7 +5,7 @@ "#version 430 core\nprecision highp float;\n" #define TI_INSIDE_OPENGL_CODEGEN #define TI_OPENGL_NESTED_INCLUDE -#include "taichi/backends/opengl/shaders/runtime.h" +#include "taichi/runtime/opengl/shaders/runtime.h" #undef TI_OPENGL_NESTED_INCLUDE #undef TI_INSIDE_OPENGL_CODEGEN STR( diff --git a/taichi/backends/opengl/struct_opengl.h b/taichi/backends/opengl/struct_opengl.h index 475bf97d52270..2d9faad8a6d5d 100644 --- a/taichi/backends/opengl/struct_opengl.h +++ b/taichi/backends/opengl/struct_opengl.h @@ -1,7 +1,7 @@ // Codegen for the hierarchical data structure #pragma once -#include "taichi/backends/opengl/opengl_kernel_launcher.h" +#include "taichi/runtime/opengl/opengl_kernel_launcher.h" #include "taichi/backends/opengl/opengl_data_types.h" #include "taichi/ir/snode.h" diff --git a/taichi/codegen/spirv/spirv_ir_builder.cpp b/taichi/codegen/spirv/spirv_ir_builder.cpp index b5e58359d915d..f3386e98b0891 100644 --- a/taichi/codegen/spirv/spirv_ir_builder.cpp +++ b/taichi/codegen/spirv/spirv_ir_builder.cpp @@ -1206,7 +1206,7 @@ void IRBuilder::init_random_function(Value global_tmp_) { store_var(rand_z_, _521288629u); store_var(rand_w_, _88675123u); - enum spv::Op add_op = spv::OpIAdd; + // enum spv::Op add_op = spv::OpIAdd; bool use_atomic_increment = false; // use atomic increment for DX API to avoid error X3694 diff --git a/taichi/program/extension.cpp b/taichi/program/extension.cpp index 0db7e436fca61..cff4620c5e913 100644 --- a/taichi/program/extension.cpp +++ b/taichi/program/extension.cpp @@ -1,5 +1,4 @@ #include "extension.h" -//#include "taichi/backends/opengl/opengl_api.h" #include #include diff --git a/taichi/python/export_misc.cpp b/taichi/python/export_misc.cpp index a1abb389ab782..2ede85517e551 100644 --- a/taichi/python/export_misc.cpp +++ b/taichi/python/export_misc.cpp @@ -4,7 +4,7 @@ *******************************************************************************/ #include "taichi/backends/metal/api.h" -#include "taichi/backends/opengl/opengl_api.h" +#include "taichi/runtime/opengl/opengl_api.h" #include "taichi/runtime/vulkan/runtime.h" #include "taichi/backends/dx/dx_api.h" #include "taichi/common/core.h" diff --git a/taichi/runtime/opengl/CMakeLists.txt b/taichi/runtime/opengl/CMakeLists.txt new file mode 100644 index 0000000000000..e736722bade47 --- /dev/null +++ b/taichi/runtime/opengl/CMakeLists.txt @@ -0,0 +1,16 @@ +# ./taichi/runtime/opengl/CMakeLists.txt + +add_library(opengl_runtime) +target_sources(opengl_runtime + PRIVATE + opengl_api.cpp + ) +target_include_directories(opengl_runtime + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/shaders + ${PROJECT_SOURCE_DIR}/external/SPIRV-Tools/include + ${PROJECT_SOURCE_DIR}/external/glad/include + ${PROJECT_SOURCE_DIR}/external/eigen + ${PROJECT_SOURCE_DIR}/external/glfw/include + ) diff --git a/taichi/backends/opengl/opengl_api.cpp b/taichi/runtime/opengl/opengl_api.cpp similarity index 99% rename from taichi/backends/opengl/opengl_api.cpp rename to taichi/runtime/opengl/opengl_api.cpp index 9e870814e75f0..cbb05d0340b56 100644 --- a/taichi/backends/opengl/opengl_api.cpp +++ b/taichi/runtime/opengl/opengl_api.cpp @@ -4,7 +4,7 @@ #include "taichi/backends/opengl/opengl_kernel_util.h" #include "taichi/backends/opengl/opengl_utils.h" -#include "taichi/backends/opengl/shaders/runtime.h" +#include "taichi/runtime/opengl/shaders/runtime.h" #include "taichi/ir/transforms.h" #include "taichi/program/kernel.h" #include "taichi/program/program.h" diff --git a/taichi/backends/opengl/opengl_api.h b/taichi/runtime/opengl/opengl_api.h similarity index 98% rename from taichi/backends/opengl/opengl_api.h rename to taichi/runtime/opengl/opengl_api.h index 6f4ee6e27a8f5..7fb5fe203e1be 100644 --- a/taichi/backends/opengl/opengl_api.h +++ b/taichi/runtime/opengl/opengl_api.h @@ -5,7 +5,7 @@ #include #include "taichi/backends/device.h" -#include "taichi/backends/opengl/opengl_kernel_launcher.h" +#include "taichi/runtime/opengl/opengl_kernel_launcher.h" #include "taichi/backends/opengl/opengl_kernel_util.h" #include "taichi/common/core.h" #include "taichi/ir/offloaded_task_type.h" diff --git a/taichi/backends/opengl/opengl_kernel_launcher.h b/taichi/runtime/opengl/opengl_kernel_launcher.h similarity index 100% rename from taichi/backends/opengl/opengl_kernel_launcher.h rename to taichi/runtime/opengl/opengl_kernel_launcher.h diff --git a/taichi/backends/opengl/shaders/runtime.h b/taichi/runtime/opengl/shaders/runtime.h similarity index 100% rename from taichi/backends/opengl/shaders/runtime.h rename to taichi/runtime/opengl/shaders/runtime.h