Imagination PowerVR SDK Blog

G6230 OpenCL Build Problems

pvrshadereditor

#1

Hello,

We are using a Actions Semi S900 board (http://www.cnx-software.com/2015/04/16/bubblegum-96-96boards-board/) for proprietary computer vision software. While using OpenCL on the platform, I had a few issues:

  1. My kernels compiled OK, but during linking there was an assert with the following message in logcat:
    “tools/intern/llvmufgen/LLVMIntrinsicLower.cpp:153: void {anonymous}::LowerMemCpy(llvm::MemCpyInst*): assertion “isa<ConstantInt>(psSize) && “Non-const memcpy are not implemented”” failed”.

  2. I wan’t sure where the problem was, but guessed that it could be due to my struct being too big. I replaced all struct copies\assignments with copying individual members of the struct.

  3. This fixed the build assert, so now my program builds ok. Build status is success, build log empty, but binary size is 0 and a new error message in the log “E/IMGSRV: :0: Unable to finalise the requested kernel”

Any pointers to what I am doing wrong or what those error mean would be great. The code uses OpenCL 1.2.

Thanks

Shravan


#2

Hi Shravan,

What is the value of the CL_DRIVER_VERSION string on your target device?

Thanks,
Joe


#3

Hi Joe,

thanks for replying. The driver version is “1.4@3443629”

Thanks

Shravan


#4

Hi Shravan,

I haven’t been able to determine the cause of the problem from the information you have provided. I’ll need the callstack to understand why the assert was triggered. Can you share the full logcat output with us? If you need to share files privately, you can attach them to a support ticket: https://pvrsupport.imgtec.com/new-ticket

[blockquote]This fixed the build assert, so now my program builds ok. Build status is success, build log empty, but binary size is 0 and a new error message in the log[/blockquote]
If you aren’t using it already, I would recommend giving PVRShaderEditor a go. The tool gives as-you-type emulated cycle counts and compiler disassembly, which should help you understand how the compiler is interpreting your OpenCL kernel source. Please note that the compiler included in the SDK may be from a different revision of the driver than the on-line compiler on your target device.


#5

Hey Joe,

Thank you for the information and sorry for the delay. I’ve created a new ticket https://pvrsupport.imgtec.com/ticket/659

Thanks

Shravan