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:
Samuel Pitoiset
2023-03-20 13:58:31 +01:00
committed by Marge Bot
parent 2803b786f0
commit a455e0c99f
2 changed files with 7 additions and 12 deletions
+6 -10
View File
@@ -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);
}
+1 -2
View File
@@ -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 *