SuperElastix / elastix

Official elastix repository
http://elastix.dev
Apache License 2.0
474 stars 116 forks source link

OpenCL test error: access qualifier can only be used for pipe and image type #1245

Open N-Dekker opened 3 days ago

N-Dekker commented 3 days ago

OpenCLBufferTest fails on my (rather old) LUMC PC (using CUDA/v11.7) saying:

20/200 Test: OpenCLBufferTest
Command: "G:/X/Bin/elx/bin/Release/itkOpenCLBufferTest.exe"
Directory: G:/X/Bin/elx/Testing
"OpenCLBufferTest" start time: Sep 26 11:08 W. Europe Daylight Time
Output:
----------------------------------------------------------
1 error generated.
G:\X\Src\elx\Common\OpenCL\ITKimprovements\itkOpenCLProgram.cxx(317): itkOpenCL generic error.
Error: in function: itk::OpenCLProgram::Build
Details: OpenCLProgram::build:CL_BUILD_PROGRAM_FAILURE

Caught ITK exception: 
itk::OpenCLCompileError (00000004A7AFF1B0)
Location: "unknown" 
File: G:\X\Src\elx\Common\OpenCL\ITKimprovements\itkOpenCLProgram.cxx
Line: 320
Description: <kernel>:18:34: error: access qualifier can only be used for pipe and image type
__kernel void SetFloat( __global __write_only float *output, float input )
                                 ^
<end of output>

OpenCLKernelToImageBridgeTest has a similar failure:

Description: <kernel>:18:52: error: access qualifier can only be used for pipe and image type
__kernel void SetDirection( float4 input, __global __write_only float *output )
                                                   ^

OpenCLSimpleTest, as well:

Description: <kernel>:18:39: error: access qualifier can only be used for pipe and image type
__kernel void SimpleKernel1( __global __write_only float *output, float input )
                                      ^

And OpenCLVectorTest:

Description: <kernel>:18:34: error: access qualifier can only be used for pipe and image type
__kernel void SetUChar( __global __write_only uchar *output, uchar input )
                                 ^
<kernel>:23:34: error: access qualifier can only be used for pipe and image type
__kernel void SetFloat( __global __write_only float *output, float input )
                                 ^

@dpshamonin Denis, do you possibly have a clue? šŸ¤·