Henri Verbeet : vkd3d-shader: Add some colour to d3d-asm register names.
Alexandre Julliard
julliard at winehq.org
Wed Feb 17 16:23:18 CST 2021
Module: vkd3d
Branch: master
Commit: be024a7e1720bb721f624df5aac4cc4e1bec1327
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=be024a7e1720bb721f624df5aac4cc4e1bec1327
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Wed Feb 17 12:21:07 2021 +0100
vkd3d-shader: Add some colour to d3d-asm register names.
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
libs/vkd3d-shader/trace.c | 33 +++++++++++++++++++++++++--------
1 file changed, 25 insertions(+), 8 deletions(-)
diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c
index fb5370a..f8b7923 100644
--- a/libs/vkd3d-shader/trace.c
+++ b/libs/vkd3d-shader/trace.c
@@ -304,6 +304,7 @@ struct vkd3d_d3d_asm_colours
{
const char *reset;
const char *opcode;
+ const char *reg;
};
struct vkd3d_d3d_asm_compiler
@@ -709,6 +710,7 @@ static void shader_dump_register(struct vkd3d_d3d_asm_compiler *compiler, const
static const char * const rastout_reg_names[] = {"oPos", "oFog", "oPts"};
static const char * const misctype_reg_names[] = {"vPos", "vFace"};
+ shader_addline(buffer, "%s", compiler->colours.reg);
switch (reg->type)
{
case VKD3DSPR_TEMP:
@@ -918,7 +920,7 @@ static void shader_dump_register(struct vkd3d_d3d_asm_compiler *compiler, const
if (reg->type == VKD3DSPR_IMMCONST)
{
- shader_addline(buffer, "(");
+ shader_addline(buffer, "%s(", compiler->colours.reset);
switch (reg->immconst_type)
{
case VKD3D_IMMCONST_SCALAR:
@@ -987,7 +989,7 @@ static void shader_dump_register(struct vkd3d_d3d_asm_compiler *compiler, const
&& reg->type == VKD3DSPR_INPUT);
if (printbrackets)
- shader_addline(buffer, "[");
+ shader_addline(buffer, "%s[", compiler->colours.reset);
if (reg->idx[0].rel_addr)
{
shader_dump_src_param(compiler, reg->idx[0].rel_addr);
@@ -996,6 +998,8 @@ static void shader_dump_register(struct vkd3d_d3d_asm_compiler *compiler, const
shader_addline(buffer, "%u", offset);
if (printbrackets)
shader_addline(buffer, "]");
+ else
+ shader_addline(buffer, "%s", compiler->colours.reset);
/* For CBs in sm < 5.1 we move the buffer offset from idx[1] to idx[2]
* to normalise it with 5.1.
@@ -1023,10 +1027,18 @@ static void shader_dump_register(struct vkd3d_d3d_asm_compiler *compiler, const
shader_addline(buffer, "%u]", reg->idx[2].offset);
}
}
+ else
+ {
+ shader_addline(buffer, "%s", compiler->colours.reset);
+ }
if (reg->type == VKD3DSPR_FUNCTIONPOINTER)
shader_addline(buffer, "[%u]", reg->u.fp_body_idx);
}
+ else
+ {
+ shader_addline(buffer, "%s", compiler->colours.reset);
+ }
}
static void shader_dump_dst_param(struct vkd3d_d3d_asm_compiler *compiler,
@@ -1423,8 +1435,8 @@ static void shader_dump_instruction(struct vkd3d_d3d_asm_compiler *compiler,
break;
case VKD3DSIH_DCL_INDEXABLE_TEMP:
- vkd3d_string_buffer_printf(buffer, " x%u[%u], %u",
- ins->declaration.indexable_temp.register_idx,
+ vkd3d_string_buffer_printf(buffer, " %sx%u%s[%u], %u", compiler->colours.reg,
+ ins->declaration.indexable_temp.register_idx, compiler->colours.reset,
ins->declaration.indexable_temp.register_size,
ins->declaration.indexable_temp.component_count);
break;
@@ -1554,20 +1566,23 @@ static void shader_dump_instruction(struct vkd3d_d3d_asm_compiler *compiler,
break;
case VKD3DSIH_DEF:
- vkd3d_string_buffer_printf(buffer, " c%u = %.8e, %.8e, %.8e, %.8e",
- shader_get_float_offset(ins->dst[0].reg.type, ins->dst[0].reg.idx[0].offset),
+ vkd3d_string_buffer_printf(buffer, " %sc%u%s = %.8e, %.8e, %.8e, %.8e",
+ compiler->colours.reg, shader_get_float_offset(ins->dst[0].reg.type,
+ ins->dst[0].reg.idx[0].offset), compiler->colours.reset,
ins->src[0].reg.u.immconst_float[0], ins->src[0].reg.u.immconst_float[1],
ins->src[0].reg.u.immconst_float[2], ins->src[0].reg.u.immconst_float[3]);
break;
case VKD3DSIH_DEFI:
- vkd3d_string_buffer_printf(buffer, " i%u = %d, %d, %d, %d", ins->dst[0].reg.idx[0].offset,
+ vkd3d_string_buffer_printf(buffer, " %si%u%s = %d, %d, %d, %d",
+ compiler->colours.reg, ins->dst[0].reg.idx[0].offset, compiler->colours.reset,
ins->src[0].reg.u.immconst_uint[0], ins->src[0].reg.u.immconst_uint[1],
ins->src[0].reg.u.immconst_uint[2], ins->src[0].reg.u.immconst_uint[3]);
break;
case VKD3DSIH_DEFB:
- vkd3d_string_buffer_printf(buffer, " b%u = %s", ins->dst[0].reg.idx[0].offset,
+ vkd3d_string_buffer_printf(buffer, " %sb%u%s = %s", compiler->colours.reg,
+ ins->dst[0].reg.idx[0].offset, compiler->colours.reset,
ins->src[0].reg.u.immconst_uint[0] ? "true" : "false");
break;
@@ -1627,11 +1642,13 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(void *data,
{
.reset = "",
.opcode = "",
+ .reg = "",
};
static const struct vkd3d_d3d_asm_colours colours =
{
.reset = "\x1b[m",
.opcode = "\x1b[96;1m",
+ .reg = "\x1b[96m",
};
formatting = VKD3D_SHADER_COMPILE_OPTION_FORMATTING_INDENT
More information about the wine-cvs
mailing list