On Mon, May 28, 2018 at 3:12 PM, Marek Olšák <mar...@gmail.com> wrote: > On Mon, May 28, 2018 at 3:05 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: >> >> On Mon, May 28, 2018 at 2:48 PM, Marek Olšák <mar...@gmail.com> wrote: >> > On Mon, May 28, 2018 at 5:29 AM, Nicolai Hähnle <nhaeh...@gmail.com> >> > wrote: >> >> >> >> On 25.05.2018 23:03, Marek Olšák wrote: >> >>> >> >>> From: Marek Olšák <marek.ol...@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-sta...@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.
Indeed you're right -- I thought ARB_gpu_shader_int64 would support them, but I had misread it earlier. However the remainder of my arguments applies, I think. _mesa_VertexAttribLPointer sets doubles to true, so it should already work. -ilia _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev