On Mon, May 28, 2018 at 3:21 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote:
> 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. > It doesn't work with immediate mode (stride=0). I'll send out a new series. Marek
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev