From 838b19609f759bc76e140910e6dcf0e0c3680688 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 2 Dec 2012 19:26:16 +0100 Subject: [PATCH] r300g: add blacklist for apps that shouldn't steal hyperz access --- src/gallium/drivers/r300/r300_chipset.c | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) 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); } -- 2.30.2