return NULL;
shader_part->ref_count = 1;
+ shader_part->binary = binary;
shader_part->code_size = code_size;
shader_part->rsrc1 = S_00B848_VGPRS((binary->num_vgprs - 1) / (wave_size == 32 ? 8 : 4)) |
S_00B228_SGPRS((binary->num_sgprs - 1) / 8);
fprintf(stderr, "\ndisasm:\n%s\n", prolog->disasm_string);
}
- free(binary);
+ free(prolog->binary);
+ prolog->binary = NULL;
+
return prolog;
fail_alloc:
fprintf(stderr, "\ndisasm:\n%s\n", epilog->disasm_string);
}
- free(binary);
+ free(epilog->binary);
+ epilog->binary = NULL;
+
return epilog;
fail_alloc:
if (shader_part->alloc)
radv_free_shader_memory(device, shader_part->alloc);
+ free(shader_part->binary);
free(shader_part->disasm_string);
free(shader_part);
}