Skip to content

Use latest Level Zero RT API#595

Open
stefanatwork wants to merge 5 commits intomasterfrom
sw/exp_to_ext_api
Open

Use latest Level Zero RT API#595
stefanatwork wants to merge 5 commits intomasterfrom
sw/exp_to_ext_api

Conversation

@stefanatwork
Copy link
Copy Markdown
Collaborator

No description provided.

@stefanatwork stefanatwork requested a review from svenwoop April 21, 2026 12:25
@stefanatwork stefanatwork self-assigned this Apr 21, 2026
@svenwoop
Copy link
Copy Markdown
Collaborator

There are still occurrences of wrong extension name:

    kernels/level_zero/ze_api.h:#define ZE_RTAS_BUILDER_EXP_NAME "ZE_experimental_rtas_builder"
    tutorials/common/sycl/util.h: if (has_raytracing && strncmp("ZE_experimental_rtas_builder",extensions[i].name,sizeof(extensions[i].name)) == 0)

And this here:

    sycl/rthwif_embree_builder.cpp: void* zeRTASInitExp(sycl::device device, sycl::context context)
    sycl/rthwif_embree_builder.h: void* zeRTASInitExp(sycl::device device, sycl::context context);

Also package name under Ubuntu is libze-intel-gpu-raytracing, best add this in addition to intel-level-zero-gpu-raytracing:

     throw std::runtime_error("No driver support for acceleration structure building found. Please install a recent driver. On Linux, make sure that the package intel-level-zero-gpu-raytracing is installed.");

And we are actually still using some other experimental extension:

    ZE_RELAXED_ALLOCATION_LIMITS_EXP_FLAG_MAX_SIZE

For that one we should query if the extension is supported, and only use that special alloc mode if extension is there.

Also we should ask Level Zero team to make this an EXT, this relatex buffer allocation size is important.

@stefanatwork stefanatwork added this to the 4.4.2 milestone May 7, 2026
relaxed.pNext = &rt_desc;
relaxed.flags = ZE_RELAXED_ALLOCATION_LIMITS_EXP_FLAG_MAX_SIZE;

const bool hasRelaxedAllocationLimits = hasDriverExtension(hDriver, ZE_RELAXED_ALLOCATION_LIMITS_EXP_NAME);
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please move that line to DeviceGPU constructor?

    const bool hasRelaxedAllocationLimits = hasDriverExtension(hDriver, ZE_RELAXED_ALLOCATION_LIMITS_EXP_NAME);

Looks expensive to iterate over all extensions over and over.

@svenwoop
Copy link
Copy Markdown
Collaborator

svenwoop commented May 7, 2026

There is a problem did you actually have a look at the CI? There are issues:

Embree incompatible SYCL devices:
1085: SYCL Device:
1085: Name: Intel(R) Arc(TM) A750 Graphics
1085: Platform: Intel(R) oneAPI Unified Runtime over Level-Zero
1085: Type: GPU
1085: Max Work Group Size : 1024
1085: Max Compute Units : 448
1085: raytracing = YES
1085: rtas_builder = NO

Seems the EXR builder extension is not found. Not sure how that can be, best check with Krzystof how old latest public driver we use is. Also try if it works with recent gfx-master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants