[Mesa-dev] [PATCH 0/3] Enable GL 3.2 support for i965, bump Mesa version.

Jordan Justen jljusten at gmail.com
Fri Oct 11 21:33:53 CEST 2013

On Fri, Oct 11, 2013 at 11:04 AM, Paul Berry <stereotype441 at gmail.com> wrote:
> On 11 October 2013 05:43, Mike Lothian <mike at fireburn.co.uk> wrote:
>> Well done on getting this enabled
>> Out of interest how far is SandyBridge from 3.2?
> I believe geometry shaders are all we would have to implement for Sandy
> Bridge.  Unfortunately, geometry shaders work pretty differently on Sandy
> Bridge, so getting them to work won't be a slam dunk.  Here's roughly what
> would have to be done:
> 1. Start using Ivy Bridge/Haswell's "single dispatch" mode for geometry
> shaders--this mode is more similar to how geometry shaders work on Sandy
> Bridge than the "dual object dispatch" mode we're currently using.  In
> addition to paving the way for Sandy Bridge geometry shader sepport, there
> are additional reasons why this is worth doing on Ivy Bridge and Haswell:
> (a) it reduces register pressure, so it should yield better performance for
> geometry shaders that would otherwise run out of registers, and (b) it
> overlaps a lot with implementing instanced geometry shaders, a feature
> required by ARB_gpu_shader5.
> 2. Ivy Bridge has fixed function hardware to buffer the geometry shader
> outputs, decompose strips, and deliver the resulting primitives down the
> pipeline one at a time.  Sandy Bridge doesn't, so we'll need to adapt the
> shader compilerback end to generate code that does this manually.
> 3. Ivy Bridge has fixed function hardware to do transform feedback.  Sandy
> Bridge doesn't; instead the driver generates an ad hoc geometry shader
> program to do transform feedback when it's needed.  When there's a
> user-supplied geometry shader, this ad-hoc program will need to get merged
> together with the user-supplied shader.
> 4. Once all that is done, it should be fairly straightforward to emit the
> correct 3DSTATE_GS packet to turn on the geometry shader.

5. Convert surface state to use layer/miplevel for layered rendering
support. (I guess I have a branch that almost enabled this for color
textures on gen6.)

BTW, to echo what several others have said ... great work on enabling GS!

Series Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>

More information about the mesa-dev mailing list