On 14 May 2013 23:46, Stefan Dösinger <ste...@codeweavers.com> wrote: > @@ -613,14 +635,7 @@ static BOOL match_apple_nonr500ati(const struct > wined3d_gl_info *gl_info, const > static BOOL match_dx10_capable(const struct wined3d_gl_info *gl_info, const > char *gl_renderer, > enum wined3d_gl_vendor gl_vendor, enum wined3d_pci_vendor > card_vendor, enum wined3d_pci_device device) > { > - /* DX9 cards support 40 single float varyings in hardware, most drivers > report 32. ATI misreports > - * 44 varyings. So assume that if we have more than 44 varyings we have > a dx10 card. > - * This detection is for the gl_ClipPos varying quirk. If a d3d9 card > really supports more than 44 > - * varyings and we subtract one in dx9 shaders its not going to hurt us > because the dx9 limit is > - * hardcoded > - * > - * dx10 cards usually have 64 varyings */ > - return gl_info->limits.glsl_varyings > 44; > + return d3d_level_from_gl_info(gl_info) >= 10; > } > I'm not sure d3d_level_from_gl_info() is quite reliable enough for this. For example, Mesa doesn't implement EXT_gpu_shader4, and possibly never will. Using an actual hardware limit seems more reliable.