summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorKarol Herbst <[email protected]>2018-08-05 19:12:32 +0200
committerKarol Herbst <[email protected]>2018-11-06 19:57:05 +0100
commita4550de434d9d708c2a5814a1bdc33079ea91ba0 (patch)
treea7026eb7acaecdf18b651e57f75075a1ad386e42 /src/gallium
parent610061838a1194321ae19cae823e5ddff82558a4 (diff)
nv50/ir: print color masks of tex instructions
v2: print the mask for TXG as well make the mask to be printed more mask like Reviewed-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp37
1 files changed, 33 insertions, 4 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp
index 7eab8b8d70d..7db9bf0caa2 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp
@@ -359,6 +359,31 @@ static const char *interpStr[16] =
"samp sc"
};
+static const char *texMaskStr[16] =
+{
+ "____",
+ "r___",
+ "_g__",
+ "rg__",
+ "__b_",
+ "r_b_",
+ "_gb_",
+ "rgb_",
+ "___a",
+ "r__a",
+ "_g_a",
+ "rg_a",
+ "__ba",
+ "r_ba",
+ "_gba",
+ "rgba",
+};
+
+static const char *gatherCompStr[4] =
+{
+ "r", "g", "b", "a",
+};
+
#define PRINT(args...) \
do { \
pos += snprintf(&buf[pos], size - pos, args); \
@@ -651,10 +676,14 @@ void Instruction::print() const
}
if (perPatch)
PRINT("patch ");
- if (asTex())
- PRINT("%s %s$r%u $s%u %s", asTex()->tex.target.getName(),
- colour[TXT_MEM], asTex()->tex.r, asTex()->tex.s,
- colour[TXT_INSN]);
+ if (asTex()) {
+ PRINT("%s %s$r%u $s%u ", asTex()->tex.target.getName(),
+ colour[TXT_MEM], asTex()->tex.r, asTex()->tex.s);
+ if (op == OP_TXG)
+ PRINT("%s ", gatherCompStr[asTex()->tex.gatherComp]);
+ PRINT("%s %s", texMaskStr[asTex()->tex.mask], colour[TXT_INSN]);
+ }
+
if (postFactor)
PRINT("x2^%i ", postFactor);
PRINT("%s%s", dnz ? "dnz " : (ftz ? "ftz " : ""), DataTypeStr[dType]);