From: Marek Olšák Date: Sun, 2 Dec 2012 18:26:16 +0000 (+0100) Subject: r300g: add blacklist for apps that shouldn't steal hyperz access X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=838b19609f759bc76e140910e6dcf0e0c3680688;p=mesa.git r300g: add blacklist for apps that shouldn't steal hyperz access --- 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 +#include /* 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); }