The options specified in the CLOVER_EXTRA_COMPILER_OPTIONS shell variable are appended to the compiler options specified by the OpenCL program, if any. Analogously, the options specified in the CLOVER_EXTRA_LINKER_OPTIONS variable are appended to the linker options and the options spoecified in the CLOVER_EXTRA_COMPILER_OPTIONS variable.
v2: * rename to CLOVER_EXTRA_COMPILER_OPTIONS * use debug_get_option * append to linker options as well v3: code cleanups v4: separate CLOVER_EXTRA_LINKER_OPTIONS options v5: * fix documentation typo *use CLOVER_EXTRA_COMPILER_OPTIONS in link stage Signed-off-by: Vedran Miletić <ved...@miletic.net> Reviewed-by[v1]: Edward O'Callaghan <funfunc...@folklore1984.net> --- docs/envvars.html | 13 +++++++++++++ src/gallium/state_trackers/clover/llvm/invocation.cpp | 11 ++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/docs/envvars.html b/docs/envvars.html index cf57ca5..252b783 100644 --- a/docs/envvars.html +++ b/docs/envvars.html @@ -235,6 +235,19 @@ Setting to "tgsi", for example, will print all the TGSI shaders. See src/mesa/state_tracker/st_debug.c for other options. </ul> +<h3>Clover state tracker environment variables</h3> + +<ul> +<li>CLOVER_EXTRA_COMPILER_OPTIONS - allows specifying additional compiler + options. Specified options are appended after the options set by the OpenCL + program in clBuildProgram and/or clCompileProgram. +<li>CLOVER_EXTRA_LINKER_OPTIONS - allows specifying additional linker + options. Specified options are appended after the options set by the OpenCL + linker in clBuildProgram and/or clLinkProgram and options set in the + CLOVER_EXTRA_COMPILER_OPTIONS variable. +</ul> + + <h3>Softpipe driver environment variables</h3> <ul> <li>SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp index b5e8b52..68b9d2e 100644 --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp @@ -199,11 +199,13 @@ clover::llvm::compile_program(const std::string &source, const std::string &target, const std::string &opts, std::string &r_log) { + const std::string all_opts = opts + " " + + debug_get_option("CLOVER_EXTRA_COMPILER_OPTIONS", ""); if (has_flag(debug::clc)) - debug::log(".cl", "// Options: " + opts + '\n' + source); + debug::log(".cl", "// Options: " + all_opts + '\n' + source); auto ctx = create_context(r_log); - auto c = create_compiler_instance(target, tokenize(opts + " input.cl"), + auto c = create_compiler_instance(target, tokenize(all_opts + " input.cl"), r_log); auto mod = compile(*ctx, *c, "input.cl", source, headers, target, opts, r_log); @@ -266,7 +268,10 @@ module clover::llvm::link_program(const std::vector<module> &modules, enum pipe_shader_ir ir, const std::string &target, const std::string &opts, std::string &r_log) { - std::vector<std::string> options = tokenize(opts + " input.cl"); + const std::string all_opts = opts + " " + + debug_get_option("CLOVER_EXTRA_COMPILER_OPTIONS", "") + + debug_get_option("CLOVER_EXTRA_LINKER_OPTIONS", ""); + std::vector<std::string> options = tokenize(all_opts + " input.cl"); const bool create_library = count("-create-library", options); erase_if(equals("-create-library"), options); -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev