ralloc: use rzalloc where it's necessary
No change in behavior. ralloc_size is equivalent to rzalloc_size. That will change though. Calls not switched to rzalloc_size: - ralloc_vasprintf - glsl_type::name allocation (it's filled with snprintf) - C++ classes where valgrind didn't show uninitialized values I switched most of non-glsl stuff to rzalloc without checking whether it's really needed. Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net> Tested-by: Edmondo Tommasina <edmondo.tommasina@gmail.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
@@ -49,7 +49,7 @@ struct YYLTYPE;
|
|||||||
*/
|
*/
|
||||||
class ast_node {
|
class ast_node {
|
||||||
public:
|
public:
|
||||||
DECLARE_RALLOC_CXX_OPERATORS(ast_node);
|
DECLARE_RZALLOC_CXX_OPERATORS(ast_node);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Print an AST node in something approximating the original GLSL code
|
* Print an AST node in something approximating the original GLSL code
|
||||||
|
@@ -6639,7 +6639,7 @@ ast_process_struct_or_iface_block_members(exec_list *instructions,
|
|||||||
* the types to HIR. This ensures that structure definitions embedded in
|
* the types to HIR. This ensures that structure definitions embedded in
|
||||||
* other structure definitions or in interface blocks are processed.
|
* other structure definitions or in interface blocks are processed.
|
||||||
*/
|
*/
|
||||||
glsl_struct_field *const fields = ralloc_array(state, glsl_struct_field,
|
glsl_struct_field *const fields = rzalloc_array(state, glsl_struct_field,
|
||||||
decl_count);
|
decl_count);
|
||||||
|
|
||||||
bool first_member = true;
|
bool first_member = true;
|
||||||
|
@@ -76,7 +76,7 @@ struct _mesa_glsl_parse_state {
|
|||||||
_mesa_glsl_parse_state(struct gl_context *_ctx, gl_shader_stage stage,
|
_mesa_glsl_parse_state(struct gl_context *_ctx, gl_shader_stage stage,
|
||||||
void *mem_ctx);
|
void *mem_ctx);
|
||||||
|
|
||||||
DECLARE_RALLOC_CXX_OPERATORS(_mesa_glsl_parse_state);
|
DECLARE_RZALLOC_CXX_OPERATORS(_mesa_glsl_parse_state);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate a string representing the GLSL version currently being compiled
|
* Generate a string representing the GLSL version currently being compiled
|
||||||
|
@@ -310,7 +310,7 @@ create_buffer_blocks(void *mem_ctx, struct gl_context *ctx,
|
|||||||
/* Allocate storage to hold all of the information related to uniform
|
/* Allocate storage to hold all of the information related to uniform
|
||||||
* blocks that can be queried through the API.
|
* blocks that can be queried through the API.
|
||||||
*/
|
*/
|
||||||
struct gl_uniform_block *blocks = ralloc_array(mem_ctx, gl_uniform_block, num_blocks);
|
struct gl_uniform_block *blocks = rzalloc_array(mem_ctx, gl_uniform_block, num_blocks);
|
||||||
gl_uniform_buffer_variable *variables =
|
gl_uniform_buffer_variable *variables =
|
||||||
ralloc_array(blocks, gl_uniform_buffer_variable, num_variables);
|
ralloc_array(blocks, gl_uniform_buffer_variable, num_variables);
|
||||||
|
|
||||||
|
@@ -56,7 +56,7 @@ struct exec_node {
|
|||||||
struct exec_node *prev;
|
struct exec_node *prev;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
DECLARE_RALLOC_CXX_OPERATORS(exec_node)
|
DECLARE_RZALLOC_CXX_OPERATORS(exec_node)
|
||||||
|
|
||||||
exec_node() : next(NULL), prev(NULL)
|
exec_node() : next(NULL), prev(NULL)
|
||||||
{
|
{
|
||||||
|
@@ -448,8 +448,9 @@ nir_alu_instr *
|
|||||||
nir_alu_instr_create(nir_shader *shader, nir_op op)
|
nir_alu_instr_create(nir_shader *shader, nir_op op)
|
||||||
{
|
{
|
||||||
unsigned num_srcs = nir_op_infos[op].num_inputs;
|
unsigned num_srcs = nir_op_infos[op].num_inputs;
|
||||||
|
/* TODO: don't use rzalloc */
|
||||||
nir_alu_instr *instr =
|
nir_alu_instr *instr =
|
||||||
ralloc_size(shader,
|
rzalloc_size(shader,
|
||||||
sizeof(nir_alu_instr) + num_srcs * sizeof(nir_alu_src));
|
sizeof(nir_alu_instr) + num_srcs * sizeof(nir_alu_src));
|
||||||
|
|
||||||
instr_init(&instr->instr, nir_instr_type_alu);
|
instr_init(&instr->instr, nir_instr_type_alu);
|
||||||
@@ -486,8 +487,9 @@ nir_intrinsic_instr *
|
|||||||
nir_intrinsic_instr_create(nir_shader *shader, nir_intrinsic_op op)
|
nir_intrinsic_instr_create(nir_shader *shader, nir_intrinsic_op op)
|
||||||
{
|
{
|
||||||
unsigned num_srcs = nir_intrinsic_infos[op].num_srcs;
|
unsigned num_srcs = nir_intrinsic_infos[op].num_srcs;
|
||||||
|
/* TODO: don't use rzalloc */
|
||||||
nir_intrinsic_instr *instr =
|
nir_intrinsic_instr *instr =
|
||||||
ralloc_size(shader,
|
rzalloc_size(shader,
|
||||||
sizeof(nir_intrinsic_instr) + num_srcs * sizeof(nir_src));
|
sizeof(nir_intrinsic_instr) + num_srcs * sizeof(nir_src));
|
||||||
|
|
||||||
instr_init(&instr->instr, nir_instr_type_intrinsic);
|
instr_init(&instr->instr, nir_instr_type_intrinsic);
|
||||||
|
@@ -35,7 +35,8 @@ vtn_access_chain_extend(struct vtn_builder *b, struct vtn_access_chain *old,
|
|||||||
struct vtn_access_chain *chain;
|
struct vtn_access_chain *chain;
|
||||||
|
|
||||||
unsigned new_len = old->length + new_ids;
|
unsigned new_len = old->length + new_ids;
|
||||||
chain = ralloc_size(b, sizeof(*chain) + new_len * sizeof(chain->link[0]));
|
/* TODO: don't use rzalloc */
|
||||||
|
chain = rzalloc_size(b, sizeof(*chain) + new_len * sizeof(chain->link[0]));
|
||||||
|
|
||||||
chain->var = old->var;
|
chain->var = old->var;
|
||||||
chain->length = new_len;
|
chain->length = new_len;
|
||||||
|
@@ -40,7 +40,7 @@
|
|||||||
*/
|
*/
|
||||||
void * ir3_alloc(struct ir3 *shader, int sz)
|
void * ir3_alloc(struct ir3 *shader, int sz)
|
||||||
{
|
{
|
||||||
return ralloc_size(shader, sz);
|
return rzalloc_size(shader, sz); /* TODO: don't use rzalloc */
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ir3 * ir3_create(struct ir3_compiler *compiler,
|
struct ir3 * ir3_create(struct ir3_compiler *compiler,
|
||||||
|
@@ -28,7 +28,7 @@
|
|||||||
void
|
void
|
||||||
vc4_init_cl(void *mem_ctx, struct vc4_cl *cl)
|
vc4_init_cl(void *mem_ctx, struct vc4_cl *cl)
|
||||||
{
|
{
|
||||||
cl->base = ralloc_size(mem_ctx, 1);
|
cl->base = rzalloc_size(mem_ctx, 1); /* TODO: don't use rzalloc */
|
||||||
cl->next = cl->base;
|
cl->next = cl->base;
|
||||||
cl->size = 0;
|
cl->size = 0;
|
||||||
}
|
}
|
||||||
|
@@ -2518,7 +2518,7 @@ vc4_get_compiled_shader(struct vc4_context *vc4, enum qstage stage,
|
|||||||
qir_compile_destroy(c);
|
qir_compile_destroy(c);
|
||||||
|
|
||||||
struct vc4_key *dup_key;
|
struct vc4_key *dup_key;
|
||||||
dup_key = ralloc_size(shader, key_size);
|
dup_key = rzalloc_size(shader, key_size); /* TODO: don't use rzalloc */
|
||||||
memcpy(dup_key, key, key_size);
|
memcpy(dup_key, key, key_size);
|
||||||
_mesa_hash_table_insert(ht, dup_key, shader);
|
_mesa_hash_table_insert(ht, dup_key, shader);
|
||||||
|
|
||||||
|
@@ -46,8 +46,9 @@ brw_track_state_batch(struct brw_context *brw,
|
|||||||
if (!brw->state_batch_list) {
|
if (!brw->state_batch_list) {
|
||||||
/* Our structs are always aligned to at least 32 bytes, so
|
/* Our structs are always aligned to at least 32 bytes, so
|
||||||
* our array doesn't need to be any larger
|
* our array doesn't need to be any larger
|
||||||
|
* TODO: don't use rzalloc
|
||||||
*/
|
*/
|
||||||
brw->state_batch_list = ralloc_size(brw, sizeof(*brw->state_batch_list) *
|
brw->state_batch_list = rzalloc_size(brw, sizeof(*brw->state_batch_list) *
|
||||||
batch->bo->size / 32);
|
batch->bo->size / 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user