|
1 | 1 | /* |
2 | | - * Copyright 2025 Arm Limited and/or its affiliates. |
| 2 | + * Copyright 2025-2026 Arm Limited and/or its affiliates. |
3 | 3 | * |
4 | 4 | * This source code is licensed under the BSD-style license found in the |
5 | 5 | * LICENSE file in the root directory of this source tree. |
@@ -324,26 +324,38 @@ static void debug_print_modules( |
324 | 324 | } |
325 | 325 | } |
326 | 326 |
|
327 | | -bool VgfRepr::process_vgf(const char* vgf_data, ArrayRef<CompileSpec> specs) { |
| 327 | +bool VgfRepr::process_vgf( |
| 328 | + const char* vgf_data, |
| 329 | + size_t vgf_size, |
| 330 | + ArrayRef<CompileSpec> specs) { |
328 | 331 | ET_LOG(Info, "Preparing VGF as Vulkan objects"); |
329 | 332 |
|
330 | 333 | VkResult result; |
331 | 334 |
|
332 | 335 | // Prepare temporary decoders |
333 | 336 | unique_ptr<vgflib::HeaderDecoder> header_decoder = |
334 | | - vgflib::CreateHeaderDecoder(vgf_data); |
| 337 | + vgflib::CreateHeaderDecoder(vgf_data, vgflib::HeaderSize(), vgf_size); |
| 338 | + if (!header_decoder) { |
| 339 | + ET_LOG(Error, "Failed to create VGF header decoder"); |
| 340 | + return false; |
| 341 | + } |
| 342 | + |
335 | 343 | unique_ptr<vgflib::ModelSequenceTableDecoder> sequence_decoder = |
336 | 344 | vgflib::CreateModelSequenceTableDecoder( |
337 | | - vgf_data + header_decoder->GetModelSequenceTableOffset()); |
| 345 | + vgf_data + header_decoder->GetModelSequenceTableOffset(), |
| 346 | + header_decoder->GetModelSequenceTableSize()); |
338 | 347 | unique_ptr<vgflib::ModuleTableDecoder> module_decoder = |
339 | 348 | vgflib::CreateModuleTableDecoder( |
340 | | - vgf_data + header_decoder->GetModuleTableOffset()); |
| 349 | + vgf_data + header_decoder->GetModuleTableOffset(), |
| 350 | + header_decoder->GetModuleTableSize()); |
341 | 351 | unique_ptr<vgflib::ModelResourceTableDecoder> resource_decoder = |
342 | 352 | vgflib::CreateModelResourceTableDecoder( |
343 | | - vgf_data + header_decoder->GetModelResourceTableOffset()); |
| 353 | + vgf_data + header_decoder->GetModelResourceTableOffset(), |
| 354 | + header_decoder->GetModelResourceTableSize()); |
344 | 355 | unique_ptr<vgflib::ConstantDecoder> constant_decoder = |
345 | 356 | vgflib::CreateConstantDecoder( |
346 | | - vgf_data + header_decoder->GetConstantsOffset()); |
| 357 | + vgf_data + header_decoder->GetConstantsOffset(), |
| 358 | + header_decoder->GetConstantsSize()); |
347 | 359 | // Check the VGF decoders |
348 | 360 | if (not(header_decoder && module_decoder && sequence_decoder && |
349 | 361 | resource_decoder && constant_decoder && header_decoder->IsValid() && |
|
0 commit comments