On 14 May 2013 23:46, Stefan Dösinger stefan@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.