Mesa (master): nvc0: allow to force compiling programs in debug build

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Mon Sep 26 17:41:32 UTC 2016


Module: Mesa
Branch: master
Commit: ac859d68f474694f9cb1de007997c936d735a48c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ac859d68f474694f9cb1de007997c936d735a48c

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Wed Sep 14 20:37:12 2016 +0200

nvc0: allow to force compiling programs in debug build

This adds a new envvar called NV50_PROG_CHIPSET which allows to
compile shaders with a different target, especially useful for
shader-db.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

---

 src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
index 9f29b29..e058630 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
@@ -562,6 +562,14 @@ nvc0_program_translate(struct nvc0_program *prog, uint16_t chipset,
    info->bin.sourceRep = NV50_PROGRAM_IR_TGSI;
    info->bin.source = (void *)prog->pipe.tokens;
 
+#ifdef DEBUG
+   info->target = debug_get_num_option("NV50_PROG_CHIPSET", chipset);
+   info->optLevel = debug_get_num_option("NV50_PROG_OPTIMIZE", 3);
+   info->dbgFlags = debug_get_num_option("NV50_PROG_DEBUG", 0);
+#else
+   info->optLevel = 3;
+#endif
+
    info->io.genUserClip = prog->vp.num_ucps;
    info->io.auxCBSlot = 15;
    info->io.msInfoCBSlot = 15;
@@ -570,12 +578,12 @@ nvc0_program_translate(struct nvc0_program *prog, uint16_t chipset,
    info->io.msInfoBase = NVC0_CB_AUX_MS_INFO;
    info->io.bufInfoBase = NVC0_CB_AUX_BUF_INFO(0);
    info->io.suInfoBase = NVC0_CB_AUX_SU_INFO(0);
-   if (chipset >= NVISA_GK104_CHIPSET) {
+   if (info->target >= NVISA_GK104_CHIPSET) {
       info->io.texBindBase = NVC0_CB_AUX_TEX_INFO(0);
    }
 
    if (prog->type == PIPE_SHADER_COMPUTE) {
-      if (chipset >= NVISA_GK104_CHIPSET) {
+      if (info->target >= NVISA_GK104_CHIPSET) {
          info->io.auxCBSlot = 7;
          info->io.msInfoCBSlot = 7;
          info->io.uboInfoBase = NVC0_CB_AUX_UBO_INFO(0);
@@ -587,13 +595,6 @@ nvc0_program_translate(struct nvc0_program *prog, uint16_t chipset,
 
    info->assignSlots = nvc0_program_assign_varying_slots;
 
-#ifdef DEBUG
-   info->optLevel = debug_get_num_option("NV50_PROG_OPTIMIZE", 3);
-   info->dbgFlags = debug_get_num_option("NV50_PROG_DEBUG", 0);
-#else
-   info->optLevel = 3;
-#endif
-
    ret = nv50_ir_generate_code(info);
    if (ret) {
       NOUVEAU_ERR("shader translation failed: %i\n", ret);




More information about the mesa-commit mailing list