Skip to content

[Bindless][UR][E2E] Fix/improve Vulkan tests. Fix L0 BI aspect query. #18705

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

przemektmalon
Copy link
Contributor

Some Vulkan interop tests did not correctly check for the ext-oneapi-bindless-images aspect. This lead to failures when devices (e.g. iGPU) supported memory import, but did not support Bindless Images.

Adding the // REQUIRES lit directive fixed this issue for iGPU, however, it caused problems for Intel BMG machines, which do not pass the aspect query as it is currently implemented.

To fix this, the query now returns Bindless Image support based on extensions returned from zeDriverGetExtensionProperties.

The env vars set by LIT in the buffer_usm.cpp test are unnecessary and have been removed. This was causing a problem on iGPU where the interop would usually work, but the test was failing due to the env variables set for Bindless Images.

A number of improvements have been made to vulkan_common.hpp. There is now a clearer distinction between required and optional instance and device extensions. Optional extensions are loaded only when supported. Fetching function pointers for optional extensions is now protected so that devices with no support do not try to attempt to retrieve pointers to those functions.

The VK_IMAGE_USAGE_STORAGE_BIT was removed from image creation as it was not necessary to the functionality of the tests.

The size of the depth texture created in depth_format.cpp was increased due to larger minimum memory allocation size requirements on iGPU.

Some Vulkan interop tests did not correctly check for the
`ext-oneapi-bindless-images` aspect. This lead to failures when devices
(e.g. iGPU) supported memory import, but did not support Bindless
Images.

Adding the `// REQUIRES` lit directive fixed this issue for iGPU,
however, it caused problems for Intel BMG machines, which do not pass
the aspect query as it is currently implemented.

To fix this, the query now returns Bindless Image support based on
extensions returned from `zeDriverGetExtensionProperties`.

The `env` vars set by LIT in the `buffer_usm.cpp` test are unnecessary
and have been removed. This was causing a problem on iGPU where the
interop would usually work, but the test was failing due to the `env`
variables set for Bindless Images.

A number of improvements have been made to `vulkan_common.hpp`. There is
now a clearer distinction between required and optional instance and
device extensions. Optional extensions are loaded only when supported.
Fetching function pointers for optional extensions is now protected so
that devices with no support do not try to attempt to retrieve pointers
to those functions.

The `VK_IMAGE_USAGE_STORAGE_BIT` was removed from image creation as it
was not necessary to the functionality of the tests.

The size of the depth texture created in `depth_format.cpp` was
increased due to larger minimum memory allocation size requirements on
iGPU.
@przemektmalon przemektmalon requested review from a team as code owners May 28, 2025 15:34
@przemektmalon
Copy link
Contributor Author

Friendly ping @intel/unified-runtime-reviewers-level-zero

@przemektmalon
Copy link
Contributor Author

@intel/llvm-gatekeepers This is ready to merge

@steffenlarsen steffenlarsen merged commit 3e3de96 into intel:sycl Jun 2, 2025
32 checks passed
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.

4 participants