summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/llvmpipe/lp_screen.c
diff options
context:
space:
mode:
authorKeith Whitwell <[email protected]>2010-09-16 10:45:52 +0100
committerKeith Whitwell <[email protected]>2010-09-16 17:34:19 +0100
commit5f00819cb382bdb70c29e2db3c6ff22a879bf10f (patch)
tree6c28495f4caef7c8610189ed011f50596b0e545c /src/gallium/drivers/llvmpipe/lp_screen.c
parent045ee4601179c44f815ce3842ef900b36d54c914 (diff)
llvmpipe: add LP_PERF flag to disable various aspects of rasterization
Allows disabling various operations (mainly texture-related, but will grow) to try & identify bottlenecks. Unlike LP_DEBUG, this is active even in release builds - which is necessary for performance investigation.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_screen.c')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_screen.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
index 0d40dc50201..f920607d053 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -68,6 +68,19 @@ static const struct debug_named_value lp_debug_flags[] = {
};
#endif
+int LP_PERF = 0;
+static const struct debug_named_value lp_perf_flags[] = {
+ { "texmem", PERF_TEX_MEM, NULL },
+ { "no_mipmap", PERF_NO_MIPMAPS, NULL },
+ { "no_linear", PERF_NO_LINEAR, NULL },
+ { "no_mip_linear", PERF_NO_MIP_LINEAR, NULL },
+ { "no_tex", PERF_NO_TEX, NULL },
+ { "no_blend", PERF_NO_BLEND, NULL },
+ { "no_depth", PERF_NO_DEPTH, NULL },
+ { "no_alphatest", PERF_NO_ALPHATEST, NULL },
+ DEBUG_NAMED_VALUE_END
+};
+
static const char *
llvmpipe_get_vendor(struct pipe_screen *screen)
@@ -372,6 +385,8 @@ llvmpipe_create_screen(struct sw_winsys *winsys)
LP_DEBUG = debug_get_flags_option("LP_DEBUG", lp_debug_flags, 0 );
#endif
+ LP_PERF = debug_get_flags_option("LP_PERF", lp_perf_flags, 0 );
+
if (!screen)
return NULL;