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

Author: Brian Paul <[email protected]>
Date:   Thu Mar 19 09:26:20 2009 -0600

glsl: when debug pragma is on, emit comments about function calls/inlines

BTW, the debug pragma syntax is "#pragma debug(on)"

---

 src/mesa/shader/slang/slang_codegen.c |    6 ++++++
 src/mesa/shader/slang/slang_emit.c    |    6 ++++++
 src/mesa/shader/slang/slang_ir.h      |    1 +
 3 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/mesa/shader/slang/slang_codegen.c 
b/src/mesa/shader/slang/slang_codegen.c
index 6c8c8c1..13a801c 100644
--- a/src/mesa/shader/slang/slang_codegen.c
+++ b/src/mesa/shader/slang/slang_codegen.c
@@ -1439,6 +1439,12 @@ _slang_gen_function_call(slang_assemble_ctx *A, 
slang_function *fun,
    /*_slang_label_delete(A->curFuncEndLabel);*/
    A->curFuncEndLabel = prevFuncEndLabel;
 
+   if (A->pragmas->Debug) {
+      char s[1000];
+      snprintf(s, sizeof(s), "Call/inline %s()", (char *) fun->header.a_name);
+      n->Comment = _slang_strdup(s);
+   }
+
    return n;
 }
 
diff --git a/src/mesa/shader/slang/slang_emit.c 
b/src/mesa/shader/slang/slang_emit.c
index 94d0c08..1b1edb4 100644
--- a/src/mesa/shader/slang/slang_emit.c
+++ b/src/mesa/shader/slang/slang_emit.c
@@ -2194,6 +2194,12 @@ emit(slang_emit_info *emitInfo, slang_ir_node *n)
       return NULL;
    }
 
+   if (n->Comment) {
+      inst = new_instruction(emitInfo, OPCODE_NOP);
+      inst->Comment = _mesa_strdup(n->Comment);
+      inst = NULL;
+   }
+
    switch (n->Opcode) {
    case IR_SEQ:
       /* sequence of two sub-trees */
diff --git a/src/mesa/shader/slang/slang_ir.h b/src/mesa/shader/slang/slang_ir.h
index 0ec38b1..e796693 100644
--- a/src/mesa/shader/slang/slang_ir.h
+++ b/src/mesa/shader/slang/slang_ir.h
@@ -212,6 +212,7 @@ typedef struct slang_ir_node_
    struct slang_ir_node_ *List;  /**< For various linked lists */
    struct slang_ir_node_ *Parent;  /**< Pointer to logical parent (ie. loop) */
    slang_label *Label;  /**< Used for branches */
+   const char *Comment; /**< If Opcode == IR_COMMENT */
 } slang_ir_node;
 
 

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to