http://bugs.winehq.org/show_bug.cgi?id=28529
Bug #: 28529 Summary: Limbo game doesn't detect Shader Model 3.0, while card supports it Product: Wine Version: 1.3.29 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: nobange@poczta.onet.pl Classification: Unclassified
Created attachment 36616 --> http://bugs.winehq.org/attachment.cgi?id=36616 log from running limbo.exe with wine
The game Limbo (http://limbogame.org) doesn't run, complaining about the graphic card not supporting Shader Model 3.0. The card is GeForce 7300 GT, according to NVIDIA it fully supports Shader 3.0. NVIDIA Drivers 275.21 installed.
http://bugs.winehq.org/show_bug.cgi?id=28529
baongoc124@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |baongoc124@gmail.com
--- Comment #1 from baongoc124@gmail.com 2012-02-19 12:30:50 CST --- I met the same problem with Limbo on system with Intel graphics card.
http://bugs.winehq.org/show_bug.cgi?id=28529
gouriote gouriote@trashmail.ws changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gouriote@trashmail.ws
http://bugs.winehq.org/show_bug.cgi?id=28529
gouriote gouriote@trashmail.ws changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|gouriote@trashmail.ws |
http://bugs.winehq.org/show_bug.cgi?id=28529
gouriote gouriote@trashmail.ws changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gouriote@trashmail.ws
--- Comment #2 from gouriote gouriote@trashmail.ws 2012-05-23 12:32:44 CDT --- I've done some search on this matter. Wine has error in shader support detection. This bug is not presented in older versions, up to 1.3.22-138. You need to revert this commit: http://source.winehq.org/git/wine.git/commitdiff/c51db63ba4eda7e2cb565ebadf5...
http://bugs.winehq.org/show_bug.cgi?id=28529
gouriote gouriote@trashmail.ws changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|gouriote@trashmail.ws |
http://bugs.winehq.org/show_bug.cgi?id=28529
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression Status|UNCONFIRMED |NEW CC| |hverbeet@gmail.com, | |wylda@volny.cz Version|1.3.29 |1.3.23 Ever Confirmed|0 |1 Regression SHA1| |c51db63ba4eda7e2cb565ebadf5 | |ede8fe6e1a9dd
--- Comment #3 from Wylda wylda@volny.cz 2012-05-25 03:17:55 CDT ---
Confirmed several times. Updating some bug's fields...
http://bugs.winehq.org/show_bug.cgi?id=28529
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |UPSTREAM
--- Comment #4 from Henri Verbeet hverbeet@gmail.com 2012-05-25 06:53:20 CDT --- No, it's working as intended. ARB_shader_texture_lod is a requirement for SM3 support. If the driver doesn't support that while the hardware can do it, you should probably file a feature request with NVIDIA. Note that the driver you're using is fairly old though.
http://bugs.winehq.org/show_bug.cgi?id=28529
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|regression | Status|RESOLVED |CLOSED Regression SHA1|c51db63ba4eda7e2cb565ebadf5 | |ede8fe6e1a9dd |
--- Comment #5 from Wylda wylda@volny.cz 2012-05-25 11:41:28 CDT ---
OK, thanks for explanation Henri. Closing.
http://bugs.winehq.org/show_bug.cgi?id=28529
gouriote gouriote@trashmail.ws changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gouriote@trashmail.ws
--- Comment #6 from gouriote gouriote@trashmail.ws 2012-05-25 14:29:16 CDT --- (In reply to comment #4) Most NVIDIA cards doesn't support ARB_shader_texture_lod. Even most new. Even with up-to-date drivers. And there is no standard demanding it to be the requirement for shader model detection. So it is just working wrong. And opengl does not follow Shader Model format. And it's not working as requirement, because actually new Nvidia videocards are satisfying gl_info->supported[EXT_GPU_SHADER4] condition, not ARB_shader_texture_lod. Even 7900gs is not passing this check. Only SM4 nvidia videocards could pass this condition! I would so happy, if NV_vertex_program3 check were restored, so nvidia 7 series cards shall be recognized by wine as SM3 compatible without tricky manual patches.
http://bugs.winehq.org/show_bug.cgi?id=28529
Kirill deminkirill2@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |deminkirill2@gmail.com
--- Comment #7 from Kirill deminkirill2@gmail.com 2013-05-28 18:47:29 CDT --- Please open this bug again. Comment #4 is wrong
http://bugs.winehq.org/show_bug.cgi?id=28529
--- Comment #8 from Kirill deminkirill2@gmail.com 2013-05-28 19:03:52 CDT --- As said in Comment #6 GeForce 6/7 series cards do not support ARB_shader_texture_lod, but they are SM3.0-compatible. This bug is important because any game that use SM3.0 should be affected by this bug
http://bugs.winehq.org/show_bug.cgi?id=28529
--- Comment #9 from Henri Verbeet hverbeet@gmail.com 2013-05-29 02:13:13 CDT --- (In reply to comment #8)
As said in Comment #6 GeForce 6/7 series cards do not support ARB_shader_texture_lod, but they are SM3.0-compatible.
The hardware is, but the nvidia GL drivers don't expose the required functionality. You need either ARB_shader_texture_lod, EXT_gpu_shader4 or GLSL 1.30 to implement the SM3 texldd and texldl instructions. The hardware clearly can't support EXT_gpu_shader4 and GLSL 1.30, but it could do ARB_shader_texture_lod if nvidia implemented it in their drivers.
http://bugs.winehq.org/show_bug.cgi?id=28529
--- Comment #10 from Kirill deminkirill2@gmail.com 2013-05-29 04:14:04 CDT --- Thanks for fast answer! Are you sure that SM3.0 that ARB_shader_texture_lod is required for supporting SM3.0? For example, patching wine for disabling that commit (http://source.winehq.org/git/wine.git/commitdiff/c51db63ba4eda7e2cb565ebadf5...) gets running EVE Online with SM3.0
And I'm not sure that checking ARB_shader_texture_lod is the best method for checking SM3.0 NVidia (http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&am...) recommends do it with NV_vertex_program3:
"In OpenGL, all you need to do is check for the presence of the NV_vertex_program3 extension. If you are using the GLUT library, the glutExtensionSupported function can perform that check. The number of supported vertex texture images is queried as follows: glGetIntegerv(MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB, &vtex_units);"
I don't know what functions are available in the NV_vertex_program3 (http://www.opengl.org/registry/specs/NV/vertex_program3.txt), but maybe better will be giving Nvidia to correct their drivers? If we hide this driver error in the Wine code, it will never be fixed.
(Sorry for my bad english)
http://bugs.winehq.org/show_bug.cgi?id=28529
--- Comment #11 from Henri Verbeet hverbeet@gmail.com 2013-05-29 05:07:56 CDT --- (In reply to comment #10)
Are you sure that SM3.0 that ARB_shader_texture_lod is required for supporting SM3.0? For example, patching wine for disabling that commit (http://source.winehq.org/git/wine.git/commitdiff/c51db63ba4eda7e2cb565ebadf5...) gets running EVE Online with SM3.0
Well, you can get lucky if the application doesn't actually use texldd or texldl in fragment shaders. Many SM3 applications don't, but that doesn't mean we can report the capability if the driver doesn't support it.
And I'm not sure that checking ARB_shader_texture_lod is the best method for checking SM3.0 NVidia (http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&am...) recommends do it with NV_vertex_program3:
That's for vertex shaders, the specific issue is with texldd and texldl in fragment shaders. More importantly, that extension is for NVIDIA's proprietary NV_vertex_program / NV_fragment_program extensions, it doesn't do anything for GLSL shaders. That said, if the driver supports the NV_fragment_program2 extension, you should indeed get SM3 if you disable the GLSL shader backend and use the ARB program shader backend instead. Note that that configuration is mostly unsupported though.
Something else to consider may be using the Nouveau drivers instead. I'm not entirely sure what level of support it has for GF6/7 hardware at this point, but there's a decent chance it either already supports ARB_shader_texture_lod, or could be made to relatively easily.