[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33356] trunk/blender/source/blender/gpu/ intern/gpu_extensions.c: Detect Gallium driver.
gsr b3d
gsr.b3d at infernal-iceberg.com
Sat Nov 27 20:59:00 CET 2010
Revision: 33356
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33356
Author: gsrb3d
Date: 2010-11-27 20:59:00 +0100 (Sat, 27 Nov 2010)
Log Message:
-----------
Detect Gallium driver. Extend NPoT workaround to opensource drivers.
Modified Paths:
--------------
trunk/blender/source/blender/gpu/intern/gpu_extensions.c
Modified: trunk/blender/source/blender/gpu/intern/gpu_extensions.c
===================================================================
--- trunk/blender/source/blender/gpu/intern/gpu_extensions.c 2010-11-27 19:33:40 UTC (rev 33355)
+++ trunk/blender/source/blender/gpu/intern/gpu_extensions.c 2010-11-27 19:59:00 UTC (rev 33356)
@@ -67,7 +67,7 @@
int glslsupport;
int extdisabled;
int colordepth;
- int npotdisabled; /* Special case for Ati R500 chipset cards that only support npot with severe restrictions */
+ int npotdisabled; /* ATI 3xx-5xx (and more) chipsets support NPoT partially (== not enough) */
GPUDeviceType device;
GPUOSType os;
GPUDriverType driver;
@@ -92,7 +92,7 @@
GLint r, g, b;
const char *vendor, *renderer;
- /* can't avoid calling this multiple times, see wm_window_add_ghostwindow */
+ /* can't avoid calling this multiple times, see wm_window_add_ghostwindow */
static char init= 0;
if(init) return;
init= 1;
@@ -138,9 +138,20 @@
GG.device = GPU_DEVICE_INTEL;
GG.driver = GPU_DRIVER_OFFICIAL;
}
- else if(strstr(renderer, "Mesa DRI R")) {
+ else if(strstr(renderer, "Mesa DRI R") || (strstr(renderer, "Gallium ") && strstr(renderer, " on ATI "))) {
GG.device = GPU_DEVICE_ATI;
GG.driver = GPU_DRIVER_OPENSOURCE;
+ /* ATI 9500 to X2300 cards support NPoT textures poorly
+ * Incomplete list http://dri.freedesktop.org/wiki/ATIRadeon
+ * New IDs from MESA's src/gallium/drivers/r300/r300_screen.c
+ */
+ if(strstr(renderer, "R3") || strstr(renderer, "RV3") ||
+ strstr(renderer, "R4") || strstr(renderer, "RV4") ||
+ strstr(renderer, "RS4") || strstr(renderer, "RC4") ||
+ strstr(renderer, "R5") || strstr(renderer, "RV5") ||
+ strstr(renderer, "RS600") || strstr(renderer, "RS690") ||
+ strstr(renderer, "RS740"))
+ GG.npotdisabled = 1;
}
else if(strstr(renderer, "Nouveau") || strstr(vendor, "nouveau")) {
GG.device = GPU_DEVICE_NVIDIA;
More information about the Bf-blender-cvs
mailing list