SWDEV-432180 - Support hipArraySurfaceLoadStore

Make hipExternalMemoryGetMappedMipmappedArray() accept
hipArraySurfaceLoadStore.
Make hipCreateSurfaceObject() check hipArraySurfaceLoadStore
flag. If flag is hipArrayDefault, hipCreateSurfaceObject() will
also pass to prevent failure of catch2/swissknife tests.

Change-Id: Ifb7db2db14e0c2208a9661cfa33887ec61ab26a5


[ROCm/clr commit: 1c442658ca]
Tento commit je obsažen v:
Tao Sang
2023-11-13 14:42:59 -05:00
odevzdal Tao Sang
rodič 8f679127a3
revize 8f417d910b
2 změnil soubory, kde provedl 7 přidání a 2 odebrání
+2 -2
Zobrazit soubor
@@ -4265,6 +4265,7 @@ hipError_t ihipMipmappedArrayGetLevel(hipArray_t* level_array_pptr,
(*level_array_pptr)->NumChannels = hip::getNumChannels((*level_array_pptr)->desc);
(*level_array_pptr)->isDrv = 0;
(*level_array_pptr)->textureType = 0;
(*level_array_pptr)->flags = mipmapped_array_ptr->flags;
amd::ScopedLock lock(hip::hipArraySetLock);
hip::hipArraySet.insert(*level_array_pptr);
@@ -4338,8 +4339,7 @@ hipError_t hipExternalMemoryGetMappedMipmappedArray(
hipMipmappedArray_t* mipmap, hipExternalMemory_t extMem,
const hipExternalMemoryMipmappedArrayDesc* mipmapDesc) {
HIP_INIT_API(hipExternalMemoryGetMappedMipmappedArray, mipmap, extMem, mipmapDesc);
if (mipmap == nullptr || extMem == nullptr || mipmapDesc == nullptr ||
mipmapDesc->flags != hipArrayDefault) {
if (mipmap == nullptr || extMem == nullptr || mipmapDesc == nullptr) {
HIP_RETURN(hipErrorInvalidValue);
}
CHECK_STREAM_CAPTURE_SUPPORTED();
+5
Zobrazit soubor
@@ -60,6 +60,11 @@ hipError_t ihipCreateSurfaceObject(hipSurfaceObject_t* pSurfObject,
return hipErrorInvalidValue;
}
if (pResDesc->res.array.array->flags != hipArrayDefault &&
(pResDesc->res.array.array->flags & hipArraySurfaceLoadStore) == 0) {
return hipErrorInvalidValue;
}
amd::Image* image = nullptr;
cl_mem memObj = reinterpret_cast<cl_mem>(pResDesc->res.array.array->data);
if (!is_valid(memObj)) {