Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Wed, Mar 14, 2018 at 2:01 AM, Timothy Arceri <tarc...@itsqueeze.com> wrote: > --- > src/mesa/program/ir_to_mesa.cpp | 20 ++++++++++++++++++-- > 1 file changed, 18 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/program/ir_to_mesa.cpp > b/src/mesa/program/ir_to_mesa.cpp > index 149d914bc4..19a9fd3fc2 100644 > --- a/src/mesa/program/ir_to_mesa.cpp > +++ b/src/mesa/program/ir_to_mesa.cpp > @@ -2635,8 +2635,24 @@ _mesa_associate_uniform_storage(struct gl_context > *ctx, > */ > if (propagate_to_storage) { > unsigned array_elements = MAX2(1, storage->array_elements); > - _mesa_propagate_uniforms_to_driver_storage(storage, 0, > - array_elements); > + if (ctx->Const.PackedDriverUniformStorage && > !prog->is_arb_asm && > + (storage->is_bindless || !storage->type->contains_opaque())) > { > + const int dmul = storage->type->is_64bit() ? 2 : 1; > + const unsigned components = > + storage->type->vector_elements * > + storage->type->matrix_columns; > + > + for (unsigned s = 0; s < storage->num_driver_storage; s++) > { > + gl_constant_value *uni_storage = (gl_constant_value *) > + storage->driver_storage[s].data; > + memcpy(uni_storage, storage->storage, > + sizeof(storage->storage[0]) * components * > + array_elements * dmul); > + } > + } else { > + _mesa_propagate_uniforms_to_driver_storage(storage, 0, > + array_elements); > + } > } > > last_location = location; > -- > 2.14.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev