X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Funiform_query.cpp;h=2ced201ebcaa5b26e309f8fe1069ca5ef4306386;hb=09550c16a51e89dbf64b0864d3fb4ddb6accac52;hp=083087d6baa66d65fd922e18b29713747bb286bf;hpb=bcfaab38858fdcfbd8ffeaf6b0e3da8a726f02e6;p=mesa.git diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp index 083087d6baa..2ced201ebca 100644 --- a/src/mesa/main/uniform_query.cpp +++ b/src/mesa/main/uniform_query.cpp @@ -31,10 +31,10 @@ #include "main/shaderapi.h" #include "main/shaderobj.h" #include "main/uniforms.h" -#include "glsl/ir.h" -#include "glsl/ir_uniform.h" -#include "glsl/glsl_parser_extras.h" -#include "glsl/program.h" +#include "compiler/glsl/ir.h" +#include "compiler/glsl/ir_uniform.h" +#include "compiler/glsl/glsl_parser_extras.h" +#include "compiler/glsl/program.h" #include "program/hash_table.h" @@ -437,7 +437,7 @@ _mesa_get_uniform(struct gl_context *ctx, GLuint program, GLint location, dst[didx].i = src[sidx].i ? 1 : 0; break; case GLSL_TYPE_DOUBLE: - dst[didx].i = *(double *)&src[sidx].f; + dst[didx].i = IROUNDD(*(double *)&src[sidx].f); break; default: assert(!"Should not get here."); @@ -758,6 +758,10 @@ _mesa_uniform(struct gl_context *ctx, struct gl_shader_program *shProg, return; } } + /* We need to reset the validate flag on changes to samplers in case + * two different sampler types are set to the same texture unit. + */ + ctx->_Shader->Validated = GL_FALSE; } if (uni->type->is_image()) {