[virglrenderer-devel] [PATCH 3/4] vrend: Add GL_EXT_transform_feedback for gles

Jakob Bornecrantz jakob at collabora.com
Wed May 16 14:34:26 UTC 2018


Signed-off-by: Jakob Bornecrantz <jakob at collabora.com>
---
 src/vrend_renderer.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c
index 7e04609..812df76 100644
--- a/src/vrend_renderer.c
+++ b/src/vrend_renderer.c
@@ -4209,8 +4209,10 @@ int vrend_renderer_init(struct vrend_if_cbs *cbs, uint32_t flags)
       vrend_state.have_gl_prim_restart = true;
    else if (epoxy_has_gl_extension("GL_NV_primitive_restart"))
       vrend_state.have_nv_prim_restart = true;
-   if (gl_ver >= 40 || epoxy_has_gl_extension("GL_ARB_transform_feedback2"))
+   if (gl_ver >= 40 || (gles && gl_ver >= 30) ||
+       epoxy_has_gl_extension("GL_ARB_transform_feedback2")) {
       vrend_state.have_tf2 = true;
+   }
 
    if (epoxy_has_gl_extension("GL_ARB_stencil_texturing"))
       vrend_state.have_stencil_texturing = true;
@@ -6766,6 +6768,14 @@ void vrend_renderer_fill_caps_gles(uint32_t set, uint32_t version,
       caps->v1.max_uniform_blocks = max + 1;
    }
 
+   if (gles_ver >= 30) {
+      glGetIntegerv(GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS, &max);
+      /* As with the earlier version of transform feedback this min 4. */
+      if (max >= 4) {
+         caps->v1.max_streamout_buffers = 4;
+      }
+   }
+
    if (gles_ver >= 30) {
       caps->v1.bset.texture_multisample = 1;
    }
-- 
2.14.1



More information about the virglrenderer-devel mailing list