mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/d3d-asm: Do not make a copy of the buffer before returning it.
This commit is contained in:
parent
a0d52dc385
commit
94d641783b
Notes:
Alexandre Julliard
2024-03-07 23:21:49 +01:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/553
@ -2051,7 +2051,6 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(const struct vsir_program *program,
|
||||
struct vkd3d_string_buffer *buffer;
|
||||
unsigned int indent, i, j;
|
||||
const char *indent_str;
|
||||
void *code;
|
||||
|
||||
static const struct vkd3d_d3d_asm_colours no_colours =
|
||||
{
|
||||
@ -2150,18 +2149,7 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(const struct vsir_program *program,
|
||||
}
|
||||
}
|
||||
|
||||
if ((code = vkd3d_malloc(buffer->content_size)))
|
||||
{
|
||||
memcpy(code, buffer->buffer, buffer->content_size);
|
||||
out->size = buffer->content_size;
|
||||
out->code = code;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
vkd3d_string_buffer_cleanup(buffer);
|
||||
vkd3d_shader_code_from_string_buffer(out, buffer);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -226,6 +226,16 @@ void vkd3d_string_buffer_release(struct vkd3d_string_buffer_cache *cache, struct
|
||||
cache->buffers[cache->count++] = buffer;
|
||||
}
|
||||
|
||||
void vkd3d_shader_code_from_string_buffer(struct vkd3d_shader_code *code, struct vkd3d_string_buffer *buffer)
|
||||
{
|
||||
code->code = buffer->buffer;
|
||||
code->size = buffer->content_size;
|
||||
|
||||
buffer->buffer = NULL;
|
||||
buffer->buffer_size = 0;
|
||||
buffer->content_size = 0;
|
||||
}
|
||||
|
||||
void vkd3d_shader_message_context_init(struct vkd3d_shader_message_context *context,
|
||||
enum vkd3d_shader_log_level log_level)
|
||||
{
|
||||
|
@ -1409,6 +1409,7 @@ void vkd3d_string_buffer_release(struct vkd3d_string_buffer_cache *list, struct
|
||||
vkd3d_string_buffer_trace_(buffer, __FUNCTION__)
|
||||
void vkd3d_string_buffer_trace_(const struct vkd3d_string_buffer *buffer, const char *function);
|
||||
int vkd3d_string_buffer_vprintf(struct vkd3d_string_buffer *buffer, const char *format, va_list args);
|
||||
void vkd3d_shader_code_from_string_buffer(struct vkd3d_shader_code *code, struct vkd3d_string_buffer *buffer);
|
||||
|
||||
struct vkd3d_bytecode_buffer
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user