From: Marek Olšák <[email protected]> Bindless texture handles can be passed via vertex attribs using this type. They use the double codepath, so don't use st_pipe_vertex_format.
Cc: 18.0 18.1 <[email protected]> --- src/mesa/state_tracker/st_atom_array.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mesa/state_tracker/st_atom_array.c b/src/mesa/state_tracker/st_atom_array.c index 9a0935e21a5..e4fc19eb5e2 100644 --- a/src/mesa/state_tracker/st_atom_array.c +++ b/src/mesa/state_tracker/st_atom_array.c @@ -317,21 +317,20 @@ static void init_velement(struct pipe_vertex_element *velement, velement->vertex_buffer_index = vbo_index; assert(velement->src_format); } static void init_velement_lowered(const struct st_vertex_program *vp, struct pipe_vertex_element *velements, const struct gl_array_attributes *attrib, int src_offset, int instance_divisor, int vbo_index, int idx) { - const unsigned format = st_pipe_vertex_format(attrib); const GLubyte nr_components = attrib->Size; if (attrib->Doubles) { int lower_format; if (nr_components < 2) lower_format = PIPE_FORMAT_R32G32_UINT; else lower_format = PIPE_FORMAT_R32G32B32A32_UINT; @@ -351,20 +350,22 @@ static void init_velement_lowered(const struct st_vertex_program *vp, lower_format, instance_divisor, vbo_index); } else { /* The values here are undefined. Fill in some conservative * dummy values. */ init_velement(&velements[idx], src_offset, PIPE_FORMAT_R32G32_UINT, instance_divisor, vbo_index); } } } else { + const unsigned format = st_pipe_vertex_format(attrib); + init_velement(&velements[idx], src_offset, format, instance_divisor, vbo_index); } } static void set_vertex_attribs(struct st_context *st, struct pipe_vertex_buffer *vbuffers, unsigned num_vbuffers, struct pipe_vertex_element *velements, -- 2.17.0 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
