From 2fba72046da09dd28f54df02794b358773899d13 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vedran=20Mileti=C4=87?= Date: Wed, 28 Sep 2016 16:18:24 +0200 Subject: [PATCH] clover: Introduce CLOVER_EXTRA_*_OPTIONS environment variables MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The options specified in the CLOVER_EXTRA_BUILD_OPTIONS shell variable are appended to the options specified by the OpenCL program in the clBuildProgram function call, if any. Analogously, the options specified in the CLOVER_EXTRA_COMPILE_OPTIONS and CLOVER_EXTRA_LINK_OPTIONS variables are appended to the options specified in clCompileProgram and clLinkProgram function calls, respectively. 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 v6: * separate in CLOVER_EXTRA_{BUILD,COMPILE,LINK}_OPTIONS * append options in cl{Build,Compile,Link}Program Signed-off-by: Vedran Miletić Reviewed-by[v1]: Edward O'Callaghan v7 [Francisco Jerez]: Slight simplification. Reviewed-by: Francisco Jerez --- docs/envvars.html | 15 +++++++++++++++ src/gallium/state_trackers/clover/api/program.cpp | 10 +++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/envvars.html b/docs/envvars.html index cf57ca59da5..af1a30c68ef 100644 --- a/docs/envvars.html +++ b/docs/envvars.html @@ -235,6 +235,21 @@ Setting to "tgsi", for example, will print all the TGSI shaders. See src/mesa/state_tracker/st_debug.c for other options. +

Clover state tracker environment variables

+ +
    +
  • CLOVER_EXTRA_BUILD_OPTIONS - allows specifying additional compiler and linker + options. Specified options are appended after the options set by the OpenCL + program in clBuildProgram. +
  • CLOVER_EXTRA_COMPILE_OPTIONS - allows specifying additional compiler + options. Specified options are appended after the options set by the OpenCL + program in clCompileProgram. +
  • CLOVER_EXTRA_LINK_OPTIONS - allows specifying additional linker + options. Specified options are appended after the options set by the OpenCL + program in clLinkProgram. +
+ +

Softpipe driver environment variables

  • SOFTPIPE_DUMP_FS - if set, the softpipe driver will print fragment shaders diff --git a/src/gallium/state_trackers/clover/api/program.cpp b/src/gallium/state_trackers/clover/api/program.cpp index c3f9cb97f5b..ba4ce7a0c4a 100644 --- a/src/gallium/state_trackers/clover/api/program.cpp +++ b/src/gallium/state_trackers/clover/api/program.cpp @@ -22,6 +22,7 @@ #include "api/util.hpp" #include "core/program.hpp" +#include "util/u_debug.h" #include @@ -177,7 +178,8 @@ clBuildProgram(cl_program d_prog, cl_uint num_devs, auto &prog = obj(d_prog); auto devs = (d_devs ? objs(d_devs, num_devs) : ref_vector(prog.context().devices())); - auto opts = (p_opts ? p_opts : ""); + const auto opts = std::string(p_opts ? p_opts : "") + " " + + debug_get_option("CLOVER_EXTRA_BUILD_OPTIONS", ""); validate_build_common(prog, num_devs, d_devs, pfn_notify, user_data); @@ -202,7 +204,8 @@ clCompileProgram(cl_program d_prog, cl_uint num_devs, auto &prog = obj(d_prog); auto devs = (d_devs ? objs(d_devs, num_devs) : ref_vector(prog.context().devices())); - auto opts = (p_opts ? p_opts : ""); + const auto opts = std::string(p_opts ? p_opts : "") + " " + + debug_get_option("CLOVER_EXTRA_COMPILE_OPTIONS", ""); header_map headers; validate_build_common(prog, num_devs, d_devs, pfn_notify, user_data); @@ -271,7 +274,8 @@ clLinkProgram(cl_context d_ctx, cl_uint num_devs, const cl_device_id *d_devs, void (*pfn_notify) (cl_program, void *), void *user_data, cl_int *r_errcode) try { auto &ctx = obj(d_ctx); - auto opts = (p_opts ? p_opts : ""); + const auto opts = std::string(p_opts ? p_opts : "") + " " + + debug_get_option("CLOVER_EXTRA_LINK_OPTIONS", ""); auto progs = objs(d_progs, num_progs); auto prog = create(ctx); auto devs = validate_link_devices(progs, -- 2.30.2