vkd3d-shader/ir: Validate the array index when it is statically known.

This commit is contained in:
Giovanni Mascellani 2024-12-04 11:45:14 +01:00 committed by Henri Verbeet
parent 239c88e8d3
commit abf7a91834
Notes: Henri Verbeet 2024-12-05 21:36:17 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1300

View File

@ -7330,6 +7330,11 @@ static void vsir_validate_io_register(struct validation_context *ctx,
reg->idx_count, reg->type);
return;
}
if (is_array && !reg->idx[0].rel_addr && reg->idx[0].offset >= element->register_count)
validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_INDEX,
"Array index %u exceeds the signature element register count %u in a register of type %#x.",
reg->idx[0].offset, element->register_count, reg->type);
}
if (has_control_point && !reg->idx[control_point_index].rel_addr