Browse Source

llvmpipe: more rasterization counters

tags/mesa-7.9-rc1
Keith Whitwell 16 years ago
parent
commit
98f3ff8f4a

+ 15
- 6
src/gallium/drivers/llvmpipe/lp_perf.c View File

{ {
if (LP_DEBUG & DEBUG_COUNTERS) { if (LP_DEBUG & DEBUG_COUNTERS) {
unsigned total_64, total_16, total_4; unsigned total_64, total_16, total_4;
float p1, p2, p3, p4;
float p1, p2, p3, p5, p6;


debug_printf("llvmpipe: nr_triangles: %9u\n", lp_count.nr_tris); debug_printf("llvmpipe: nr_triangles: %9u\n", lp_count.nr_tris);
debug_printf("llvmpipe: nr_culled_triangles: %9u\n", lp_count.nr_culled_tris); debug_printf("llvmpipe: nr_culled_triangles: %9u\n", lp_count.nr_culled_tris);
p1 = 100.0 * (float) lp_count.nr_empty_64 / (float) total_64; p1 = 100.0 * (float) lp_count.nr_empty_64 / (float) total_64;
p2 = 100.0 * (float) lp_count.nr_fully_covered_64 / (float) total_64; p2 = 100.0 * (float) lp_count.nr_fully_covered_64 / (float) total_64;
p3 = 100.0 * (float) lp_count.nr_partially_covered_64 / (float) total_64; p3 = 100.0 * (float) lp_count.nr_partially_covered_64 / (float) total_64;
p4 = 100.0 * (float) lp_count.nr_shade_opaque_64 / (float) total_64;
p5 = 100.0 * (float) lp_count.nr_shade_opaque_64 / (float) total_64;
p6 = 100.0 * (float) lp_count.nr_shade_64 / (float) total_64;


debug_printf("llvmpipe: nr_64x64: %9u\n", total_64); debug_printf("llvmpipe: nr_64x64: %9u\n", total_64);
debug_printf("llvmpipe: nr_fully_covered_64x64: %9u (%3.0f%% of %u)\n", lp_count.nr_fully_covered_64, p2, total_64); debug_printf("llvmpipe: nr_fully_covered_64x64: %9u (%3.0f%% of %u)\n", lp_count.nr_fully_covered_64, p2, total_64);
debug_printf("llvmpipe: nr_shade_opaque_64x64: %9u (%3.0f%% of %u)\n", lp_count.nr_shade_opaque_64, p4, total_64);
debug_printf("llvmpipe: nr_shade_opaque_64x64: %9u (%3.0f%% of %u)\n", lp_count.nr_shade_opaque_64, p5, total_64);
debug_printf("llvmpipe: nr_pure_shade_opaque: %9u (%3.0f%% of %u)\n", lp_count.nr_pure_shade_opaque_64, 0.0, lp_count.nr_shade_opaque_64);
debug_printf("llvmpipe: nr_shade_64x64: %9u (%3.0f%% of %u)\n", lp_count.nr_shade_64, p6, total_64);
debug_printf("llvmpipe: nr_pure_shade: %9u (%3.0f%% of %u)\n", lp_count.nr_pure_shade_64, 0.0, lp_count.nr_shade_64);
debug_printf("llvmpipe: nr_partially_covered_64x64: %9u (%3.0f%% of %u)\n", lp_count.nr_partially_covered_64, p3, total_64); debug_printf("llvmpipe: nr_partially_covered_64x64: %9u (%3.0f%% of %u)\n", lp_count.nr_partially_covered_64, p3, total_64);
debug_printf("llvmpipe: nr_empty_64x64: %9u (%3.0f%% of %u)\n", lp_count.nr_empty_64, p1, total_64); debug_printf("llvmpipe: nr_empty_64x64: %9u (%3.0f%% of %u)\n", lp_count.nr_empty_64, p1, total_64);


debug_printf("llvmpipe: nr_partially_covered_16x16: %9u (%3.0f%% of %u)\n", lp_count.nr_partially_covered_16, p3, total_16); debug_printf("llvmpipe: nr_partially_covered_16x16: %9u (%3.0f%% of %u)\n", lp_count.nr_partially_covered_16, p3, total_16);
debug_printf("llvmpipe: nr_empty_16x16: %9u (%3.0f%% of %u)\n", lp_count.nr_empty_16, p1, total_16); debug_printf("llvmpipe: nr_empty_16x16: %9u (%3.0f%% of %u)\n", lp_count.nr_empty_16, p1, total_16);


total_4 = (lp_count.nr_empty_4 + lp_count.nr_non_empty_4);
total_4 = (lp_count.nr_empty_4 +
lp_count.nr_fully_covered_4 +
lp_count.nr_partially_covered_4);


p1 = 100.0 * (float) lp_count.nr_empty_4 / (float) total_4; p1 = 100.0 * (float) lp_count.nr_empty_4 / (float) total_4;
p2 = 100.0 * (float) lp_count.nr_non_empty_4 / (float) total_4;
p2 = 100.0 * (float) lp_count.nr_fully_covered_4 / (float) total_4;
p3 = 100.0 * (float) lp_count.nr_partially_covered_4 / (float) total_4;


debug_printf("llvmpipe: nr_4x4: %9u\n", total_4);
debug_printf("llvmpipe: nr_tri_4x4: %9u\n", total_4);
debug_printf("llvmpipe: nr_fully_covered_4x4: %9u (%3.0f%% of %u)\n", lp_count.nr_fully_covered_4, p2, total_4);
debug_printf("llvmpipe: nr_partially_covered_4x4: %9u (%3.0f%% of %u)\n", lp_count.nr_partially_covered_4, p3, total_4);
debug_printf("llvmpipe: nr_empty_4x4: %9u (%3.0f%% of %u)\n", lp_count.nr_empty_4, p1, total_4); debug_printf("llvmpipe: nr_empty_4x4: %9u (%3.0f%% of %u)\n", lp_count.nr_empty_4, p1, total_4);
debug_printf("llvmpipe: nr_non_empty_4x4: %9u (%3.0f%% of %u)\n", lp_count.nr_non_empty_4, p2, total_4); debug_printf("llvmpipe: nr_non_empty_4x4: %9u (%3.0f%% of %u)\n", lp_count.nr_non_empty_4, p2, total_4);



+ 7
- 0
src/gallium/drivers/llvmpipe/lp_perf.h View File

unsigned nr_empty_64; unsigned nr_empty_64;
unsigned nr_fully_covered_64; unsigned nr_fully_covered_64;
unsigned nr_partially_covered_64; unsigned nr_partially_covered_64;
unsigned nr_pure_shade_opaque_64;
unsigned nr_pure_shade_64;
unsigned nr_shade_64;
unsigned nr_shade_opaque_64; unsigned nr_shade_opaque_64;
unsigned nr_empty_16; unsigned nr_empty_16;
unsigned nr_fully_covered_16; unsigned nr_fully_covered_16;
unsigned nr_partially_covered_16; unsigned nr_partially_covered_16;
unsigned nr_empty_4; unsigned nr_empty_4;
unsigned nr_fully_covered_4;
unsigned nr_partially_covered_4;
unsigned nr_non_empty_4; unsigned nr_non_empty_4;
unsigned nr_llvm_compiles; unsigned nr_llvm_compiles;
int64_t llvm_compile_time; /**< total, in microseconds */ int64_t llvm_compile_time; /**< total, in microseconds */
#ifdef DEBUG #ifdef DEBUG
#define LP_COUNT(counter) lp_count.counter++ #define LP_COUNT(counter) lp_count.counter++
#define LP_COUNT_ADD(counter, incr) lp_count.counter += (incr) #define LP_COUNT_ADD(counter, incr) lp_count.counter += (incr)
#define LP_COUNT_GET(counter) (lp_count.counter)
#else #else
#define LP_COUNT(counter) #define LP_COUNT(counter)
#define LP_COUNT_ADD(counter, incr) (void) incr #define LP_COUNT_ADD(counter, incr) (void) incr
#define LP_COUNT_GET(counter) 0
#endif #endif





+ 7
- 0
src/gallium/drivers/llvmpipe/lp_rast_tri_tmp.h View File



assert((partial_mask & inmask) == 0); assert((partial_mask & inmask) == 0);


LP_COUNT_ADD(nr_empty_4, util_bitcount(0xffff & ~(partial_mask | inmask)));

/* Iterate over partials: /* Iterate over partials:
*/ */
while (partial_mask) { while (partial_mask) {


partial_mask &= ~(1 << i); partial_mask &= ~(1 << i);


LP_COUNT(nr_partially_covered_4);

for (j = 0; j < NR_PLANES; j++) for (j = 0; j < NR_PLANES; j++)
cx[j] = (c[j] cx[j] = (c[j]
- plane[j].dcdx * ix - plane[j].dcdx * ix


inmask &= ~(1 << i); inmask &= ~(1 << i);


LP_COUNT(nr_fully_covered_4);
block_full_4(task, tri, px, py); block_full_4(task, tri, px, py);
} }
} }


assert((partial_mask & inmask) == 0); assert((partial_mask & inmask) == 0);


LP_COUNT_ADD(nr_empty_16, util_bitcount(0xffff & ~(partial_mask | inmask)));

/* Iterate over partials: /* Iterate over partials:
*/ */
while (partial_mask) { while (partial_mask) {

Loading…
Cancel
Save