From e4db6ef66a13611606192b1e322e9e03d0247ce3 Mon Sep 17 00:00:00 2001 From: Jason Tang Date: Sat, 9 Oct 2021 11:07:32 -0400 Subject: [PATCH] SWDEV-306697 - Fix OCLGlobalOffset segfaults If we don't create the __amd_rocclr_gwsInit kernel, we still want to create the rest of the image related blit kernels. Change-Id: I8bc4645f9f9116eeecbb8b22e981ac4d520f3121 [ROCm/clr commit: 55a0cf0b0cec8416f556242c6d4a35494b6c6106] --- projects/clr/rocclr/device/pal/palblit.cpp | 4 ++-- projects/clr/rocclr/device/rocm/rocblit.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/projects/clr/rocclr/device/pal/palblit.cpp b/projects/clr/rocclr/device/pal/palblit.cpp index 10733f47a7..f714302fb6 100644 --- a/projects/clr/rocclr/device/pal/palblit.cpp +++ b/projects/clr/rocclr/device/pal/palblit.cpp @@ -722,7 +722,8 @@ bool KernelBlitManager::createProgram(Device& device) { for (uint i = 0; i < BlitTotal; ++i) { const amd::Symbol* symbol = program_->findSymbol(BlitName[i]); if (symbol == NULL) { - break; + // Not all blit kernels are needed in some setup, so continue with the rest + continue; } kernels_[i] = new amd::Kernel(*program_, *symbol, BlitName[i]); if (kernels_[i] == NULL) { @@ -737,7 +738,6 @@ bool KernelBlitManager::createProgram(Device& device) { result = true; } while (!result); - if (dev().settings().xferBufSize_ > 0) { xferBufferSize_ = dev().settings().xferBufSize_; for (uint i = 0; i < MaxXferBuffers; ++i) { diff --git a/projects/clr/rocclr/device/rocm/rocblit.cpp b/projects/clr/rocclr/device/rocm/rocblit.cpp index dab748249d..9af2033448 100644 --- a/projects/clr/rocclr/device/rocm/rocblit.cpp +++ b/projects/clr/rocclr/device/rocm/rocblit.cpp @@ -838,7 +838,8 @@ bool KernelBlitManager::createProgram(Device& device) { for (uint i = 0; i < NumBlitKernels(); ++i) { const amd::Symbol* symbol = program_->findSymbol(BlitName[i]); if (symbol == nullptr) { - break; + // Not all blit kernels are needed in some setup, so continue with the rest + continue; } kernels_[i] = new amd::Kernel(*program_, *symbol, BlitName[i]); if (kernels_[i] == nullptr) {