summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nvc0/nve4_compute.c
diff options
context:
space:
mode:
authorChristoph Bumiller <[email protected]>2013-03-27 23:39:06 +0100
committerChristoph Bumiller <[email protected]>2013-03-29 00:33:01 +0100
commitee624ced364bfd2f896809874ef3a808a11c5ecf (patch)
tree3ca90f856159a2a932df731a64255096b2ece61c /src/gallium/drivers/nvc0/nve4_compute.c
parent480359bcf644c496c5318e89fe7ad60d95772acd (diff)
nvc0: implement MP performance counters
There's more, but this only adds (most) of the counters that are handled directly by the shader processors. The other counter domains are not handled on the multiprocessor and there are no FIFO object methods for configuring them. Instead, they have to be programmed by the kernel via PCOUNTER, and the interface for this isn't in place yet.
Diffstat (limited to 'src/gallium/drivers/nvc0/nve4_compute.c')
-rw-r--r--src/gallium/drivers/nvc0/nve4_compute.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gallium/drivers/nvc0/nve4_compute.c b/src/gallium/drivers/nvc0/nve4_compute.c
index 943ae78b479..89da7d568cb 100644
--- a/src/gallium/drivers/nvc0/nve4_compute.c
+++ b/src/gallium/drivers/nvc0/nve4_compute.c
@@ -27,7 +27,9 @@
#include "nv50/codegen/nv50_ir_driver.h"
+#ifdef DEBUG
static void nve4_compute_dump_launch_desc(const struct nve4_cp_launch_desc *);
+#endif
int
@@ -477,7 +479,10 @@ nve4_launch_grid(struct pipe_context *pipe,
goto out;
nve4_compute_setup_launch_desc(nvc0, desc, label, block_layout, grid_layout);
- nve4_compute_dump_launch_desc(desc);
+#ifdef DEBUG
+ if (debug_get_num_option("NV50_PROG_DEBUG", 0))
+ nve4_compute_dump_launch_desc(desc);
+#endif
nve4_compute_upload_input(nvc0, input, block_layout, grid_layout);
@@ -589,6 +594,7 @@ static const char *nve4_cache_split_name(unsigned value)
}
}
+#ifdef DEBUG
static void
nve4_compute_dump_launch_desc(const struct nve4_cp_launch_desc *desc)
{
@@ -635,7 +641,9 @@ nve4_compute_dump_launch_desc(const struct nve4_cp_launch_desc *desc)
i, address, size, valid ? "" : " (invalid)");
}
}
+#endif
+#ifdef NOUVEAU_NVE4_MP_TRAP_HANDLER
static void
nve4_compute_trap_info(struct nvc0_context *nvc0)
{
@@ -667,3 +675,4 @@ nve4_compute_trap_info(struct nvc0_context *nvc0)
}
info->lock = 0;
}
+#endif