Hi,
I think this patch could go as it is now, but given that there will have to be another round...
Il 10/05/22 15:08, Giovanni Mascellani ha scritto:
for (i = 0; i < v->arrays.count; ++i)
{if (v->arrays.sizes[i] == HLSL_ARRAY_ELEMENTS_COUNT_IMPLICIT){if (type->type == HLSL_CLASS_OBJECT && shader_is_sm_5_1(ctx)){if (i < v->arrays.count - 1){hlsl_error(ctx, &v->loc, VKD3D_SHADER_ERROR_HLSL_INVALID_TYPE,"Inner array size cannot be implicit.");}else{unbounded_res_array = true;}}else{hlsl_error(ctx, &v->loc, VKD3D_SHADER_ERROR_HLSL_INVALID_TYPE,"Implicit size arrays not allowed in struct fields.");}} field->type = hlsl_new_array_type(ctx, field->type, v->arrays.sizes[i]);}if (unbounded_res_array){hlsl_fixme(ctx, &v->loc, "Unbounded resource arrays as struct fields.");free_parse_variable_def(v);vkd3d_free(field);continue;}
I forgot to ask a question: why are you introducing this "unbounded_res_array" variable instead of calling hlsl_fixme() directly in the for loop?
Giovanni.