Intel® oneAPI DPC++/C++ Compiler
Talk to fellow users of Intel® oneAPI DPC++/C++ Compiler and companion tools like Intel® oneAPI DPC++ Library, Intel® DPC++ Compatibility Tool, and Intel® Distribution for GDB*
744 Discussions

icx compiler - wrong value passed in function argument

GrzegorzW
Employee
226 Views

Hi

We are using dpcpp-2025-online suite and icx compiler to build Khronos OpenCL test suites - https://github.com/KhronosGroup/OpenCL-CTS

In one of the project - https://github.com/KhronosGroup/OpenCL-CTS/tree/main/test_conformance/gl i noticed specific issue which seems to be compiler issue. 

The variable passed as function argument "GLenum target" has incorrect value. 

https://github.com/KhronosGroup/OpenCL-CTS/blob/main/test_conformance/gl/test_image_methods.cpp#L98

Adding #pragma optimize("", off) before function definition or modification to pass this "target" variable by reference (const GLenum &target) solves the issue. 

MSVC compiler has not problem with this code as well.

I am using Visual Studio Code for Windows with setting

  "cmake.toolset": "Intel C++ Compiler 2025"
 

Can somebody looks at this issue ?

 
0 Kudos
3 Replies
Alina_S_Intel
Moderator
139 Views

Hi @GrzegorzW., 

 

Can you please provide steps to reproduce the issue and the observed behavior? 

 

0 Kudos
GrzegorzW
Employee
56 Views

Hi @Alina_S_Intel 

Steps to reproduce: MS windows + Visual studio + dcpp 2025 + Khronos repositories

 

#install visuall studio
C:\install\vs_buildtools.exe --quiet --wait --norestart --nocache `--installPath C:\BuildTools `--add Microsoft.VisualStudio.Workload.VCTools ` --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ` --add Microsoft.VisualStudio.Component.Windows10SDK.19041 `

# install ninja tools ninja tools

#install dcpp 2025
dpcpp-2025-online-install.exe --silent --r yes --a --silent --action=install --eula=accept --intel-sw-improvement-program-consent=decline -p=NEED_VS2022_INTEGRATION=1

mkdir C:\workspace
cd workspace
#clone Khronos repositories
git clone https://github.com/KhronosGroup/OpenCL-ICD-Loader.git
git clone https://github.com/KhronosGroup/OpenCL-Headers.git
git clone https://github.com/KhronosGroup/OpenCL-CTS.git

#prepare GL libs. From attachment unpack freeglut-MSVC-3.0.0-2.mp.zip and glew-2.1.0-win32.zip to extracted-glsh

mkdir -p OpenCL-CTS/test_conformance/gl/GL
mkdir -p OpenCL-CTS/lib/x64
mkdir -p OpenCL-CTS/dll/x64
mkdir -p OpenCL-CTS/lib/x86
mkdir -p OpenCL-CTS/dll/x86

cp extracted-glsh/glew-2.1.0/include/GL/* ./OpenCL-CTS/test_conformance/gl/GL/
cp extracted-glsh/freeglut/include/GL/* ./OpenCL-CTS/test_conformance/gl/GL/

cp extracted-glsh/glew-2.1.0/lib/Release/x64/glew32.lib ./OpenCL-CTS/lib/x64/
cp extracted-glsh/glew-2.1.0/lib/Release/Win32/glew32.lib ./OpenCL-CTS/lib/x86/

cp extracted-glsh/glew-2.1.0/bin/Release/x64/glew32.dll ./OpenCL-CTS/dll/x64/
cp extracted-glsh/glew-2.1.0/bin/Release/Win32/glew32.dll ./OpenCL-CTS/dll/x86/

cp extracted-glsh/freeglut/lib/x64/freeglut.lib ./OpenCL-CTS/lib/x64/
cp extracted-glsh/freeglut/lib/freeglut.lib ./OpenCL-CTS/lib/x86/

cp extracted-glsh/freeglut/bin/x64/freeglut.dll ./OpenCL-CTS/dll/x64/
cp extracted-glsh/freeglut/bin/freeglut.dll ./OpenCL-CTS/dll/x86/

 

cd C:\workspace\OpenCL-ICD-Loader
mkdir build
cd build
cmake -G"Ninja" -DOPENCL_ICD_LOADER_HEADERS_DIR=c:\workspace\OpenCL-Headers -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icx -DCMAKE_BUILD_TYPE=Release ..
ninja
cd C:\workspace\OpenCL-CTS\
mkdir build
cd build
cmake -G Ninja -DCL_INCLUDE_DIR=C:\workspace\OpenCL-Headers -DCL_LIB_DIR=C:\workspace\OpenCL-ICD-Loader\build -DOPENCL_LIBRARIES=OpenCL -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icx -DGL_IS_SUPPORTED=ON -DD3D10_IS_SUPPORTED=ON -DD3D11_IS_SUPPORTED=ON -DARCH=x86_64 -DCMAKE_BUILD_TYPE=Release -DCLConform_GL_LIBRARIES_DIR=lib\x64 ..
ninja

 

cd C:\workspace\OpenCL-CTS\build\test_conformance\gl\bin\RelWithDebInfo

test_gl redirect_image_methods_multisample CL_DEVICE_TYPE_GPU

repro - errors (test never ends, in the loop following messages):

ERROR: Unable to create CL image from GL texture! (CL_INVALID_GL_OBJECT from C:\Repos\_CTS_KHR\OpenCL-CTS\test_conformance\gl\test_image_methods.cpp:178)
Supplied GL texture was base format 0x0000 and internal format 0x0000

correct results are:
redirect_image_methods_multisample...
Autodetected float->half rounding mode to be rtz
- Creating image 10 by 10...
- Creating image 10 by 10...
- Creating image 10 by 10...
- Creating image 10 by 10...
- Creating image 10 by 10...

0 Kudos
Alina_S_Intel
Moderator
54 Views

Thank you. I have received the reproducer! I will look into it and get back to you shortly with an update.


Since this issue has been escalated to our support portal, I will no longer monitor this forum topic.

However, you will continue to receive updates from the support portal via email.


0 Kudos
Reply