[PATCH 2/5] wined3d: Trace command stream opcodes.

Henri Verbeet hverbeet at codeweavers.com
Thu Aug 16 02:39:19 CDT 2018


Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
 dlls/wined3d/cs.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index 3f1ca8ce658..d6bc7399ca5 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -443,6 +443,65 @@ struct wined3d_cs_stop
     enum wined3d_cs_op opcode;
 };
 
+static const char *debug_cs_op(enum wined3d_cs_op op)
+{
+    switch (op)
+    {
+#define WINED3D_TO_STR(type) case type: return #type
+        WINED3D_TO_STR(WINED3D_CS_OP_NOP);
+        WINED3D_TO_STR(WINED3D_CS_OP_PRESENT);
+        WINED3D_TO_STR(WINED3D_CS_OP_CLEAR);
+        WINED3D_TO_STR(WINED3D_CS_OP_DISPATCH);
+        WINED3D_TO_STR(WINED3D_CS_OP_DRAW);
+        WINED3D_TO_STR(WINED3D_CS_OP_FLUSH);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_PREDICATION);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_VIEWPORTS);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_SCISSOR_RECTS);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_RENDERTARGET_VIEW);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_DEPTH_STENCIL_VIEW);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_VERTEX_DECLARATION);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_STREAM_SOURCE);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_STREAM_SOURCE_FREQ);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_STREAM_OUTPUT);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_INDEX_BUFFER);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_CONSTANT_BUFFER);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_TEXTURE);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_SHADER_RESOURCE_VIEW);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_UNORDERED_ACCESS_VIEW);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_SAMPLER);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_SHADER);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_BLEND_STATE);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_RASTERIZER_STATE);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_RENDER_STATE);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_TEXTURE_STATE);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_SAMPLER_STATE);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_TRANSFORM);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_CLIP_PLANE);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_COLOR_KEY);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_MATERIAL);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_LIGHT);
+        WINED3D_TO_STR(WINED3D_CS_OP_SET_LIGHT_ENABLE);
+        WINED3D_TO_STR(WINED3D_CS_OP_PUSH_CONSTANTS);
+        WINED3D_TO_STR(WINED3D_CS_OP_RESET_STATE);
+        WINED3D_TO_STR(WINED3D_CS_OP_CALLBACK);
+        WINED3D_TO_STR(WINED3D_CS_OP_QUERY_ISSUE);
+        WINED3D_TO_STR(WINED3D_CS_OP_PRELOAD_RESOURCE);
+        WINED3D_TO_STR(WINED3D_CS_OP_UNLOAD_RESOURCE);
+        WINED3D_TO_STR(WINED3D_CS_OP_MAP);
+        WINED3D_TO_STR(WINED3D_CS_OP_UNMAP);
+        WINED3D_TO_STR(WINED3D_CS_OP_BLT_SUB_RESOURCE);
+        WINED3D_TO_STR(WINED3D_CS_OP_UPDATE_SUB_RESOURCE);
+        WINED3D_TO_STR(WINED3D_CS_OP_ADD_DIRTY_TEXTURE_REGION);
+        WINED3D_TO_STR(WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW);
+        WINED3D_TO_STR(WINED3D_CS_OP_COPY_UAV_COUNTER);
+        WINED3D_TO_STR(WINED3D_CS_OP_GENERATE_MIPMAPS);
+        WINED3D_TO_STR(WINED3D_CS_OP_STOP);
+#undef WINED3D_TO_STR
+        default:
+            return wine_dbg_sprintf("UNKNOWN_OP(%#x)", op);
+    }
+}
+
 static void wined3d_cs_exec_nop(struct wined3d_cs *cs, const void *data)
 {
 }
@@ -2711,6 +2770,7 @@ static DWORD WINAPI wined3d_cs_run(void *ctx)
         {
             opcode = *(const enum wined3d_cs_op *)packet->data;
 
+            TRACE("Executing %s.\n", debug_cs_op(opcode));
             if (opcode >= WINED3D_CS_OP_STOP)
             {
                 if (opcode > WINED3D_CS_OP_STOP)
@@ -2719,6 +2779,7 @@ static DWORD WINAPI wined3d_cs_run(void *ctx)
             }
 
             wined3d_cs_op_handlers[opcode](cs, packet->data);
+            TRACE("%s executed.\n", debug_cs_op(opcode));
         }
 
         tail += FIELD_OFFSET(struct wined3d_cs_packet, data[packet->size]);
-- 
2.11.0




More information about the wine-devel mailing list