|
1 | 1 | /*
|
2 |
| - * Copyright (C) 2022-2023 Intel Corporation |
| 2 | + * Copyright (C) 2022-2024 Intel Corporation |
3 | 3 | *
|
4 | 4 | * SPDX-License-Identifier: MIT
|
5 | 5 | *
|
6 | 6 | */
|
7 | 7 |
|
8 | 8 | #include "shared/source/command_container/command_encoder.h"
|
9 | 9 | #include "shared/source/helpers/array_count.h"
|
| 10 | +#include "shared/source/helpers/hw_walk_order.h" |
10 | 11 | #include "shared/test/common/cmd_parse/hw_parse.h"
|
11 | 12 | #include "shared/test/common/helpers/debug_manager_state_restore.h"
|
12 | 13 | #include "shared/test/common/test_macros/hw_test.h"
|
@@ -382,21 +383,24 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterAubHwLocalIdsTest, givenNonPowOf2LocalW
|
382 | 383 | EXPECT_NE(hwParser.itorWalker, hwParser.cmdList.end());
|
383 | 384 |
|
384 | 385 | auto walker = genCmdCast<DefaultWalkerType *>(*hwParser.itorWalker);
|
385 |
| - |
386 |
| - auto localId = kernels[2]->getKernelInfo().kernelDescriptor.kernelAttributes.localId; |
387 |
| - uint32_t expectedEmitLocal = 0; |
388 |
| - if (localId[0]) { |
389 |
| - expectedEmitLocal |= (1 << 0); |
390 |
| - } |
391 |
| - if (localId[1]) { |
392 |
| - expectedEmitLocal |= (1 << 1); |
393 |
| - } |
394 |
| - if (localId[2]) { |
395 |
| - expectedEmitLocal |= (1 << 2); |
| 386 | + if (kernels[2]->getKernelInfo().kernelDescriptor.kernelAttributes.flags.requiresWorkgroupWalkOrder) { |
| 387 | + EXPECT_EQ(0u, walker->getGenerateLocalId()); |
| 388 | + } else { |
| 389 | + auto localId = kernels[2]->getKernelInfo().kernelDescriptor.kernelAttributes.localId; |
| 390 | + uint32_t expectedEmitLocal = 0; |
| 391 | + if (localId[0]) { |
| 392 | + expectedEmitLocal |= (1 << 0); |
| 393 | + } |
| 394 | + if (localId[1]) { |
| 395 | + expectedEmitLocal |= (1 << 1); |
| 396 | + } |
| 397 | + if (localId[2]) { |
| 398 | + expectedEmitLocal |= (1 << 2); |
| 399 | + } |
| 400 | + EXPECT_EQ(expectedEmitLocal, walker->getEmitLocalId()); |
| 401 | + EXPECT_EQ(1u, walker->getGenerateLocalId()); |
| 402 | + EXPECT_EQ(4u, walker->getWalkOrder()); |
396 | 403 | }
|
397 |
| - EXPECT_EQ(expectedEmitLocal, walker->getEmitLocalId()); |
398 |
| - EXPECT_EQ(1u, walker->getGenerateLocalId()); |
399 |
| - EXPECT_EQ(4u, walker->getWalkOrder()); |
400 | 404 |
|
401 | 405 | pCmdQ->flush();
|
402 | 406 |
|
@@ -424,8 +428,8 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterAubHwLocalIdsWithSubgroupsTest, givenKe
|
424 | 428 | using INTERFACE_DESCRIPTOR_DATA = typename FamilyType::INTERFACE_DESCRIPTOR_DATA;
|
425 | 429 |
|
426 | 430 | cl_uint workDim = 1;
|
427 |
| - size_t globalWorkSize[3] = {200, 1, 1}; |
428 |
| - size_t localWorkSize[3] = {200, 1, 1}; |
| 431 | + size_t globalWorkSize[3] = {256, 1, 1}; |
| 432 | + size_t localWorkSize[3] = {256, 1, 1}; |
429 | 433 |
|
430 | 434 | auto retVal = pCmdQ->enqueueKernel(
|
431 | 435 | kernels[9].get(),
|
@@ -458,11 +462,13 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterAubHwLocalIdsWithSubgroupsTest, givenKe
|
458 | 462 | }
|
459 | 463 | EXPECT_EQ(expectedEmitLocal, walker->getEmitLocalId());
|
460 | 464 | EXPECT_EQ(1u, walker->getGenerateLocalId());
|
461 |
| - EXPECT_EQ(4u, walker->getWalkOrder()); |
| 465 | + for (size_t i = 0; i < 3; i++) { |
| 466 | + EXPECT_EQ(kernels[9]->getKernelInfo().kernelDescriptor.kernelAttributes.workgroupWalkOrder[i], HwWalkOrderHelper::compatibleDimensionOrders[walker->getWalkOrder()][i]); |
| 467 | + } |
462 | 468 |
|
463 | 469 | pCmdQ->finish();
|
464 | 470 |
|
465 |
| - // we expect sequence of local ids from 0..199 |
| 471 | + // we expect sequence of local ids from 0..256 |
466 | 472 | auto expectedMemory = reinterpret_cast<uint32_t *>(variables[0].expectedMemory);
|
467 | 473 | auto currentWorkItem = 0u;
|
468 | 474 |
|
|
0 commit comments