Skip to content

Commit 081b512

Browse files
committed
Skip adapters with no platforms in urAdapterGet
1 parent 30fa2d8 commit 081b512

File tree

6 files changed

+151
-177
lines changed

6 files changed

+151
-177
lines changed

unified-runtime/scripts/templates/ldrddi.cpp.mako

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -51,24 +51,21 @@ namespace ur_loader
5151
%if func_basename == "AdapterGet":
5252
auto context = getContext();
5353

54-
size_t adapterIndex = 0;
55-
if( nullptr != ${obj['params'][1]['name']} && ${obj['params'][0]['name']} !=0)
56-
{
57-
for( auto& platform : context->platforms )
58-
{
59-
if(platform.initStatus != ${X}_RESULT_SUCCESS)
60-
continue;
61-
platform.dditable.${th.get_table_name(n, tags, obj)}.${th.make_pfn_name(n, tags, obj)}( 1, &${obj['params'][1]['name']}[adapterIndex], nullptr );
62-
adapterIndex++;
63-
if (adapterIndex == NumEntries) {
64-
break;
65-
}
66-
}
54+
uint32_t numAdapters = 0;
55+
for (auto &platform : context->platforms) {
56+
if (platform.initStatus != ${X}_RESULT_SUCCESS)
57+
continue;
58+
59+
uint32_t adapter;
60+
ur_adapter_handle_t *adapterHandle = numAdapters < NumEntries ? &${obj['params'][1]['name']}[numAdapters] : nullptr;
61+
platform.dditable.${th.get_table_name(n, tags, obj)}.${th.make_pfn_name(n, tags, obj)}( 1, adapterHandle, &adapter );
62+
63+
numAdapters += adapter;
6764
}
6865

6966
if( ${obj['params'][2]['name']} != nullptr )
7067
{
71-
*${obj['params'][2]['name']} = static_cast<uint32_t>(context->platforms.size());
68+
*${obj['params'][2]['name']} = numAdapters;
7269
}
7370

7471
return ${X}_RESULT_SUCCESS;

0 commit comments

Comments
 (0)