Added flag to be able to disable shader utilities

This commit is contained in:
Alejandro Saucedo
2021-02-21 09:28:05 +00:00
parent f306bf1042
commit 92f556ff57
7 changed files with 48 additions and 30 deletions

View File

@@ -19,6 +19,7 @@ option(KOMPUTE_OPT_ENABLE_SPDLOG "Extra compile flags for Kompute, see docs for
option(KOMPUTE_OPT_REPO_SUBMODULE_BUILD, "Use the submodule repos instead of external package manager" 0)
option(KOMPUTE_OPT_ANDOID_BUILD "Enable android compilation flags required" 0)
option(KOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS "Explicitly disable debug layers even on debug" 0)
option(KOMPUTE_OPT_DISABLE_SHADER_UTILS "Remove shader util code and dependencies including glslang" 0)
# Build flags
set(KOMPUTE_EXTRA_CXX_FLAGS "" CACHE STRING "Extra compile flags for Kompute, see docs for full list")
@@ -42,10 +43,15 @@ if(KOMPUTE_OPT_DISABLE_VK_DEBUG_LAYERS)
set(KOMPUTE_EXTRA_CXX_FLAGS "${KOMPUTE_EXTRA_CXX_FLAGS} -DKOMPUTE_DISABLE_VK_DEBUG_LAYERS=1")
endif()
if(KOMPUTE_OPT_INSTALL)
# Enable install parameters for glslang (overrides parameters passed)
set(ENABLE_GLSLANG_INSTALL ON CACHE BOOL "Enables install of glslang" FORCE)
set(BUILD_SHARED_LIBS ON CACHE BOOL "Enables build of shared libraries" FORCE)
if(NOT KOMPUTE_OPT_DISABLE_SHADER_UTILS)
if(KOMPUTE_OPT_INSTALL)
# Enable install parameters for glslang (overrides parameters passed)
# When install is enabled the glslang libraries become shared
set(ENABLE_GLSLANG_INSTALL ON CACHE BOOL "Enables install of glslang" FORCE)
set(BUILD_SHARED_LIBS ON CACHE BOOL "Enables build of shared libraries" FORCE)
endif()
else()
set(KOMPUTE_EXTRA_CXX_FLAGS "${KOMPUTE_EXTRA_CXX_FLAGS} -DKOMPUTE_DISABLE_SHADER_UTILS=1")
endif()
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG=1 ${KOMPUTE_EXTRA_CXX_FLAGS} -DUSE_DEBUG_EXTENTIONS")

View File

@@ -65,6 +65,8 @@ Compile Flags
- Enable debug build including debug flags (enabled by cmake debug build)
* - -DKOMPUTE_DISABLE_VK_DEBUG_LAYERS
- Disable the debug Vulkan layers, mainly used for android builds
* - -DKOMPUTE_DISABLE_SHADER_UTILS
- Disable the shader utils and skip adding glslang as dependency
Dependencies

View File

@@ -30,7 +30,7 @@ PYBIND11_MODULE(kp, m) {
.value("storage", kp::Tensor::TensorTypes::eStorage, "Tensor with host visible gpu memory.")
.export_values();
#if !defined(KOMPUTE_DISABLE_SHADER_UTILS) || !KOMPUTE_DISABLE_SHADER_UTILS
py::class_<kp::Shader>(m, "Shader", "Shader class")
.def_static("compile_source", [](
const std::string& source,
@@ -51,6 +51,7 @@ PYBIND11_MODULE(kp, m) {
},
"Compiles sources provided with file names and returns the value in bytes",
py::arg("sources"), py::arg("files") = std::vector<std::string>(), py::arg("entryPoint") = "main", py::arg("definitions") = std::vector<std::pair<std::string,std::string>>() );
#endif // KOMPUTE_DISABLE_SHADER_UTILS
py::class_<kp::Tensor, std::shared_ptr<kp::Tensor>>(m, "Tensor", DOC(kp, Tensor))
.def(py::init(

View File

@@ -107,6 +107,7 @@ extern py::object kp_debug, kp_info, kp_warning, kp_error;
#endif // KOMPUTE_SPDLOG_ENABLED
#endif // KOMPUTE_LOG_OVERRIDE
#if !defined(KOMPUTE_DISABLE_SHADER_UTILS) || !KOMPUTE_DISABLE_SHADER_UTILS
#include <iostream>
#include <vector>
@@ -159,6 +160,7 @@ public:
};
}
#endif // DKOMPUTE_DISABLE_SHADER_UTILS
/*
THIS FILE HAS BEEN AUTOMATICALLY GENERATED - DO NOT EDIT

View File

@@ -109,35 +109,37 @@ endif()
#################### GLSLANG #######################
#####################################################
if(KOMPUTE_OPT_REPO_SUBMODULE_BUILD)
add_subdirectory(${PROJECT_SOURCE_DIR}/external/glslang
${CMAKE_CURRENT_BINARY_DIR}/kompute_glslang)
if(NOT KOMPUTE_OPT_DISABLE_SHADER_UTILS)
if(KOMPUTE_OPT_REPO_SUBMODULE_BUILD)
add_subdirectory(${PROJECT_SOURCE_DIR}/external/glslang
${CMAKE_CURRENT_BINARY_DIR}/kompute_glslang)
target_include_directories(
kompute PRIVATE
${PROJECT_SOURCE_DIR}/external/glslang)
target_include_directories(
kompute PRIVATE
${PROJECT_SOURCE_DIR}/external/glslang)
target_link_libraries(kompute
# Not including hlsl support
# HLSL
# glslang includes OGLCompiler, OSDependent, MachineIndependent
glslang
SPIRV
glslang-default-resource-limits)
else()
find_package(glslang CONFIG REQUIRED)
target_link_libraries(kompute
# Not including hlsl support
# HLSL
# glslang includes OGLCompiler, OSDependent, MachineIndependent
glslang
SPIRV
glslang-default-resource-limits)
else()
find_package(glslang CONFIG REQUIRED)
target_include_directories(
kompute PRIVATE
${GLSLANG_GENERATED_INCLUDEDIR})
target_include_directories(
kompute PRIVATE
${GLSLANG_GENERATED_INCLUDEDIR})
target_link_libraries(kompute
# Not including hlsl support
# glslang::HLSL
# Adding explicit dependencies to match above
glslang
SPIRV
glslang-default-resource-limits)
target_link_libraries(kompute
# Not including hlsl support
# glslang::HLSL
# Adding explicit dependencies to match above
glslang
SPIRV
glslang-default-resource-limits)
endif()
endif()

View File

@@ -1,4 +1,5 @@
#if !defined(KOMPUTE_DISABLE_SHADER_UTILS) || !KOMPUTE_DISABLE_SHADER_UTILS
#include "kompute/Shader.hpp"
namespace kp {
@@ -92,3 +93,4 @@ Shader::compile_source(const std::string& source,
}
}
#endif // DKOMPUTE_DISABLE_SHADER_UTILS

View File

@@ -1,5 +1,6 @@
#pragma once
#if !defined(KOMPUTE_DISABLE_SHADER_UTILS) || !KOMPUTE_DISABLE_SHADER_UTILS
#include <iostream>
#include <vector>
@@ -54,3 +55,5 @@ public:
};
}
#endif // DKOMPUTE_DISABLE_SHADER_UTILS