radv: stop storing the binary as part of radv_shader_part
It's unnecessary to keep a pointer to the binary. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21897>
This commit is contained in:
committed by
Marge Bot
parent
2803b786f0
commit
a455e0c99f
@@ -2498,7 +2498,6 @@ radv_shader_part_create(struct radv_shader_part_binary *binary, unsigned wave_si
|
||||
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);
|
||||
@@ -2509,9 +2508,9 @@ radv_shader_part_create(struct radv_shader_part_binary *binary, unsigned wave_si
|
||||
}
|
||||
|
||||
bool
|
||||
radv_shader_part_binary_upload(struct radv_device *device, struct radv_shader_part *shader_part)
|
||||
radv_shader_part_binary_upload(struct radv_device *device, const struct radv_shader_part_binary *bin,
|
||||
struct radv_shader_part *shader_part)
|
||||
{
|
||||
const struct radv_shader_part_binary *bin = shader_part->binary;
|
||||
uint32_t code_size = radv_get_shader_binary_size(bin->code_size);
|
||||
struct radv_shader_dma_submission *submission = NULL;
|
||||
void *dest_ptr;
|
||||
@@ -2919,7 +2918,7 @@ radv_create_vs_prolog(struct radv_device *device, const struct radv_vs_prolog_ke
|
||||
prolog->bo = prolog->alloc->arena->bo;
|
||||
prolog->va = radv_buffer_get_va(prolog->bo) + prolog->alloc->offset;
|
||||
|
||||
if (!radv_shader_part_binary_upload(device, prolog))
|
||||
if (!radv_shader_part_binary_upload(device, binary, prolog))
|
||||
goto fail_alloc;
|
||||
|
||||
if (options.dump_shader) {
|
||||
@@ -2927,8 +2926,7 @@ radv_create_vs_prolog(struct radv_device *device, const struct radv_vs_prolog_ke
|
||||
fprintf(stderr, "\ndisasm:\n%s\n", prolog->disasm_string);
|
||||
}
|
||||
|
||||
free(prolog->binary);
|
||||
prolog->binary = NULL;
|
||||
free(binary);
|
||||
|
||||
return prolog;
|
||||
|
||||
@@ -2984,7 +2982,7 @@ radv_create_ps_epilog(struct radv_device *device, const struct radv_ps_epilog_ke
|
||||
epilog->bo = epilog->alloc->arena->bo;
|
||||
epilog->va = radv_buffer_get_va(epilog->bo) + epilog->alloc->offset;
|
||||
|
||||
if (!radv_shader_part_binary_upload(device, epilog))
|
||||
if (!radv_shader_part_binary_upload(device, binary, epilog))
|
||||
goto fail_alloc;
|
||||
|
||||
if (options.dump_shader) {
|
||||
@@ -2992,8 +2990,7 @@ radv_create_ps_epilog(struct radv_device *device, const struct radv_ps_epilog_ke
|
||||
fprintf(stderr, "\ndisasm:\n%s\n", epilog->disasm_string);
|
||||
}
|
||||
|
||||
free(epilog->binary);
|
||||
epilog->binary = NULL;
|
||||
free(binary);
|
||||
|
||||
return epilog;
|
||||
|
||||
@@ -3037,7 +3034,6 @@ radv_shader_part_destroy(struct radv_device *device, struct radv_shader_part *sh
|
||||
|
||||
if (shader_part->alloc)
|
||||
radv_free_shader_memory(device, shader_part->alloc);
|
||||
free(shader_part->binary);
|
||||
free(shader_part->disasm_string);
|
||||
free(shader_part);
|
||||
}
|
||||
|
||||
@@ -526,8 +526,6 @@ struct radv_shader_part {
|
||||
uint32_t spi_shader_col_format;
|
||||
uint64_t upload_seq;
|
||||
|
||||
struct radv_shader_part_binary *binary;
|
||||
|
||||
/* debug only */
|
||||
char *disasm_string;
|
||||
};
|
||||
@@ -584,6 +582,7 @@ struct radv_shader *radv_shader_nir_to_asm(
|
||||
VkResult radv_shader_wait_for_upload(struct radv_device *device, uint64_t seq);
|
||||
|
||||
bool radv_shader_part_binary_upload(struct radv_device *device,
|
||||
const struct radv_shader_part_binary *bin,
|
||||
struct radv_shader_part *shader_part);
|
||||
|
||||
struct radv_shader_dma_submission *
|
||||
|
||||
Reference in New Issue
Block a user