KhronosGroup / glslang

Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.
Other
2.96k stars 819 forks source link

1.3.236.0: test suite is failing in `glslang-testsuite` unit #3094

Open kloczek opened 1 year ago

kloczek commented 1 year ago

cmake setup

-- Cache values
BUILD_EXTERNAL:BOOL=ON
BUILD_SHARED_LIBS:BOOL=ON
BUILD_TESTING:BOOL=ON
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr
ENABLE_CTEST:BOOL=ON
ENABLE_EXCEPTIONS:BOOL=OFF
ENABLE_GLSLANG_BINARIES:BOOL=ON
ENABLE_GLSLANG_JS:BOOL=OFF
ENABLE_HLSL:BOOL=ON
ENABLE_OPT:BOOL=ON
ENABLE_PCH:BOOL=ON
ENABLE_RTTI:BOOL=OFF
ENABLE_SPVREMAPPER:BOOL=ON
SKIP_GLSLANG_INSTALL:BOOL=OFF
USE_CCACHE:BOOL=OFF
kloczek commented 1 year ago

And test suite is failing glslang-ctest.txt

greg-lunarg commented 1 year ago

Also broken in 1.3.231.0:

https://github.com/KhronosGroup/glslang/issues/3083

kloczek commented 1 year ago

In thos case are build shared libraries. Additionally build procedure is linking unversioned libraries.

jeremy-lunarg commented 1 year ago

Can you show me the runpath of the executable? e.g. objdump -x /home/tkloczko/rpmbuild/BUILD/glslang-sdk-1.3.236.0/x86_64-redhat-linux-gnu/StandAlone/glslangValidator | grep 'R.*PATH'

I'm not seeing any indication of a regression here. The executable in my build directory (<glslang root>/build/StantAlone/glslangValidator) can locate shared object dependencies via its runpath. The runpath is stripped when using installation rules. Consequently, the executable located in <CMAKE_INSTALL_PREFIX>/bin/glslangValidator will not load unless you add the appropriate path to LD_LIBRARY_PATH or install the library dependencies in the appropriate system path. I can't be certain, from studying your log, which executable you are using.

This is unrelated but I am seeing a memory leak related test failure when running the tests against the shared library. I will investigate that.

kloczek commented 1 year ago

Output is empty. Binary has no RPATH.

sl1pkn07 commented 1 year ago

i just add LD_LIBRARY_PATH="$(pwd)/SPIRV:$(pwd)/hlsl:$(pwd)/glslang" before ctest --output-on-failure

This is unrelated but I am seeing a memory leak related test failure when running the tests against the shared library. I will investigate that.

@jeremy-lunarg you mean this one? https://github.com/KhronosGroup/glslang/issues/2128

greetings