Bug 97331

Summary: glDrawElementsBaseVertex doesn't work in display list on i915
Product: Mesa Reporter: Ruslan Kabatsayev <b7.10110111>
Component: Drivers/DRI/i915Assignee: Ian Romanick <idr>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: 11.2   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Test case

Description Ruslan Kabatsayev 2016-08-13 12:02:55 UTC
Created attachment 125767 [details]
Test case

See the attached test case. It can run in four modes:

0) glDrawElements direct call
1) glDrawElementsBaseVertex direct call
2) glDrawElements inside a display list
3) glDrawElementsBaseVertex inside a display list

Only first three work correctly on i915. Mode 3) shows black window, which is wrong. According to OpenGL docs, glDrawElementsBaseVertex is mostly equivalent to glDrawElements. Since the latter is included in display lists, the former must be too.

Tested on:
Linux 3.19.0 + Intel Atom N550 + Mesa 10.5.9
Linux 4.4.0 + Intel Atom N450 + Mesa 11.2.0
Comment 1 Ilia Mirkin 2016-08-14 06:30:54 UTC
https://patchwork.freedesktop.org/patch/105072/

That fixes it for me with a different driver, but it's all shared infrastructure inside mesa...
Comment 2 Ruslan Kabatsayev 2016-08-14 13:31:27 UTC
(In reply to Ilia Mirkin from comment #1)
> https://patchwork.freedesktop.org/patch/105072/
> 
> That fixes it for me with a different driver, but it's all shared
> infrastructure inside mesa...

I can confirm that this fixes the problem on Core i7-4765T.
Comment 3 Ilia Mirkin 2016-08-14 16:13:14 UTC
Fix pushed:

commit 68b64f32e84c951ca22de8cd5f65305e0142230d
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Sun Aug 14 02:28:35 2016 -0400

    vbo: allow DrawElementsBaseVertex in display lists

As an aside, note that Draw*Instanced* is not allowed in display lists, per the ARB_draw_instanced spec.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.