diff options
author | Marek Olšák <[email protected]> | 2012-12-02 19:26:16 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2012-12-02 22:18:11 +0100 |
commit | 838b19609f759bc76e140910e6dcf0e0c3680688 (patch) | |
tree | ae058a2d4e13608974edb3c95240a1b72541f267 /src/gallium/drivers/r300 | |
parent | 12dcbd5954676ee32604d82cacbf9a4259967e13 (diff) |
r300g: add blacklist for apps that shouldn't steal hyperz access
Diffstat (limited to 'src/gallium/drivers/r300')
-rw-r--r-- | src/gallium/drivers/r300/r300_chipset.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gallium/drivers/r300/r300_chipset.c b/src/gallium/drivers/r300/r300_chipset.c index 80148b80afb..beaa1f46e50 100644 --- a/src/gallium/drivers/r300/r300_chipset.c +++ b/src/gallium/drivers/r300/r300_chipset.c @@ -24,12 +24,38 @@ #include "r300_chipset.h" #include "util/u_debug.h" +#include "util/u_memory.h" #include <stdio.h> +#include <errno.h> /* r300_chipset: A file all to itself for deducing the various properties of * Radeons. */ +static void r300_apply_hyperz_blacklist(struct r300_capabilities* caps) +{ + static const char *list[] = { + "X", /* the DDX or indirect rendering */ + "Xorg", /* (alternative name) */ + "check_gl_texture_size", /* compiz */ + "Compiz", + "gnome-session-check-accelerated-helper", + "gnome-shell", + "kwin_opengl_test", + "kwin", + "firefox", + }; + int i; + + for (i = 0; i < Elements(list); i++) { + if (strcmp(list[i], program_invocation_short_name) == 0) { + caps->zmask_ram = 0; + caps->hiz_ram = 0; + break; + } + } +} + /* Parse a PCI ID and fill an r300_capabilities struct with information. */ void r300_parse_chipset(uint32_t pci_id, struct r300_capabilities* caps) { @@ -138,4 +164,6 @@ void r300_parse_chipset(uint32_t pci_id, struct r300_capabilities* caps) if (caps->has_tcl) { caps->has_tcl = debug_get_bool_option("RADEON_NO_TCL", FALSE) ? FALSE : TRUE; } + + r300_apply_hyperz_blacklist(caps); } |