[PATCH 1/5] wined3d: Expose viewport array index capability in wined3d_caps.

Józef Kucia jkucia at codeweavers.com
Mon Oct 1 11:01:12 CDT 2018


For viewport array indices in shader stages other than geometry.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/wined3d/adapter_gl.c      | 2 ++
 dlls/wined3d/directx.c         | 1 +
 dlls/wined3d/wined3d_private.h | 1 +
 include/wine/wined3d.h         | 1 +
 4 files changed, 5 insertions(+)

diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c
index b794415fb3d6..2f2d09db794b 100644
--- a/dlls/wined3d/adapter_gl.c
+++ b/dlls/wined3d/adapter_gl.c
@@ -3676,6 +3676,8 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
     d3d_info->limits.varying_count = shader_caps.varying_count;
     d3d_info->shader_double_precision = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_DOUBLE_PRECISION);
 
+    d3d_info->viewport_array_index_any_shader = !!gl_info->supported[ARB_SHADER_VIEWPORT_LAYER_ARRAY];
+
     adapter->vertex_pipe->vp_get_caps(gl_info, &vertex_caps);
     d3d_info->xyzrhw = vertex_caps.xyzrhw;
     d3d_info->ffp_generic_attributes = vertex_caps.ffp_generic_attributes;
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index a6184862d1d9..fb67fe4a5128 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2406,6 +2406,7 @@ HRESULT CDECL wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapte
     }
 
     caps->shader_double_precision = d3d_info->shader_double_precision;
+    caps->viewport_array_index_any_shader = d3d_info->viewport_array_index_any_shader;
 
     caps->max_feature_level = d3d_info->feature_level;
 
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 8cfa4c37ef8b..9135189d026c 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -197,6 +197,7 @@ struct wined3d_d3d_info
     unsigned int vs_clipping : 1;
     unsigned int shader_color_key : 1;
     unsigned int shader_double_precision : 1;
+    unsigned int viewport_array_index_any_shader : 1;
     unsigned int texture_npot : 1;
     unsigned int texture_npot_conditional : 1;
     enum wined3d_feature_level feature_level;
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index e2e6a72c8466..cf44ca64a409 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -1980,6 +1980,7 @@ struct wined3d_caps
     struct wined3d_ddraw_caps ddraw_caps;
 
     BOOL shader_double_precision;
+    BOOL viewport_array_index_any_shader;
 
     enum wined3d_feature_level max_feature_level;
 };
-- 
2.16.4




More information about the wine-devel mailing list