glsl2: Skip talloc_parent in constant_expression of non-constant arrays.
This commit is contained in:
@@ -690,11 +690,11 @@ ir_dereference_variable::constant_expression_value()
|
|||||||
ir_constant *
|
ir_constant *
|
||||||
ir_dereference_array::constant_expression_value()
|
ir_dereference_array::constant_expression_value()
|
||||||
{
|
{
|
||||||
void *ctx = talloc_parent(this);
|
|
||||||
ir_constant *array = this->array->constant_expression_value();
|
ir_constant *array = this->array->constant_expression_value();
|
||||||
ir_constant *idx = this->array_index->constant_expression_value();
|
ir_constant *idx = this->array_index->constant_expression_value();
|
||||||
|
|
||||||
if ((array != NULL) && (idx != NULL)) {
|
if ((array != NULL) && (idx != NULL)) {
|
||||||
|
void *ctx = talloc_parent(this);
|
||||||
if (array->type->is_matrix()) {
|
if (array->type->is_matrix()) {
|
||||||
/* Array access of a matrix results in a vector.
|
/* Array access of a matrix results in a vector.
|
||||||
*/
|
*/
|
||||||
|
@@ -2622,7 +2622,7 @@ _mesa_glsl_compile_shader(GLcontext *ctx, struct gl_shader *shader)
|
|||||||
progress = do_constant_folding(shader->ir) || progress;
|
progress = do_constant_folding(shader->ir) || progress;
|
||||||
progress = do_algebraic(shader->ir) || progress;
|
progress = do_algebraic(shader->ir) || progress;
|
||||||
progress = do_if_return(shader->ir) || progress;
|
progress = do_if_return(shader->ir) || progress;
|
||||||
if (ctx->Shader.EmitNoIfs)
|
if (1 || ctx->Shader.EmitNoIfs)
|
||||||
progress = do_if_to_cond_assign(shader->ir) || progress;
|
progress = do_if_to_cond_assign(shader->ir) || progress;
|
||||||
|
|
||||||
progress = do_vec_index_to_swizzle(shader->ir) || progress;
|
progress = do_vec_index_to_swizzle(shader->ir) || progress;
|
||||||
|
Reference in New Issue
Block a user