[Mesa-dev] [PATCH 2/2] st/mesa: handle GL_UNSIGNED_INT64_ARB in st_pipe_vertex_format

Marek Olšák maraeo at gmail.com
Mon May 28 19:12:33 UTC 2018


On Mon, May 28, 2018 at 3:05 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:

> On Mon, May 28, 2018 at 2:48 PM, Marek Olšák <maraeo at gmail.com> wrote:
> > On Mon, May 28, 2018 at 5:29 AM, Nicolai Hähnle <nhaehnle at gmail.com>
> wrote:
> >>
> >> On 25.05.2018 23:03, Marek Olšák wrote:
> >>>
> >>> From: Marek Olšák <marek.olsak at amd.com>
> >>>
> >>> Bindless texture handles can be passed via vertex attribs using this
> >>> type.
> >>> This fixes a bunch of bindless piglit tests on radeonsi.
> >>>
> >>> Cc: 18.0 18.1 <mesa-stable at lists.freedesktop.org>
> >>> ---
> >>>   src/mesa/state_tracker/st_atom_array.c | 3 +++
> >>>   1 file changed, 3 insertions(+)
> >>>
> >>> diff --git a/src/mesa/state_tracker/st_atom_array.c
> >>> b/src/mesa/state_tracker/st_atom_array.c
> >>> index 9a0935e21a5..76dc81975c8 100644
> >>> --- a/src/mesa/state_tracker/st_atom_array.c
> >>> +++ b/src/mesa/state_tracker/st_atom_array.c
> >>> @@ -292,20 +292,23 @@ st_pipe_vertex_format(const struct
> >>> gl_array_attributes *attrib)
> >>>         assert(size == 3 && !integer && format == GL_RGBA);
> >>>         return PIPE_FORMAT_R11G11B10_FLOAT;
> >>>        case GL_UNSIGNED_BYTE:
> >>>         if (format == GL_BGRA) {
> >>>            /* this is an odd-ball case */
> >>>            assert(normalized);
> >>>            return PIPE_FORMAT_B8G8R8A8_UNORM;
> >>>         }
> >>>         break;
> >>> +
> >>> +   case GL_UNSIGNED_INT64_ARB:
> >>> +      return PIPE_FORMAT_R32G32_UINT;
> >>
> >>
> >> Is it not possible to have vectors of uint64 as attributes?
> >
> >
> > I don't think we support uint64 in shaders. We only support bindless
> > samplers, which can't be vectors.
>
> While we do support them in theory [i64vecN attributes], in practice
> they get lowered in init_velement_lowered (ideally attrib->Doubles is
> set there). Given that the 64-bit bindless attributes have the same
> counting issues, I think they should go through the same lowering
> logic, even though in practice it won't matter (since it always fits
> into a single attribute).
>
> I did do a bit of tracing, and it seemed like that should already work
> with the current code, but clearly it doesn't for some reason.
>
> This patch seems like a workaround, although in practice, it will work too.
>

Vector uint64 vertex attributes are only supported with the NV extension.

Marek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180528/530cb719/attachment.html>


More information about the mesa-dev mailing list