[Mesa-dev] [PATCH] i965: Make fs gl_PrimitiveID input work even when there's no gs.

Eric Anholt eric at anholt.net
Wed Oct 23 19:51:28 CEST 2013


Paul Berry <stereotype441 at gmail.com> writes:

> When a geometry shader is present, the fragment shader gl_PrimitiveID
> input acts like an ordinary varying, receiving data from the gs
> gl_PrimitiveID output.  When there's no geometry shader, we have to
> ask the fixed function SF hardware to provide the primitive ID to the
> fragment shader instead.
>
> Previously, the SF setup code would handle this situation by
> recognizing that the FS gl_PrimitiveID input didn't match to any VS
> output; since normally an FS input with no corresponding VS output
> leads to undefined data, the SF setup code used to just arbitrarily
> assign it to receive data from attribute 0.
>
> This patch changes the SF setup code so that instead of arbitrarily
> using attribute 0, it assigns the unmatched FS input to receive
> gl_PrimitiveID.  In the case where the FS input really is
> gl_PrimitiveID, this produces the intended result.  In all other
> cases, no harm is done since GL specifies that the behaviour is
> undefined.
>
> Fixes piglit test primitive-id-no-gs.

Reviewed-by: Eric Anholt <eric at anholt.net>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 835 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131023/00e231ee/attachment.pgp>


More information about the mesa-dev mailing list