mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
tgsi: Improve execution debugging.
- zero temps/outputs instead of copying (otherwise we won't be able to see the temps/outputs assignments for small shaders where nothing changes across big areas - also show the inputs (as it's often impossible to infer from the rest) Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
f8436c17e4
commit
cd01cc3b48
1 changed files with 24 additions and 5 deletions
|
|
@ -62,6 +62,9 @@
|
|||
#include "util/u_math.h"
|
||||
|
||||
|
||||
#define DEBUG_EXECUTION 0
|
||||
|
||||
|
||||
#define FAST_MATH 0
|
||||
|
||||
#define TILE_TOP_LEFT 0
|
||||
|
|
@ -2456,6 +2459,23 @@ exec_declaration(struct tgsi_exec_machine *mach,
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (DEBUG_EXECUTION) {
|
||||
uint i, j;
|
||||
for (i = first; i <= last; ++i) {
|
||||
debug_printf("IN[%2u] = ", i);
|
||||
for (j = 0; j < TGSI_NUM_CHANNELS; j++) {
|
||||
if (j > 0) {
|
||||
debug_printf(" ");
|
||||
}
|
||||
debug_printf("(%6f %u, %6f %u, %6f %u, %6f %u)\n",
|
||||
mach->Inputs[i].xyzw[0].f[j], mach->Inputs[i].xyzw[0].u[j],
|
||||
mach->Inputs[i].xyzw[1].f[j], mach->Inputs[i].xyzw[1].u[j],
|
||||
mach->Inputs[i].xyzw[2].f[j], mach->Inputs[i].xyzw[2].u[j],
|
||||
mach->Inputs[i].xyzw[3].f[j], mach->Inputs[i].xyzw[3].u[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -4304,9 +4324,6 @@ exec_instruction(
|
|||
}
|
||||
|
||||
|
||||
#define DEBUG_EXECUTION 0
|
||||
|
||||
|
||||
/**
|
||||
* Run TGSI interpreter.
|
||||
* \return bitmask of "alive" quad components
|
||||
|
|
@ -4351,8 +4368,10 @@ tgsi_exec_machine_run( struct tgsi_exec_machine *mach )
|
|||
struct tgsi_exec_vector outputs[PIPE_MAX_ATTRIBS];
|
||||
uint inst = 1;
|
||||
|
||||
memcpy(temps, mach->Temps, sizeof(temps));
|
||||
memcpy(outputs, mach->Outputs, sizeof(outputs));
|
||||
memset(mach->Temps, 0, sizeof(temps));
|
||||
memset(mach->Outputs, 0, sizeof(outputs));
|
||||
memset(temps, 0, sizeof(temps));
|
||||
memset(outputs, 0, sizeof(outputs));
|
||||
#endif
|
||||
|
||||
/* execute instructions, until pc is set to -1 */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue