[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