[Mesa-dev] [PATCH 0/40] Implement GL_ARB_viewport_array

Ian Romanick idr at freedesktop.org
Fri Jan 10 17:44:40 PST 2014


(Sent after the fact... sorry.)

This represents a medling of GL_ARB_viewport_array code written by
Courtney Goeltzenleuchter (LunarG) and myself over the last couple
months.  It implements all of the core Mesa code for the extension and
enables it in the i965 driver.

Like layered rendering, this extension depends on geometry shaders, so
it is currently only enabled in core profiles.  There is one bit of core
Mesa code that behaves differently when the extension is enabled (see
"mesa: Add new viewport and depth-range entry points for
GL_ARB_viewport_array"), so the enable flag is only set by the i965
driver in core profile.

When multiple viewports, depth ranges, or scissor rectangles are updated
in one API call, the driver is only notified once, at the end.  There is
also no per-viewport "dirty" tracking.  The i965 driver has to send all
of the data when anything changes, so it didn't need that feature.  If
some other hardware could use per-viewport dirty tracking as an
optimization, it would be trivial to add that tracking to the
gl_context.  Then the driver state update (or
dd_function_table::Viewport) function could consult the appropriate
dirty bits before doing the update.



More information about the mesa-dev mailing list