[PATCH 4/7] wined3d: Add ARB_transform_feedback3 extension.

Józef Kucia jkucia at codeweavers.com
Tue Mar 28 05:00:05 CDT 2017


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/wined3d/directx.c    | 12 ++++++++++++
 dlls/wined3d/wined3d_gl.h |  1 +
 2 files changed, 13 insertions(+)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 8e2798f..419eb4d 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -183,6 +183,7 @@ static const struct wined3d_extension_map gl_extension_map[] =
     {"GL_ARB_texture_view",                 ARB_TEXTURE_VIEW              },
     {"GL_ARB_timer_query",                  ARB_TIMER_QUERY               },
     {"GL_ARB_transform_feedback2",          ARB_TRANSFORM_FEEDBACK2       },
+    {"GL_ARB_transform_feedback3",          ARB_TRANSFORM_FEEDBACK3       },
     {"GL_ARB_uniform_buffer_object",        ARB_UNIFORM_BUFFER_OBJECT     },
     {"GL_ARB_vertex_array_bgra",            ARB_VERTEX_ARRAY_BGRA         },
     {"GL_ARB_vertex_blend",                 ARB_VERTEX_BLEND              },
@@ -2877,6 +2878,11 @@ static void load_gl_funcs(struct wined3d_gl_info *gl_info)
     USE_GL_FUNC(glIsTransformFeedback);
     USE_GL_FUNC(glPauseTransformFeedback);
     USE_GL_FUNC(glResumeTransformFeedback);
+    /* GL_ARB_transform_feedback3 */
+    USE_GL_FUNC(glBeginQueryIndexed);
+    USE_GL_FUNC(glDrawTransformFeedbackStream);
+    USE_GL_FUNC(glEndQueryIndexed);
+    USE_GL_FUNC(glGetQueryIndexediv);
     /* GL_ARB_uniform_buffer_object */
     USE_GL_FUNC(glBindBufferBase)
     USE_GL_FUNC(glBindBufferRange)
@@ -3696,6 +3702,11 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info)
             gl_info->supported[ARB_SHADER_ATOMIC_COUNTERS] = FALSE;
         }
     }
+    if (gl_info->supported[ARB_TRANSFORM_FEEDBACK3])
+    {
+        gl_info->gl_ops.gl.p_glGetIntegerv(GL_MAX_VERTEX_STREAMS, &gl_max);
+        TRACE("Max vertex streams: %d.\n", gl_max);
+    }
 
     if (gl_info->supported[NV_LIGHT_MAX_EXPONENT])
         gl_info->gl_ops.gl.p_glGetFloatv(GL_MAX_SHININESS_NV, &gl_info->limits.shininess);
@@ -3824,6 +3835,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
         {ARB_GPU_SHADER5,                  MAKEDWORD_VERSION(4, 0)},
         {ARB_TEXTURE_CUBE_MAP_ARRAY,       MAKEDWORD_VERSION(4, 0)},
         {ARB_TRANSFORM_FEEDBACK2,          MAKEDWORD_VERSION(4, 0)},
+        {ARB_TRANSFORM_FEEDBACK3,          MAKEDWORD_VERSION(4, 0)},
 
         {ARB_ES2_COMPATIBILITY,            MAKEDWORD_VERSION(4, 1)},
         {ARB_VIEWPORT_ARRAY,               MAKEDWORD_VERSION(4, 1)},
diff --git a/dlls/wined3d/wined3d_gl.h b/dlls/wined3d/wined3d_gl.h
index b7c8727..6290032 100644
--- a/dlls/wined3d/wined3d_gl.h
+++ b/dlls/wined3d/wined3d_gl.h
@@ -116,6 +116,7 @@ enum wined3d_gl_extension
     ARB_TEXTURE_VIEW,
     ARB_TIMER_QUERY,
     ARB_TRANSFORM_FEEDBACK2,
+    ARB_TRANSFORM_FEEDBACK3,
     ARB_UNIFORM_BUFFER_OBJECT,
     ARB_VERTEX_ARRAY_BGRA,
     ARB_VERTEX_BLEND,
-- 
2.10.2




More information about the wine-patches mailing list