On GLES >= 3.1 all the functionality that is currently relevant for attribute binding in virglrenderer is available. However, GLES 3.1 does not fully implement GL_ARB_vertex_attrib_binding. Therefore, rename the flag "have_vertex_attrib_binding" to "have_gles31_vertex_attrib_binding", and set it when the host implements GL_ARB_vertex_attrib_binding, is GL >= 4.3 or GLES >= 3.1. As a result with these configuration the new code path vrend_draw_bind_vertex_binding is used. Fixes on GLES 3.1 hosts: dEQP-GLES3.functional.clipping.point.wide_point_z_clip dEQP-GLES3.functional.clipping.point.wide_point_z_clip_viewport_center dEQP-GLES3.functional.clipping.point.wide_point_z_clip_viewport_corner On an Intel Kabylake GLES 3.1 host this also fixes: dEQP-GLES3.functional.clipping.point.wide_point_clip dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner but it should be noted that these three tests expect that also points with a centre outside the clip volume will be partially drawn when they overlap with the clip volume because of being "wide" (i.e. when moving towards the clip volume boundary a wide point would "naturally" move out). The OpenGL standard defines that points should be clipped the moment the centre is outside the clip volume (i.e. points will "pop" in and out of the view when moving across the border). Hence, for a host implementation following the standard to the letter these tests should actually fail. v2: - rename have_vertex_attrib_binding to have_gles31_vertex_attrib_binding - clarify the commit message describing the wide point clipping problem Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Signed-off-by: Jakob Bornecrantz <jakob@collabora.com>macos/master
parent
3222f87b73
commit
4baf9b6a9e
Loading…
Reference in new issue