[Mesa-dev] [Bug 35425] Instanced drawing: not implemented

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Apr 7 12:57:07 PDT 2011


https://bugs.freedesktop.org/show_bug.cgi?id=35425

Ian Romanick <idr at freedesktop.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |NOTOURBUG

--- Comment #3 from Ian Romanick <idr at freedesktop.org> 2011-04-07 12:57:06 PDT ---
The application is *BROKEN*.  gl_InstanceID is *NOT* part of
GL_ARB_draw_instanced.  The correct name is gl_InstanceIDARB.  Look at the spec
(http://www.opengl.org/registry/specs/ARB/draw_instanced.txt).  I'm not going
to deviate from the spec to work around broken apps.

The name gl_InstanceID comes from either GLSL 1.40 or GL_EXT_gpu_shader4.  We
don't support either of those.  The GL_EXT_draw_instanced spec even mentions
this:

  (1) Should instanceID be provided by this extension, or should it be
      provided by EXT_gpu_shader4, thus creating a dependence on that
      spec?

        Resolved: While this extension could stand alone, its utility
        would be limited without the additional functionality provided
        by EXT_gpu_shader4; also, the spec language is cleaner if
        EXT_gpu_shader4 assumes instanceID is always available, even
        if its value is always zero without this extension.

I already NAKed this patch when it was posted to the mailing list.  See
http://marc.info/?l=mesa3d-dev&m=130014281021091&w=2.  Here's what I said
there:

NAK for a couple reasons.

This extension depends on EXT_gpu_shader4, which we don't support.
There's no #extension bit required for this extension because the GLSL
changes are implemented by EXT_gpu_shader4.  Without EXT_draw_instanced,
gl_InstanceID always reads 0.

Note that EXT_gpu_shader4 says that a #extension line is required to use
the features of the extension, including gl_InstanceID.  If their driver
allows gl_InstanceID without a #extension line, it is a bug in their driver.

If OilRush is trying to use EXT_gpu_shader4 features without enabling
EXT_gpu_shader4 (or at least checking for the extension!) or using GLSL
1.30, it's a bug in OilRush.

In addition, this patch enables gl_InstanceID even if the driver doesn't
support it.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the mesa-dev mailing list