gl: make shared OpenGL infrastructure profile-safe - #16
Conversation
0f14f15 to
f09c6b7
Compare
f09c6b7 to
438c680
Compare
438c680 to
9d5aa7b
Compare
9d5aa7b to
17f663a
Compare
17f663a to
5534301
Compare
5534301 to
1898f72
Compare
1898f72 to
00e03cf
Compare
00e03cf to
32b1cf7
Compare
e850c17 to
0503981
Compare
0503981 to
4b9f662
Compare
4b9f662 to
9e20664
Compare
9e20664 to
654a702
Compare
0af09b0 to
96e1679
Compare
eb617ed to
7a2272e
Compare
7a2272e to
4f38785
Compare
777ae7b to
293984a
Compare
b1748c3 to
0f0c8b0
Compare
79e6932 to
626fb23
Compare
626fb23 to
8083b63
Compare
a8f3ebf to
bc0c4c3
Compare
| - name: Build EGL binding test | ||
| run: cmake --build cmake_build_dir --target EGLBindingTest GLSLRuntimeTest --config Release -- -j4 | ||
| run: cmake --build cmake_build_dir --target EGLBindingTest GLSLRuntimeTest OffscreenReadbackTest --config Release -- -j4 | ||
| - name: Run core-profile OpenGL tests | ||
| run: ctest -C Release -R '^(EGLBindingTest|GLSLRuntimeTest)$' --output-on-failure | ||
| run: ctest -C Release -R '^(EGLBindingTest|GLSLRuntimeTest|OffscreenReadbackTest)$' --output-on-failure |
There was a problem hiding this comment.
I'm still unsure why we separate test runs in multiple passes and jobs instead of running all of them at once
There was a problem hiding this comment.
The passes intentionally isolate environments: generic GLFW/core tests run under Xvfb without EGL settings, while EGL-specific contract tests run separately.
| add_executable(OffscreenReadbackTest OffscreenReadbackTest.cpp) | ||
| target_link_libraries(OffscreenReadbackTest PRIVATE | ||
| CoinGLTestSupport CoinGLReadbackTestSupport CoinTestInternals Coin | ||
| ${COIN_TARGET_LINK_LIBRARIES}) | ||
| target_include_directories(OffscreenReadbackTest PRIVATE | ||
| ${PROJECT_SOURCE_DIR}/src | ||
| ${PROJECT_SOURCE_DIR}/include | ||
| ${PROJECT_BINARY_DIR}/include | ||
| ${COIN_TARGET_INCLUDE_DIRECTORIES}) | ||
| add_test(NAME OffscreenReadbackTest COMMAND OffscreenReadbackTest) | ||
| set_tests_properties(OffscreenReadbackTest PROPERTIES | ||
| SKIP_RETURN_CODE 77 LABELS "gl-core") |
There was a problem hiding this comment.
we're starting to have a lot of redundancy here, you can make proper function to add gl tests 2 PRs up the stack
There was a problem hiding this comment.
Fixed in the shared test layer. This now registers the readback test through the coin_add_gl_test() helper.
| run: | | ||
| sudo apt-get -y update | ||
| sudo apt-get -y install freeglut3-dev | ||
| sudo apt-get -y install freeglut3-dev libglfw3-dev |
There was a problem hiding this comment.
technically it's installed automatically by the testsuite, but I prefer to install it on the system like this
There was a problem hiding this comment.
GLFW is now provisioned externally by CI through the dependency script; CMake no longer downloads it.
| #else | ||
| (void)index; | ||
| (void)point; | ||
| (void)normal; | ||
| #endif |
There was a problem hiding this comment.
So if Coin is not build with legacy gl here, it's a noop? Is the class in a broken state temporarily with this PR?
There was a problem hiding this comment.
Good catch. I removed those compile-time bundle changes from this, so the public methods no longer silently become no-ops. LegacyGL implementation isolation remains owned by the later dedicated layer.
|
All feedback should now be addressed. |
Summary
Make Coin's shared OpenGL infrastructure safe to execute on both compatibility and core-profile contexts.
This layer does not remove LegacyGL scene traversal or exclude LegacyGL implementation units; those boundaries are introduced next.
Stack
Layer 5/18, based on PR #22.