Module: wine Branch: master Commit: 93db8e97da2690c62a5d4586d6214632a98df344 URL: http://source.winehq.org/git/wine.git/?a=commit;h=93db8e97da2690c62a5d4586d6...
Author: Matteo Bruni mbruni@codeweavers.com Date: Tue Oct 6 14:24:19 2015 +0200
wined3d: Store supported varyings count in d3d_limits.
Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com
---
dlls/wined3d/arb_program_shader.c | 1 + dlls/wined3d/directx.c | 1 + dlls/wined3d/glsl_shader.c | 1 + dlls/wined3d/shader.c | 1 + dlls/wined3d/wined3d_private.h | 2 ++ 5 files changed, 6 insertions(+)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index 6a321db..b1d9869 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -5161,6 +5161,7 @@ static void shader_arb_get_caps(const struct wined3d_gl_info *gl_info, struct sh caps->ps_1x_max_value = 0.0f; }
+ caps->varying_count = 0; caps->wined3d_caps = WINED3D_SHADER_CAP_SRGB_WRITE; if (use_nv_clip(gl_info)) caps->wined3d_caps |= WINED3D_SHADER_CAP_VS_CLIPPING; diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 6801bcc..6d51432 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -3707,6 +3707,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter) adapter->d3d_info.limits.ps_version = shader_caps.ps_version; adapter->d3d_info.limits.vs_uniform_count = shader_caps.vs_uniform_count; adapter->d3d_info.limits.ps_uniform_count = shader_caps.ps_uniform_count; + adapter->d3d_info.limits.varying_count = shader_caps.varying_count;
adapter->vertex_pipe->vp_get_caps(gl_info, &vertex_caps); adapter->d3d_info.xyzrhw = vertex_caps.xyzrhw; diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index c85b334..54f004f 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -7632,6 +7632,7 @@ static void shader_glsl_get_caps(const struct wined3d_gl_info *gl_info, struct s
caps->vs_uniform_count = gl_info->limits.glsl_vs_float_constants; caps->ps_uniform_count = gl_info->limits.glsl_ps_float_constants; + caps->varying_count = gl_info->limits.glsl_varyings;
/* FIXME: The following line is card dependent. -8.0 to 8.0 is the * Direct3D minimum requirement. diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 2d80877..8574881 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -1989,6 +1989,7 @@ static void shader_none_get_caps(const struct wined3d_gl_info *gl_info, struct s caps->vs_uniform_count = 0; caps->ps_uniform_count = 0; caps->ps_1x_max_value = 0.0f; + caps->varying_count = 0; caps->wined3d_caps = 0; }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 1d57899..fe3f97d 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -774,6 +774,7 @@ struct shader_caps DWORD vs_uniform_count; DWORD ps_uniform_count; float ps_1x_max_value; + DWORD varying_count;
DWORD wined3d_caps; }; @@ -1748,6 +1749,7 @@ struct wined3d_d3d_limits UINT vs_version, gs_version, ps_version; DWORD vs_uniform_count; DWORD ps_uniform_count; + UINT varying_count; UINT ffp_textures; UINT ffp_blend_stages; UINT ffp_vertex_blend_matrices;