Stefan Dösinger : wined3d: Hide NP2 textures support on R500 and earlier cards.

Alexandre Julliard julliard at winehq.org
Fri Nov 9 07:44:19 CST 2007


Module: wine
Branch: master
Commit: cd1812b4737da9caa92a1c83fc35e63610019f96
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=cd1812b4737da9caa92a1c83fc35e63610019f96

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Tue Nov  6 12:39:57 2007 +0100

wined3d: Hide NP2 textures support on R500 and earlier cards.

---

 dlls/wined3d/directx.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index dc2462e..aff5bee 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2760,6 +2760,20 @@ static void fixup_extensions(WineD3D_GL_Info *gl_info) {
                   gl_info->vs_glsl_constantsF, gl_info->vs_arb_constantsF);
             gl_info->vs_glsl_constantsF = gl_info->vs_arb_constantsF;
         }
+
+        /* MacOS advertises GL_ARB_texture_non_power_of_two on ATI r500 and earlier cards, although
+         * these cards only support GL_ARB_texture_rectangle(D3DPTEXTURECAPS_NONPOW2CONDITIONAL).
+         * If real NP2 textures are used, the driver falls back to software. So remove the supported
+         * flag for this extension
+         */
+        if(gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO] && gl_info->gl_vendor == VENDOR_ATI) {
+            if(gl_info->gl_card == CARD_ATI_RADEON_X700 || gl_info->gl_card == CARD_ATI_RADEON_X1600 ||
+               gl_info->gl_card == CARD_ATI_RADEON_9500 || gl_info->gl_card == CARD_ATI_RADEON_8500  ||
+               gl_info->gl_card == CARD_ATI_RADEON_7200 || gl_info->gl_card == CARD_ATI_RAGE_128PRO) {
+                TRACE("GL_ARB_texture_non_power_of_two advertised on R500 or earlier card, removing\n");
+                gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO] = FALSE;
+            }
+        }
     }
 }
 




More information about the wine-cvs mailing list