vkd3d-shader/hlsl: Move a hlsl_fixme() to a more relevant place.

This commit is contained in:
Zebediah Figura 2024-03-28 15:13:11 -05:00 committed by Alexandre Julliard
parent 675d7b8cb6
commit 1e7d82798c
Notes: Alexandre Julliard 2024-04-03 00:21:18 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/745

View File

@ -427,7 +427,10 @@ static void prepend_input_copy_recurse(struct hlsl_ctx *ctx, struct hlsl_block *
{ {
field = &type->e.record.fields[i]; field = &type->e.record.fields[i];
if (hlsl_type_is_resource(field->type)) if (hlsl_type_is_resource(field->type))
{
hlsl_fixme(ctx, &field->loc, "Prepend uniform copies for resource components within structs.");
continue; continue;
}
validate_field_semantic(ctx, field); validate_field_semantic(ctx, field);
semantic = &field->semantic; semantic = &field->semantic;
elem_semantic_index = semantic->index; elem_semantic_index = semantic->index;
@ -5237,25 +5240,6 @@ static void parse_numthreads_attribute(struct hlsl_ctx *ctx, const struct hlsl_a
} }
} }
static bool type_has_object_components(struct hlsl_type *type)
{
if (type->class == HLSL_CLASS_OBJECT)
return true;
if (type->class == HLSL_CLASS_ARRAY)
return type_has_object_components(type->e.array.type);
if (type->class == HLSL_CLASS_STRUCT)
{
unsigned int i;
for (i = 0; i < type->e.record.field_count; ++i)
{
if (type_has_object_components(type->e.record.fields[i].type))
return true;
}
}
return false;
}
static void remove_unreachable_code(struct hlsl_ctx *ctx, struct hlsl_block *body) static void remove_unreachable_code(struct hlsl_ctx *ctx, struct hlsl_block *body)
{ {
struct hlsl_ir_node *instr, *next; struct hlsl_ir_node *instr, *next;
@ -5363,9 +5347,6 @@ int hlsl_emit_bytecode(struct hlsl_ctx *ctx, struct hlsl_ir_function_decl *entry
} }
else else
{ {
if (type_has_object_components(var->data_type))
hlsl_fixme(ctx, &var->loc, "Prepend uniform copies for object components within structs.");
if (hlsl_get_multiarray_element_type(var->data_type)->class != HLSL_CLASS_STRUCT if (hlsl_get_multiarray_element_type(var->data_type)->class != HLSL_CLASS_STRUCT
&& !var->semantic.name) && !var->semantic.name)
{ {