WineD3D: Implement detection of ATI cards with Mesa DRI drivers [try 4]

Roman Mamedov roman at rm.pp.ru
Fri Nov 23 15:31:24 CST 2007


Roderick Colenbrander wrote:
> I think the code should be like this (in pseudo code) this way also other cards will at least be classified:
>
> case VENDOR_MESA:
>     if(D3D9_CAPABLE(gl_info)
>        if(strstr(gl_info->gl_renderer, "R300"))
>            card = radeon_9500;
>        else
>            card = generic_nv_card;
>     if(D3D8_CAPABLE(...)
>        if(strstr(gl_info->gl_renderer, "R200"))
>            card = ...
>   

You are right, but please notice that with my latest patch, the same 
behavior is already achieved, by not "break"-ing at the end of 
VENDOR_MESA case if we didn't match one of ATI module names. This is the 
code that proceeds to be executed then:

...
                break;
            }
            /* Card is probably one of the non-ATI cards which are also 
supported by Mesa.
             * Continue to the fallback behavior of VENDOR_WINE.
             */
        case VENDOR_WINE:
        default:
            /* Default to generic Nvidia hardware based on the supported 
OpenGL extensions. The choice
             * for Nvidia was because the hardware and drivers they make 
are of good quality. This makes
             * them a good generic choice.
             */
            gl_info->gl_vendor = VENDOR_NVIDIA;
            if(WINE_D3D9_CAPABLE(gl_info))
                gl_info->gl_card = CARD_NVIDIA_GEFORCEFX_5600;
            else if(WINE_D3D8_CAPABLE(gl_info))
                gl_info->gl_card = CARD_NVIDIA_GEFORCE3;
            else if(WINE_D3D7_CAPABLE(gl_info))
                gl_info->gl_card = CARD_NVIDIA_GEFORCE;
            else if(WINE_D3D6_CAPABLE(gl_info))
                gl_info->gl_card = CARD_NVIDIA_RIVA_TNT;
            else
                gl_info->gl_card = CARD_NVIDIA_RIVA_128;
...



More information about the wine-devel mailing list