mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/hlsl: Record default values for uniforms and constant buffers.
This commit is contained in:
committed by
Henri Verbeet
parent
1fe7a6581b
commit
e8dbc36bd2
Notes:
Henri Verbeet
2024-06-11 16:55:09 +02:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/787
@@ -167,6 +167,8 @@ void hlsl_free_var(struct hlsl_ir_var *decl)
|
||||
for (k = 0; k <= HLSL_REGSET_LAST_OBJECT; ++k)
|
||||
vkd3d_free((void *)decl->objects_usage[k]);
|
||||
|
||||
vkd3d_free(decl->default_values);
|
||||
|
||||
for (i = 0; i < decl->state_block_count; ++i)
|
||||
hlsl_free_state_block(decl->state_blocks[i]);
|
||||
vkd3d_free(decl->state_blocks);
|
||||
@@ -1247,6 +1249,7 @@ struct hlsl_ir_var *hlsl_new_synthetic_var_named(struct hlsl_ctx *ctx, const cha
|
||||
list_add_tail(&ctx->dummy_scope->vars, &var->scope_entry);
|
||||
else
|
||||
list_add_tail(&ctx->globals->vars, &var->scope_entry);
|
||||
var->is_synthetic = true;
|
||||
}
|
||||
return var;
|
||||
}
|
||||
@@ -3086,6 +3089,33 @@ void hlsl_dump_function(struct hlsl_ctx *ctx, const struct hlsl_ir_function_decl
|
||||
vkd3d_string_buffer_cleanup(&buffer);
|
||||
}
|
||||
|
||||
void hlsl_dump_var_default_values(const struct hlsl_ir_var *var)
|
||||
{
|
||||
unsigned int k, component_count = hlsl_type_component_count(var->data_type);
|
||||
struct vkd3d_string_buffer buffer;
|
||||
|
||||
vkd3d_string_buffer_init(&buffer);
|
||||
if (!var->default_values)
|
||||
{
|
||||
vkd3d_string_buffer_printf(&buffer, "var \"%s\" has no default values.\n", var->name);
|
||||
vkd3d_string_buffer_trace(&buffer);
|
||||
vkd3d_string_buffer_cleanup(&buffer);
|
||||
return;
|
||||
}
|
||||
|
||||
vkd3d_string_buffer_printf(&buffer, "var \"%s\" default values:", var->name);
|
||||
for (k = 0; k < component_count; ++k)
|
||||
{
|
||||
if (k % 4 == 0)
|
||||
vkd3d_string_buffer_printf(&buffer, "\n ");
|
||||
vkd3d_string_buffer_printf(&buffer, " 0x%08x", var->default_values[k].value.u);
|
||||
}
|
||||
vkd3d_string_buffer_printf(&buffer, "\n");
|
||||
|
||||
vkd3d_string_buffer_trace(&buffer);
|
||||
vkd3d_string_buffer_cleanup(&buffer);
|
||||
}
|
||||
|
||||
void hlsl_replace_node(struct hlsl_ir_node *old, struct hlsl_ir_node *new)
|
||||
{
|
||||
struct hlsl_src *src, *next;
|
||||
|
Reference in New Issue
Block a user