summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeon
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2013-09-22 15:34:12 +0200
committerMarek Olšák <[email protected]>2013-09-29 15:18:09 +0200
commit0cb9de1dd078395d541c32c0de81ea4f05147baa (patch)
treee6564dc7b0f5b9d058b64bec4074e0f971769f18 /src/gallium/drivers/radeon
parentba650ccf91a103d90d45b5927a8a9220e222cfc5 (diff)
radeonsi: move debug options to R600_DEBUG
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.c29
-rw-r--r--src/gallium/drivers/radeon/r600_pipe_common.h2
2 files changed, 31 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c
index 9d68f4ba7ab..0a9081b821e 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -25,6 +25,7 @@
*/
#include "r600_pipe_common.h"
+#include "tgsi/tgsi_parse.h"
static const struct debug_named_value common_debug_options[] = {
/* logging */
@@ -101,3 +102,31 @@ void r600_context_add_resource_size(struct pipe_context *ctx, struct pipe_resour
rctx->vram += rr->buf->size;
}
}
+
+static unsigned tgsi_get_processor_type(const struct tgsi_token *tokens)
+{
+ struct tgsi_parse_context parse;
+
+ if (tgsi_parse_init( &parse, tokens ) != TGSI_PARSE_OK) {
+ debug_printf("tgsi_parse_init() failed in %s:%i!\n", __func__, __LINE__);
+ return ~0;
+ }
+ return parse.FullHeader.Processor.Processor;
+}
+
+bool r600_can_dump_shader(struct r600_common_screen *rscreen,
+ const struct tgsi_token *tokens)
+{
+ switch (tgsi_get_processor_type(tokens)) {
+ case TGSI_PROCESSOR_VERTEX:
+ return (rscreen->debug_flags & DBG_VS) != 0;
+ case TGSI_PROCESSOR_GEOMETRY:
+ return (rscreen->debug_flags & DBG_GS) != 0;
+ case TGSI_PROCESSOR_FRAGMENT:
+ return (rscreen->debug_flags & DBG_PS) != 0;
+ case TGSI_PROCESSOR_COMPUTE:
+ return (rscreen->debug_flags & DBG_CS) != 0;
+ default:
+ return false;
+ }
+}
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h
index 63bc9b1fade..f2510b408ea 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -237,6 +237,8 @@ bool r600_common_context_init(struct r600_common_context *rctx,
struct r600_common_screen *rscreen);
void r600_common_context_cleanup(struct r600_common_context *rctx);
void r600_context_add_resource_size(struct pipe_context *ctx, struct pipe_resource *r);
+bool r600_can_dump_shader(struct r600_common_screen *rscreen,
+ const struct tgsi_token *tokens);
/* r600_streamout.c */
void r600_streamout_buffers_dirty(struct r600_common_context *rctx);