Module: wine Branch: master Commit: 3845b37a213eef7b903dc0a7d3823f5882ee946b URL: http://source.winehq.org/git/wine.git/?a=commit;h=3845b37a213eef7b903dc0a7d3...
Author: Stefan Dösinger stefan@codeweavers.com Date: Thu Jun 18 18:28:41 2009 +0200
wined3d: Advertise SM 3.0 in ARB if the extensions are available.
---
dlls/wined3d/arb_program_shader.c | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index fbd56a0..affc2ae 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -4124,9 +4124,14 @@ static void shader_arb_get_caps(WINED3DDEVTYPE devtype, const WineD3D_GL_Info *g none_shader_backend.shader_get_caps(devtype, gl_info, pCaps);
if(GL_SUPPORT(ARB_VERTEX_PROGRAM)) { - /* Shader Model 2.0 requires at least 256 vertex shader constants */ - if(GL_LIMITS(vshader_constantsF) >= 256) + if(GL_SUPPORT(NV_VERTEX_PROGRAM3)) { + pCaps->VertexShaderVersion = WINED3DVS_VERSION(3,0); + TRACE_(d3d_caps)("Hardware vertex shader version 3.0 enabled (NV_VERTEX_PROGRAM3)\n"); + } + else if(GL_LIMITS(vshader_constantsF) >= 256) + { + /* Shader Model 2.0 requires at least 256 vertex shader constants */ pCaps->VertexShaderVersion = WINED3DVS_VERSION(2,0); TRACE_(d3d_caps)("Hardware vertex shader version 2.0 enabled (ARB_PROGRAM)\n"); } @@ -4139,9 +4144,14 @@ static void shader_arb_get_caps(WINED3DDEVTYPE devtype, const WineD3D_GL_Info *g }
if(GL_SUPPORT(ARB_FRAGMENT_PROGRAM)) { - /* Shader Model 2.0 requires at least 32 pixel shader constants */ - if(GL_LIMITS(vshader_constantsF) >= 32) + if(GL_SUPPORT(NV_FRAGMENT_PROGRAM2)) + { + pCaps->PixelShaderVersion = WINED3DPS_VERSION(3,0); + TRACE_(d3d_caps)("Hardware pixel shader version 3.0 enabled (NV_FRAGMENT_PROGRAM2)\n"); + } + else if(GL_LIMITS(vshader_constantsF) >= 32) { + /* Shader Model 2.0 requires at least 32 pixel shader constants */ pCaps->PixelShaderVersion = WINED3DPS_VERSION(2,0); TRACE_(d3d_caps)("Hardware pixel shader version 2.0 enabled (ARB_PROGRAM)\n"); }