diff options
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp b/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp index 422d801b568..03e5fdbef2c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_vector_splitting.cpp @@ -363,12 +363,17 @@ brw_do_vector_splitting(exec_list *instructions) entry->mem_ctx = ralloc_parent(entry->var); for (unsigned int i = 0; i < entry->var->type->vector_elements; i++) { - const char *name = ralloc_asprintf(mem_ctx, "%s_%c", - entry->var->name, - "xyzw"[i]); + char *const name = ir_variable::temporaries_allocate_names + ? ralloc_asprintf(mem_ctx, "%s_%c", + entry->var->name, + "xyzw"[i]) + : NULL; entry->components[i] = new(entry->mem_ctx) ir_variable(type, name, ir_var_temporary); + + ralloc_free(name); + entry->var->insert_before(entry->components[i]); } |