Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions sycl/source/detail/cg.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -600,6 +600,7 @@ class CGCopyImage : public CG {
ur_image_format_t MSrcImageFormat;
ur_image_format_t MDstImageFormat;
ur_exp_image_copy_flags_t MImageCopyFlags;
ur_exp_image_copy_input_types_t MImageInputTypes;
ur_rect_offset_t MSrcOffset;
ur_rect_offset_t MDstOffset;
ur_rect_region_t MCopyExtent;
Expand All @@ -609,14 +610,15 @@ class CGCopyImage : public CG {
ur_image_desc_t DstImageDesc, ur_image_format_t SrcImageFormat,
ur_image_format_t DstImageFormat,
ur_exp_image_copy_flags_t ImageCopyFlags,
ur_exp_image_copy_input_types_t ImageInputTypes,
ur_rect_offset_t SrcOffset, ur_rect_offset_t DstOffset,
ur_rect_region_t CopyExtent, CG::StorageInitHelper CGData,
detail::code_location loc = {})
: CG(CGType::CopyImage, std::move(CGData), std::move(loc)), MSrc(Src),
MDst(Dst), MSrcImageDesc(SrcImageDesc), MDstImageDesc(DstImageDesc),
MSrcImageFormat(SrcImageFormat), MDstImageFormat(DstImageFormat),
MImageCopyFlags(ImageCopyFlags), MSrcOffset(SrcOffset),
MDstOffset(DstOffset), MCopyExtent(CopyExtent) {}
MImageCopyFlags(ImageCopyFlags), MImageInputTypes(ImageInputTypes),
MSrcOffset(SrcOffset), MDstOffset(DstOffset), MCopyExtent(CopyExtent) {}

void *getSrc() const { return MSrc; }
void *getDst() const { return MDst; }
Expand All @@ -625,6 +627,9 @@ class CGCopyImage : public CG {
ur_image_format_t getSrcFormat() const { return MSrcImageFormat; }
ur_image_format_t getDstFormat() const { return MDstImageFormat; }
ur_exp_image_copy_flags_t getCopyFlags() const { return MImageCopyFlags; }
ur_exp_image_copy_input_types_t getCopyInputTypes() const {
return MImageInputTypes;
}
ur_rect_offset_t getSrcOffset() const { return MSrcOffset; }
ur_rect_offset_t getDstOffset() const { return MDstOffset; }
ur_rect_region_t getCopyExtent() const { return MCopyExtent; }
Expand Down
1 change: 1 addition & 0 deletions sycl/source/detail/handler_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ class handler_impl {
ur_image_format_t MSrcImageFormat = {};
ur_image_format_t MDstImageFormat = {};
ur_exp_image_copy_flags_t MImageCopyFlags = {};
ur_exp_image_copy_input_types_t MImageCopyInputTypes = {};

ur_rect_offset_t MSrcOffset = {};
ur_rect_offset_t MDestOffset = {};
Expand Down
10 changes: 6 additions & 4 deletions sycl/source/detail/memory_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1570,8 +1570,10 @@ void MemoryManager::copy_image_bindless(
queue_impl &Queue, const void *Src, void *Dst,
const ur_image_desc_t &SrcDesc, const ur_image_desc_t &DstDesc,
const ur_image_format_t &SrcFormat, const ur_image_format_t &DstFormat,
const ur_exp_image_copy_flags_t Flags, ur_rect_offset_t SrcOffset,
ur_rect_offset_t DstOffset, ur_rect_region_t CopyExtent,
const ur_exp_image_copy_flags_t Flags,
const ur_exp_image_copy_input_types_t InputTypes,
ur_rect_offset_t SrcOffset, ur_rect_offset_t DstOffset,
ur_rect_region_t CopyExtent,
const std::vector<ur_event_handle_t> &DepEvents,
ur_event_handle_t *OutEvent) {
assert((Flags == UR_EXP_IMAGE_COPY_FLAG_HOST_TO_DEVICE ||
Expand All @@ -1594,8 +1596,8 @@ void MemoryManager::copy_image_bindless(

Adapter.call<UrApiKind::urBindlessImagesImageCopyExp>(
Queue.getHandleRef(), Src, Dst, &SrcDesc, &DstDesc, &SrcFormat,
&DstFormat, &CopyRegion, Flags, DepEvents.size(), DepEvents.data(),
OutEvent);
&DstFormat, &CopyRegion, Flags, InputTypes, DepEvents.size(),
DepEvents.data(), OutEvent);
}

} // namespace detail
Expand Down
6 changes: 4 additions & 2 deletions sycl/source/detail/memory_manager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -264,8 +264,10 @@ class MemoryManager {
queue_impl &Queue, const void *Src, void *Dst,
const ur_image_desc_t &SrcDesc, const ur_image_desc_t &DstDesc,
const ur_image_format_t &SrcFormat, const ur_image_format_t &DstFormat,
const ur_exp_image_copy_flags_t Flags, ur_rect_offset_t SrcOffset,
ur_rect_offset_t DstOffset, ur_rect_region_t CopyExtent,
const ur_exp_image_copy_flags_t Flags,
const ur_exp_image_copy_input_types_t InputTypes,
ur_rect_offset_t SrcOffset, ur_rect_offset_t DstOffset,
ur_rect_region_t CopyExtent,
const std::vector<ur_event_handle_t> &DepEvents,
ur_event_handle_t *OutEvent);
};
Expand Down
5 changes: 3 additions & 2 deletions sycl/source/detail/scheduler/commands.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3665,8 +3665,9 @@ ur_result_t ExecCGCommand::enqueueImpQueue() {
MemoryManager::copy_image_bindless, *MQueue, Copy->getSrc(),
Copy->getDst(), Copy->getSrcDesc(), Copy->getDstDesc(),
Copy->getSrcFormat(), Copy->getDstFormat(), Copy->getCopyFlags(),
Copy->getSrcOffset(), Copy->getDstOffset(), Copy->getCopyExtent(),
std::move(RawEvents), Event);
Copy->getCopyInputTypes(), Copy->getSrcOffset(),
Copy->getDstOffset(), Copy->getCopyExtent(), std::move(RawEvents),
Event);
Result != UR_RESULT_SUCCESS)
return Result;

Expand Down
127 changes: 75 additions & 52 deletions sycl/source/handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,16 +239,16 @@ fill_image_desc(const ext::oneapi::experimental::image_descriptor &ImgDesc) {
return UrDesc;
}

static void
fill_copy_args(detail::handler_impl *impl,
const ext::oneapi::experimental::image_descriptor &SrcImgDesc,
const ext::oneapi::experimental::image_descriptor &DestImgDesc,
ur_exp_image_copy_flags_t ImageCopyFlags, size_t SrcPitch,
size_t DestPitch, sycl::range<3> SrcOffset = {0, 0, 0},
sycl::range<3> SrcExtent = {0, 0, 0},
sycl::range<3> DestOffset = {0, 0, 0},
sycl::range<3> DestExtent = {0, 0, 0},
sycl::range<3> CopyExtent = {0, 0, 0}) {
static void fill_copy_args(
detail::handler_impl *impl,
const ext::oneapi::experimental::image_descriptor &SrcImgDesc,
const ext::oneapi::experimental::image_descriptor &DestImgDesc,
ur_exp_image_copy_flags_t ImageCopyFlags,
ur_exp_image_copy_input_types_t ImageCopyInputTypes, size_t SrcPitch,
size_t DestPitch, sycl::range<3> SrcOffset = {0, 0, 0},
sycl::range<3> SrcExtent = {0, 0, 0}, sycl::range<3> DestOffset = {0, 0, 0},
sycl::range<3> DestExtent = {0, 0, 0},
sycl::range<3> CopyExtent = {0, 0, 0}) {
SrcImgDesc.verify();
DestImgDesc.verify();

Expand All @@ -267,12 +267,13 @@ fill_copy_args(detail::handler_impl *impl,
auto ZCopyExtentComponent = detail::fill_image_type(SrcImgDesc, UrSrcDesc);
detail::fill_image_type(DestImgDesc, UrDestDesc);

// Copy args computed here are directly passed to UR. Various offsets and
// extents end up passed as ur_rect_offset_t and ur_rect_region_t. Both those
// structs expect their first component to be in bytes, not in pixels
size_t SrcPixelSize = SrcImgDesc.num_channels * get_channel_size(SrcImgDesc);
size_t DestPixelSize =
DestImgDesc.num_channels * get_channel_size(DestImgDesc);
// ur_rect_offset_t and ur_rect_offset_t which represent image offsets and
// copy extents expect that X-axis offset and region width are specified in
// bytes rather then in elements.
auto SrcPixelSize =
SrcImgDesc.num_channels * detail::get_channel_size(SrcImgDesc);
auto DestPixelSize =
DestImgDesc.num_channels * detail::get_channel_size(DestImgDesc);

impl->MSrcOffset = {SrcOffset[0] * SrcPixelSize, SrcOffset[1], SrcOffset[2]};
impl->MDestOffset = {DestOffset[0] * DestPixelSize, DestOffset[1],
Expand All @@ -282,6 +283,7 @@ fill_copy_args(detail::handler_impl *impl,
impl->MSrcImageFormat = UrSrcFormat;
impl->MDstImageFormat = UrDestFormat;
impl->MImageCopyFlags = ImageCopyFlags;
impl->MImageCopyInputTypes = ImageCopyInputTypes;

if (CopyExtent.size() != 0) {
impl->MCopyExtent = {CopyExtent[0] * SrcPixelSize, CopyExtent[1],
Expand Down Expand Up @@ -311,6 +313,7 @@ static void
fill_copy_args(detail::handler_impl *impl,
const ext::oneapi::experimental::image_descriptor &Desc,
ur_exp_image_copy_flags_t ImageCopyFlags,
ur_exp_image_copy_input_types_t ImageCopyInputTypes,
sycl::range<3> SrcOffset = {0, 0, 0},
sycl::range<3> SrcExtent = {0, 0, 0},
sycl::range<3> DestOffset = {0, 0, 0},
Expand All @@ -320,29 +323,32 @@ fill_copy_args(detail::handler_impl *impl,
size_t SrcPitch = SrcExtent[0] * Desc.num_channels * get_channel_size(Desc);
size_t DestPitch = DestExtent[0] * Desc.num_channels * get_channel_size(Desc);

fill_copy_args(impl, Desc, Desc, ImageCopyFlags, SrcPitch, DestPitch,
SrcOffset, SrcExtent, DestOffset, DestExtent, CopyExtent);
fill_copy_args(impl, Desc, Desc, ImageCopyFlags, ImageCopyInputTypes,
SrcPitch, DestPitch, SrcOffset, SrcExtent, DestOffset,
DestExtent, CopyExtent);
}

static void
fill_copy_args(detail::handler_impl *impl,
const ext::oneapi::experimental::image_descriptor &Desc,
ur_exp_image_copy_flags_t ImageCopyFlags, size_t SrcPitch,
size_t DestPitch, sycl::range<3> SrcOffset = {0, 0, 0},
sycl::range<3> SrcExtent = {0, 0, 0},
sycl::range<3> DestOffset = {0, 0, 0},
sycl::range<3> DestExtent = {0, 0, 0},
sycl::range<3> CopyExtent = {0, 0, 0}) {
static void fill_copy_args(
detail::handler_impl *impl,
const ext::oneapi::experimental::image_descriptor &Desc,
ur_exp_image_copy_flags_t ImageCopyFlags,
ur_exp_image_copy_input_types_t ImageCopyInputTypes, size_t SrcPitch,
size_t DestPitch, sycl::range<3> SrcOffset = {0, 0, 0},
sycl::range<3> SrcExtent = {0, 0, 0}, sycl::range<3> DestOffset = {0, 0, 0},
sycl::range<3> DestExtent = {0, 0, 0},
sycl::range<3> CopyExtent = {0, 0, 0}) {

fill_copy_args(impl, Desc, Desc, ImageCopyFlags, SrcPitch, DestPitch,
SrcOffset, SrcExtent, DestOffset, DestExtent, CopyExtent);
fill_copy_args(impl, Desc, Desc, ImageCopyFlags, ImageCopyInputTypes,
SrcPitch, DestPitch, SrcOffset, SrcExtent, DestOffset,
DestExtent, CopyExtent);
}

static void
fill_copy_args(detail::handler_impl *impl,
const ext::oneapi::experimental::image_descriptor &SrcImgDesc,
const ext::oneapi::experimental::image_descriptor &DestImgDesc,
ur_exp_image_copy_flags_t ImageCopyFlags,
ur_exp_image_copy_input_types_t ImageCopyInputTypes,
sycl::range<3> SrcOffset = {0, 0, 0},
sycl::range<3> SrcExtent = {0, 0, 0},
sycl::range<3> DestOffset = {0, 0, 0},
Expand All @@ -354,9 +360,9 @@ fill_copy_args(detail::handler_impl *impl,
size_t DestPitch =
DestExtent[0] * DestImgDesc.num_channels * get_channel_size(DestImgDesc);

fill_copy_args(impl, SrcImgDesc, DestImgDesc, ImageCopyFlags, SrcPitch,
DestPitch, SrcOffset, SrcExtent, DestOffset, DestExtent,
CopyExtent);
fill_copy_args(impl, SrcImgDesc, DestImgDesc, ImageCopyFlags,
ImageCopyInputTypes, SrcPitch, DestPitch, SrcOffset, SrcExtent,
DestOffset, DestExtent, CopyExtent);
}

} // namespace detail
Expand Down Expand Up @@ -905,8 +911,8 @@ event handler::finalize() {
CommandGroup.reset(new detail::CGCopyImage(
MSrcPtr, MDstPtr, impl->MSrcImageDesc, impl->MDstImageDesc,
impl->MSrcImageFormat, impl->MDstImageFormat, impl->MImageCopyFlags,
impl->MSrcOffset, impl->MDestOffset, impl->MCopyExtent,
std::move(impl->CGData), MCodeLoc));
impl->MImageCopyInputTypes, impl->MSrcOffset, impl->MDestOffset,
impl->MCopyExtent, std::move(impl->CGData), MCodeLoc));
break;
case detail::CGType::SemaphoreWait:
CommandGroup.reset(
Expand Down Expand Up @@ -1622,7 +1628,8 @@ void handler::ext_oneapi_copy(
MDstPtr = reinterpret_cast<void *>(Dest.raw_handle);

detail::fill_copy_args(get_impl(), DestImgDesc,
UR_EXP_IMAGE_COPY_FLAG_HOST_TO_DEVICE);
UR_EXP_IMAGE_COPY_FLAG_HOST_TO_DEVICE,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_IMAGE);

setType(detail::CGType::CopyImage);
}
Expand All @@ -1640,7 +1647,8 @@ void handler::ext_oneapi_copy(
MDstPtr = reinterpret_cast<void *>(Dest.raw_handle);

detail::fill_copy_args(get_impl(), DestImgDesc,
UR_EXP_IMAGE_COPY_FLAG_HOST_TO_DEVICE, SrcOffset,
UR_EXP_IMAGE_COPY_FLAG_HOST_TO_DEVICE,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_IMAGE, SrcOffset,
SrcExtent, DestOffset, {0, 0, 0}, CopyExtent);

setType(detail::CGType::CopyImage);
Expand All @@ -1657,7 +1665,8 @@ void handler::ext_oneapi_copy(
MDstPtr = Dest;

detail::fill_copy_args(get_impl(), SrcImgDesc,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_HOST);
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_HOST,
UR_EXP_IMAGE_COPY_INPUT_TYPES_IMAGE_TO_MEM);

setType(detail::CGType::CopyImage);
}
Expand All @@ -1676,7 +1685,8 @@ void handler::ext_oneapi_copy(
MDstPtr = Dest;

detail::fill_copy_args(get_impl(), SrcImgDesc,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_HOST, SrcOffset,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_HOST,
UR_EXP_IMAGE_COPY_INPUT_TYPES_IMAGE_TO_MEM, SrcOffset,
{0, 0, 0}, DestOffset, DestExtent, CopyExtent);

setType(detail::CGType::CopyImage);
Expand Down Expand Up @@ -1705,11 +1715,13 @@ void handler::ext_oneapi_copy(
Desc.width * Desc.num_channels * detail::get_channel_size(Desc);

if (ImageCopyFlags == UR_EXP_IMAGE_COPY_FLAG_HOST_TO_DEVICE) {
detail::fill_copy_args(get_impl(), Desc, ImageCopyFlags, HostRowPitch,
DeviceRowPitch);
detail::fill_copy_args(get_impl(), Desc, ImageCopyFlags,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_MEM,
HostRowPitch, DeviceRowPitch);
} else if (ImageCopyFlags == UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_HOST) {
detail::fill_copy_args(get_impl(), Desc, ImageCopyFlags, DeviceRowPitch,
HostRowPitch);
detail::fill_copy_args(get_impl(), Desc, ImageCopyFlags,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_MEM,
DeviceRowPitch, HostRowPitch);
} else {
throw sycl::exception(make_error_code(errc::invalid),
"Copy Error: This copy function only performs host "
Expand Down Expand Up @@ -1746,10 +1758,12 @@ void handler::ext_oneapi_copy(
// Fill the host extent based on the type of copy.
if (ImageCopyFlags == UR_EXP_IMAGE_COPY_FLAG_HOST_TO_DEVICE) {
detail::fill_copy_args(get_impl(), DeviceImgDesc, ImageCopyFlags,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_MEM,
HostRowPitch, DeviceRowPitch, SrcOffset, HostExtent,
DestOffset, {0, 0, 0}, CopyExtent);
} else if (ImageCopyFlags == UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_HOST) {
detail::fill_copy_args(get_impl(), DeviceImgDesc, ImageCopyFlags,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_MEM,
DeviceRowPitch, HostRowPitch, SrcOffset, {0, 0, 0},
DestOffset, HostExtent, CopyExtent);
} else {
Expand All @@ -1774,7 +1788,8 @@ void handler::ext_oneapi_copy(
MDstPtr = reinterpret_cast<void *>(Dest.raw_handle);

detail::fill_copy_args(get_impl(), SrcImgDesc, DestImgDesc,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE);
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE,
UR_EXP_IMAGE_COPY_INPUT_TYPES_IMAGE_TO_IMAGE);

setType(detail::CGType::CopyImage);
}
Expand All @@ -1794,8 +1809,10 @@ void handler::ext_oneapi_copy(
MDstPtr = reinterpret_cast<void *>(Dest.raw_handle);

detail::fill_copy_args(get_impl(), SrcImgDesc, DestImgDesc,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE, SrcOffset,
{0, 0, 0}, DestOffset, {0, 0, 0}, CopyExtent);
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE,
UR_EXP_IMAGE_COPY_INPUT_TYPES_IMAGE_TO_IMAGE,
SrcOffset, {0, 0, 0}, DestOffset, {0, 0, 0},
CopyExtent);

setType(detail::CGType::CopyImage);
}
Expand All @@ -1813,7 +1830,8 @@ void handler::ext_oneapi_copy(
MDstPtr = Dest;

detail::fill_copy_args(get_impl(), SrcImgDesc, DestImgDesc,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE, 0,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE,
UR_EXP_IMAGE_COPY_INPUT_TYPES_IMAGE_TO_MEM, 0,
DestRowPitch);

setType(detail::CGType::CopyImage);
Expand All @@ -1834,7 +1852,8 @@ void handler::ext_oneapi_copy(
MDstPtr = Dest;

detail::fill_copy_args(get_impl(), SrcImgDesc, DestImgDesc,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE, 0,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE,
UR_EXP_IMAGE_COPY_INPUT_TYPES_IMAGE_TO_MEM, 0,
DestRowPitch, SrcOffset, {0, 0, 0}, DestOffset,
{0, 0, 0}, CopyExtent);

Expand All @@ -1854,8 +1873,9 @@ void handler::ext_oneapi_copy(
MDstPtr = reinterpret_cast<void *>(Dest.raw_handle);

detail::fill_copy_args(get_impl(), SrcImgDesc, DestImgDesc,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE, SrcRowPitch,
0);
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_IMAGE,
SrcRowPitch, 0);

setType(detail::CGType::CopyImage);
}
Expand All @@ -1875,9 +1895,10 @@ void handler::ext_oneapi_copy(
MDstPtr = reinterpret_cast<void *>(Dest.raw_handle);

detail::fill_copy_args(get_impl(), SrcImgDesc, DestImgDesc,
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE, SrcRowPitch,
0, SrcOffset, {0, 0, 0}, DestOffset, {0, 0, 0},
CopyExtent);
UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_IMAGE,
SrcRowPitch, 0, SrcOffset, {0, 0, 0}, DestOffset,
{0, 0, 0}, CopyExtent);

setType(detail::CGType::CopyImage);
}
Expand All @@ -1904,6 +1925,7 @@ void handler::ext_oneapi_copy(
if (ImageCopyFlags == UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE ||
ImageCopyFlags == UR_EXP_IMAGE_COPY_FLAG_HOST_TO_HOST) {
detail::fill_copy_args(get_impl(), SrcImgDesc, DestImgDesc, ImageCopyFlags,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_MEM,
SrcRowPitch, DestRowPitch);
} else {
throw sycl::exception(make_error_code(errc::invalid),
Expand Down Expand Up @@ -1933,6 +1955,7 @@ void handler::ext_oneapi_copy(
if (ImageCopyFlags == UR_EXP_IMAGE_COPY_FLAG_DEVICE_TO_DEVICE ||
ImageCopyFlags == UR_EXP_IMAGE_COPY_FLAG_HOST_TO_HOST) {
detail::fill_copy_args(get_impl(), SrcImgDesc, DestImgDesc, ImageCopyFlags,
UR_EXP_IMAGE_COPY_INPUT_TYPES_MEM_TO_MEM,
SrcRowPitch, DestRowPitch, SrcOffset, {0, 0, 0},
DestOffset, {0, 0, 0}, CopyExtent);
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// REQUIRES: aspect-ext_oneapi_bindless_images
// REQUIRES: cuda
// XFAIL: hip
// XFAIL-TRACKER: https://github.com/intel/llvm/issues/19957

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// REQUIRES: aspect-ext_oneapi_bindless_images
// REQUIRES: cuda
// XFAIL: linux && arch-intel_gpu_acm_g10
// XFAIL-TRACKER: https://github.com/intel/llvm/issues/20004
// XFAIL: hip
// XFAIL-TRACKER: https://github.com/intel/llvm/issues/19957

Expand Down
Loading
Loading