=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Print opcode names instead of enum values.

Alexandre Julliard julliard at wine.codeweavers.com
Sun Jan 3 14:24:15 CST 2016


Module: wine
Branch: master
Commit: 8ac0526013753ef4ef45a71f17ef9aea676e8159
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8ac0526013753ef4ef45a71f17ef9aea676e8159

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Fri Jan  1 18:08:05 2016 +0100

wined3d: Print opcode names instead of enum values.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/arb_program_shader.c |  8 ++++----
 dlls/wined3d/glsl_shader.c        | 10 +++++-----
 dlls/wined3d/shader.c             |  8 ++++++++
 dlls/wined3d/wined3d_private.h    |  1 +
 4 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
index 3dfc8c4..5f493b2 100644
--- a/dlls/wined3d/arb_program_shader.c
+++ b/dlls/wined3d/arb_program_shader.c
@@ -1798,7 +1798,7 @@ static void shader_hw_map2gl(const struct wined3d_shader_instruction *ins)
         case WINED3DSIH_MOVA:instruction = "ARR"; break;
         case WINED3DSIH_DSX: instruction = "DDX"; break;
         default: instruction = "";
-            FIXME("Unhandled opcode %#x\n", ins->handler_idx);
+            FIXME("Unhandled opcode %s.\n", debug_d3dshaderinstructionhandler(ins->handler_idx));
             break;
     }
 
@@ -2487,7 +2487,7 @@ static void shader_hw_mnxn(const struct wined3d_shader_instruction *ins)
             tmp_ins.handler_idx = WINED3DSIH_DP3;
             break;
         default:
-            FIXME("Unhandled opcode %#x\n", ins->handler_idx);
+            FIXME("Unhandled opcode %s.\n", debug_d3dshaderinstructionhandler(ins->handler_idx));
             break;
     }
 
@@ -2559,7 +2559,7 @@ static void shader_hw_scalar_op(const struct wined3d_shader_instruction *ins)
             instruction = "LG2";
             break;
         default: instruction = "";
-            FIXME("Unhandled opcode %#x\n", ins->handler_idx);
+            FIXME("Unhandled opcode %s.\n", debug_d3dshaderinstructionhandler(ins->handler_idx));
             break;
     }
 
@@ -5729,7 +5729,7 @@ static void shader_arb_handle_instruction(const struct wined3d_shader_instructio
     /* Unhandled opcode */
     if (!hw_fct)
     {
-        FIXME("Backend can't handle opcode %#x\n", ins->handler_idx);
+        FIXME("Backend can't handle opcode %s.\n", debug_d3dshaderinstructionhandler(ins->handler_idx));
         return;
     }
     hw_fct(ins);
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index ed87e79..366c6ec 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -2914,7 +2914,7 @@ static void shader_glsl_binop(const struct wined3d_shader_instruction *ins)
         case WINED3DSIH_XOR:  op = "^";  break;
         default:
             op = "<unhandled operator>";
-            FIXME("Opcode %#x not yet handled in GLSL\n", ins->handler_idx);
+            FIXME("Opcode %s not yet handled in GLSL.\n", debug_d3dshaderinstructionhandler(ins->handler_idx));
             break;
     }
 
@@ -3200,7 +3200,7 @@ static void shader_glsl_map2gl(const struct wined3d_shader_instruction *ins)
         case WINED3DSIH_ROUND_NI: instruction = "floor"; break;
         case WINED3DSIH_SQRT: instruction = "sqrt"; break;
         default: instruction = "";
-            FIXME("Opcode %#x not yet handled in GLSL\n", ins->handler_idx);
+            FIXME("Opcode %s not yet handled in GLSL.\n", debug_d3dshaderinstructionhandler(ins->handler_idx));
             break;
     }
 
@@ -3389,7 +3389,7 @@ static void shader_glsl_compare(const struct wined3d_shader_instruction *ins)
             case WINED3DSIH_SLT: compare = "lessThan"; break;
             case WINED3DSIH_SGE: compare = "greaterThanEqual"; break;
             default: compare = "";
-                FIXME("Can't handle opcode %#x\n", ins->handler_idx);
+                FIXME("Can't handle opcode %s.\n", debug_d3dshaderinstructionhandler(ins->handler_idx));
         }
 
         shader_addline(ins->ctx->buffer, "vec%d(%s(%s, %s)));\n", mask_size, compare,
@@ -3413,7 +3413,7 @@ static void shader_glsl_compare(const struct wined3d_shader_instruction *ins)
                 shader_addline(ins->ctx->buffer, "step(%s, %s));\n", src1_param.param_str, src0_param.param_str);
                 break;
             default:
-                FIXME("Can't handle opcode %#x\n", ins->handler_idx);
+                FIXME("Can't handle opcode %s.\n", debug_d3dshaderinstructionhandler(ins->handler_idx));
         }
 
     }
@@ -7941,7 +7941,7 @@ static void shader_glsl_handle_instruction(const struct wined3d_shader_instructi
     /* Unhandled opcode */
     if (!hw_fct)
     {
-        FIXME("Backend can't handle opcode %#x\n", ins->handler_idx);
+        FIXME("Backend can't handle opcode %s.\n", debug_d3dshaderinstructionhandler(ins->handler_idx));
         return;
     }
     hw_fct(ins);
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
index bf420ee..2837229 100644
--- a/dlls/wined3d/shader.c
+++ b/dlls/wined3d/shader.c
@@ -178,6 +178,14 @@ static const char * const semantic_names[] =
     /* WINED3D_DECL_USAGE_SAMPLE        */ "SAMPLE",
 };
 
+const char *debug_d3dshaderinstructionhandler(enum WINED3D_SHADER_INSTRUCTION_HANDLER handler_idx)
+{
+    if (handler_idx >= sizeof(shader_opcode_names) / sizeof(*shader_opcode_names))
+        return wine_dbg_sprintf("UNRECOGNIZED(%#x)", handler_idx);
+
+    return shader_opcode_names[handler_idx];
+}
+
 static const char *shader_semantic_name_from_usage(enum wined3d_decl_usage usage)
 {
     if (usage >= sizeof(semantic_names) / sizeof(*semantic_names))
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 23fe595..288d683 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2853,6 +2853,7 @@ void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) DECLSPE
  */
 
 /* Trace routines */
+const char *debug_d3dshaderinstructionhandler(enum WINED3D_SHADER_INSTRUCTION_HANDLER handler_idx) DECLSPEC_HIDDEN;
 const char *debug_d3dformat(enum wined3d_format_id format_id) DECLSPEC_HIDDEN;
 const char *debug_d3ddevicetype(enum wined3d_device_type device_type) DECLSPEC_HIDDEN;
 const char *debug_d3dresourcetype(enum wined3d_resource_type resource_type) DECLSPEC_HIDDEN;




More information about the wine-cvs mailing list