Bug 97331 - glDrawElementsBaseVertex doesn't work in display list on i915
Summary: glDrawElementsBaseVertex doesn't work in display list on i915
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i915 (show other bugs)
Version: 11.2
Hardware: Other All
: medium normal
Assignee: Ian Romanick
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-13 12:02 UTC by Ruslan Kabatsayev
Modified: 2016-08-14 16:13 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Test case (1.93 KB, text/x-csrc)
2016-08-13 12:02 UTC, Ruslan Kabatsayev
Details

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.