On Fri, Mar 15, 2019 at 10:29 AM Alyssa Rosenzweig <aly...@rosenzweig.io> wrote:
>
> > This is needed if you can only handle point sprites on certain
> > varyings but not others. This is the case for nv30- and nvc0-based
> > GPUs, which is why the cap was introduced.
> >
> > If your GPU does not have such restrictions, you can safely remove the cap.
>
> Ah-ha, I see, thank you.
>
> I can't handle point sprites on any varyings (they all have to get
> lowered to gl_PointCoord), so.. :)

Yeah, that's not extremely surprising. Point sprites weren't a thing
in GLES 1, and only available as gl_PointCoord in GLES 2. With GL 1.x
+ multitexture, you can have up to 8 tex coords used in your fragment
pipeline, and so need a fixed-function way of setting them to point
coords when drawing points. Hence the current TEXCOORD semantics of
just bumping generic varyings by 8, so that we can be sure that any
shaders with true gl_TexCoord[] usage get the low 8 varyings assigned
(and which, on nvc0+ go through "special" shader outputs, subject to
the replacement).

Note that e.g. Adreno A3xx+ is capable of doing the replacement
everywhere, despite being a GLES-targeted GPU. So it's not out of the
realm of possibility that you just haven't figured out the full
mechanism for doing it yet.

Cheers,

  -ilia
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to