On 16/06/17 01:02, Marek Olšák wrote:
This conflicts with:
https://patchwork.freedesktop.org/patch/161252/
I'll send a version 2 once that lands, thanks.
Marek
On Thu, Jun 15, 2017 at 12:59 PM, Timothy Arceri <tarc...@itsqueeze.com> wrote:
---
I haven't tried to benchmark/profile this with anything but it makes
sense to try skip this if we can.
src/mesa/main/uniform_query.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
index fed33df..364e8a0 100644
--- a/src/mesa/main/uniform_query.cpp
+++ b/src/mesa/main/uniform_query.cpp
@@ -1049,21 +1049,25 @@ _mesa_uniform(GLint location, GLsizei count, const
GLvoid *values,
* element that exceeds the highest array element index used, as
* reported by GetActiveUniform, will be ignored by the GL."
*
* Clamp 'count' to a valid value. Note that for non-arrays a count > 1
* will have already generated an error.
*/
if (uni->array_elements != 0) {
count = MIN2(count, (int) (uni->array_elements - offset));
}
- FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS);
+ FLUSH_VERTICES(ctx, 0);
+
+ if (uni->is_bindless || !uni->type->contains_opaque()) {
+ ctx->NewState |= _NEW_PROGRAM_CONSTANTS;
+ }
/* Store the data in the "actual type" backing storage for the uniform.
*/
if (!uni->type->is_boolean() && !uni->is_bindless) {
memcpy(&uni->storage[size_mul * components * offset], values,
sizeof(uni->storage[0]) * components * count * size_mul);
} else if (uni->is_bindless) {
const union gl_constant_value *src =
(const union gl_constant_value *) values;
GLuint64 *dst = (GLuint64 *)&uni->storage[components * offset].i;
--
2.9.4
_______________________________________________
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