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
Este commit está contenido en:
Tao Sang
2023-11-13 14:42:59 -05:00
cometido por Tao Sang
padre c4f773db0b
commit 1c442658ca
Se han modificado 2 ficheros con 7 adiciones y 2 borrados
+2 -2
Ver fichero
@@ -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
Ver fichero
@@ -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)) {