From: Matteo Bruni Subject: [PATCH 5/7] wined3d: Store supported varyings count in d3d_limits. Message-Id: <1443790490-26613-5-git-send-email-mbruni@codeweavers.com> Date: Fri, 2 Oct 2015 14:54:48 +0200 In-Reply-To: <1443790490-26613-1-git-send-email-mbruni@codeweavers.com> References: <1443790490-26613-1-git-send-email-mbruni@codeweavers.com> Signed-off-by: Matteo Bruni --- 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 d3c362b..87c07db 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; -- 2.4.6