2014-11-14 22:14 GMT+01:00 Andrei Slăvoiu andrei.slavoiu@gmail.com:
În ziua de Vin 14 Noi 2014, la 19:26:01, Jonas Maebe a scris:
OpenGL extensions: GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4, GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4,
Before GL_EXT_gpu_shader4 was used to differentiate SM3 cards from SM4. I remember somebody said this is not enough to ensure the card is SM4 capable, then how about GL_EXT_geometry_shader4?
Both extensions are not exposed in the non-core profile by Mesa drivers, but apparently they are on OS X in both legacy and core profiles. ARB_shader_bit_encoding, though, is not exposed by OS X, so the SM4 check in shader_glsl_get_caps() fails. More importantly, Mesa and OS X only support the core profile for GL 3.2+ so GLSL 150 is not supported in the legacy contexts wined3d is using right now.
I introduced that check back then and it is somewhat overzealous (e.g. GLSL version 1.50 pretty much implies EXT_gpu_shader4 and geometry shaders) but we will actually require that kind of features for D3D10 support. The way forward is to use 3.2+ core profiles and GLSL 1.50+ in wined3d instead of those missing extensions, but it's going to be a while for that.
Modifying that SM4 check is fine but we'd still require GLSL 1.50 and that means the check is still going to fail with those drivers. In theory we could also tone it down and e.g. only look for the SM4-level features supported by all the drivers but I'm not sure the end result would make a lot of sense.