Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix OpenGL check #782

Closed
ronag opened this issue Feb 9, 2018 · 13 comments
Closed

Fix OpenGL check #782

ronag opened this issue Feb 9, 2018 · 13 comments

Comments

@ronag
Copy link
Member

ronag commented Feb 9, 2018

So we can avoid getting reports of crashes from users with incompatible GPUs or drivers.

@ronag ronag added the type/bug label Feb 9, 2018
@ronag ronag added this to the 2.2.0 milestone Feb 9, 2018
@ronag ronag self-assigned this Feb 9, 2018
This was referenced Feb 10, 2018
@ronag ronag closed this as completed Feb 13, 2018
@jesperstarkar
Copy link
Contributor

The Intel HD630 can't run after you re-added the check. Had problems exporting a full GL report of the system, but here is the overvier:

screen shot 2018-02-16 at 15 01 48
screen shot 2018-02-16 at 15 02 13
screen shot 2018-02-16 at 15 02 20

@ronag
Copy link
Member Author

ronag commented Feb 16, 2018

yea, I'd rather have it not running where it could than having it run where it shouldn't, crashing and getting tons of bug reports.

Fixing this is more about research than programmer knowledge. PR wanted.

@ronag ronag modified the milestones: 2.2.0, 2.3.0 Feb 16, 2018
@mint-dewit
Copy link
Member

The context created by SFML is always in compatibility profile. On linux at least (possibly windows too) the intel drivers will only provide a 3.0 version in compatibility mode.

Should we consider ditching SFML? Are there alternatives at all? My knowledge is not great on this either.

@Julusian
Copy link
Member

I would also like to ditch SFML, for the primary context creation at least. If we can do that, then it will only be CEF that is requiring us to have a running X11 server on linux which puts us one step closer to being able to run it truely headless on linux.

I prototyped this a couple of months ago https://github.com/julusian/casparcg-server/tree/headless-linux It is using EGL, which I think should work on windows (I didnt test it) but likely also needs a proper review by someone who is more familiar with EGL and OpenGL.
I left SFML in place for creating the screen consumer and diag windows as trying to do those without will not be worth the effort in my opinion.

@ronag
Copy link
Member Author

ronag commented Feb 21, 2018

I'm more than happy to merge a PR that replaces SFML context creation in the ogl device for something else (which works on both Linux and Windows).

@Julusian
Copy link
Member

If this isn't resolved by #937, we could check for the required extensions to be available instead of relying on glew's gl4.5 check.
Something like the following, but the list of required extensions filled out fully

if (!GLEW_VERSION_4_5 && !glewIsSupported("GL_ARB_multitexture GL_ARB_direct_state_access GL_ARB_texture_barrier")) {

@crazyscot
Copy link

The build of 27 Mar 11:43 doesn't open for me, claiming that my graphics card doesn't support OpenGL 4.5.
This machine has an Intel HD 530 chipset. The Intel graphics control panel reports OpenGL 4.5.
Presumably this is another instance of the same issue?

@elanvrt
Copy link

elanvrt commented Mar 29, 2018

The latest march 28 Windows build also shows me the openGL error. My GPU is nVidia K2200, which should support openGL 4.5
The 28feb build of this master branch shows the same error, so I assume none of these versions will work.

UPDATE: After upgrading my nVidia driver to 391.33, the openGL error has disappeared.

@Julusian
Copy link
Member

I think that the builds I have added to #966 might solve some issues on devices which should support opengl 4.5. If someone could give them a try it would be appreciated.

@crazyscot
Copy link

Build casparcg-server-d6758db8710e7dd0afec6fd93e8490729c5d7dec-windows opens for me without any complaints about OpenGL. However, connecting to it with a client (2.0 or my own) causes a bunch of exceptions on the console; templates either don't work, or crash the server completely.

It may be a different issue, of course, but this is the console trace from a simple THUMBNAIL LIST:

[2018-04-16 15:20:58.208] [info]    Received message from 172.20.45.26: thumbnail list\r\n
[2018-04-16 15:21:00.225] [error]   Exception: Throw location unknown (consider using BOOST_THROW_EXCEPTION)
[2018-04-16 15:21:00.225] [error]   Dynamic exception type: class boost::exception_detail::clone_impl<struct boost::exception_detail::error_info_injector<class boost::system::system_error> >
[2018-04-16 15:21:00.225] [error]   std::exception::what: connect: No connection could be made because the target machine actively refused it
[2018-04-16 15:21:00.225] [error]
[2018-04-16 15:21:00.225] [error]    0# 0x00007FF70CA07BBE in casparcg
[2018-04-16 15:21:00.225] [error]    1# 0x00007FF70CA075DF in casparcg
[2018-04-16 15:21:00.225] [error]    2# 0x00007FF70CC956C7 in casparcg
[2018-04-16 15:21:00.225] [error]    3# _C_specific_handler in VCRUNTIME140
[2018-04-16 15:21:00.225] [error]    4# _TypeMatch in VCRUNTIME140
[2018-04-16 15:21:00.225] [error]    5# RtlCaptureContext in ntdll
[2018-04-16 15:21:00.225] [error]    6# 0x00007FF70CB0C62B in casparcg
[2018-04-16 15:21:00.225] [error]    7# 0x00007FF70CA4EFA8 in casparcg
[2018-04-16 15:21:00.225] [error]    8# 0x00007FF70CA8CFEE in casparcg
[2018-04-16 15:21:00.225] [error]    9# 0x00007FF70CA8AF80 in casparcg
[2018-04-16 15:21:00.225] [error]   10# 0x00007FF70CA039E9 in casparcg
[2018-04-16 15:21:00.225] [error]   11# iswascii in ucrtbase
[2018-04-16 15:21:00.225] [error]   12# BaseThreadInitThunk in KERNEL32
[2018-04-16 15:21:00.225] [error]   13# RtlUserThreadStart in ntdll
[2018-04-16 15:21:00.225] [error]
[2018-04-16 15:21:00.283] [error]   Failed to execute command:THUMBNAIL LIST
[2018-04-16 15:21:00.283] [info]    Sent message to 172.20.45.26:501 THUMBNAIL LIST FAILED\r\n

@mint-dewit
Copy link
Member

Tested on an xps 15 running windows:

[2018-04-16 06:26:37.464] [info]    Received message from Console: play 1-10 amb\r\n
[2018-04-16 06:26:37.499] [error]   Exception: No diagnostic information available.

[2018-04-16 06:26:37.499] [error]    0# 0x00007FF7B7C37BBE in casparcg
[2018-04-16 06:26:37.499] [error]    1# 0x00007FF7B7C375DF in casparcg
[2018-04-16 06:26:37.499] [error]    2# 0x00007FF7B7EA8739 in casparcg
[2018-04-16 06:26:37.499] [error]    3# _C_specific_handler in VCRUNTIME140
[2018-04-16 06:26:37.499] [error]    4# _TypeMatch in VCRUNTIME140
[2018-04-16 06:26:37.499] [error]    5# RtlCaptureContext in ntdll
[2018-04-16 06:26:37.499] [error]    6# 0x00007FF7B7CC665E in casparcg
[2018-04-16 06:26:37.499] [error]    7# 0x00007FF7B7CC8100 in casparcg
[2018-04-16 06:26:37.499] [error]    8# 0x00007FF7B7C339E9 in casparcg
[2018-04-16 06:26:37.499] [error]    9# iswascii in ucrtbase
[2018-04-16 06:26:37.499] [error]   10# BaseThreadInitThunk in KERNEL32
[2018-04-16 06:26:37.499] [error]   11# RtlUserThreadStart in ntdll
[2018-04-16 06:26:37.499] [error]   
[2018-04-16 06:26:37.569] [error]   Exception: Dynamic exception type: class std::future_error
[2018-04-16 06:26:37.569] [error]   std::exception::what: no state
[2018-04-16 06:26:37.569] [error]   

[2018-04-16 06:26:37.569] [error]    0# 0x00007FF7B7C37BBE in casparcg
[2018-04-16 06:26:37.569] [error]    1# 0x00007FF7B7C375DF in casparcg
[2018-04-16 06:26:37.569] [error]    2# 0x00007FF7B7EA8739 in casparcg
[2018-04-16 06:26:37.569] [error]    3# _C_specific_handler in VCRUNTIME140
[2018-04-16 06:26:37.569] [error]    4# _TypeMatch in VCRUNTIME140
[2018-04-16 06:26:37.569] [error]    5# 0x00007FFE3FF34643
[2018-04-16 06:26:37.569] [error]    6# 0x00007FF7B7CC665E in casparcg
[2018-04-16 06:26:37.569] [error]    7# 0x00007FF7B7CC8100 in casparcg
[2018-04-16 06:26:37.569] [error]    8# 0x00007FF7B7C339E9 in casparcg
[2018-04-16 06:26:37.569] [error]    9# iswascii in ucrtbase
[2018-04-16 06:26:37.569] [error]   10# BaseThreadInitThunk in KERNEL32
[2018-04-16 06:26:37.569] [error]   11# 0x00007FFE3FEFF061

After this it just kept spamming that last error. Without screen consumer:

[2018-04-16 06:28:03.526] [info]    Received message from Console: remove 1 screen\r\n
[2018-04-16 06:28:03.527] [info]    [screen_consumer] Uninitialized.
[2018-04-16 06:28:03.539] [info]    Screen consumer [1|720p5000] Uninitialized.
[2018-04-16 06:28:08.355] [info]    Received message from Console: play 1-10 amb\r\n
[2018-04-16 06:28:08.391] [error]   Exception: No diagnostic information available.

[2018-04-16 06:28:08.391] [error]    0# 0x00007FF7B7C37BBE in casparcg
[2018-04-16 06:28:08.391] [error]    1# 0x00007FF7B7C375DF in casparcg
[2018-04-16 06:28:08.391] [error]    2# 0x00007FF7B7EA8739 in casparcg
[2018-04-16 06:28:08.391] [error]    3# _C_specific_handler in VCRUNTIME140
[2018-04-16 06:28:08.391] [error]    4# _TypeMatch in VCRUNTIME140
[2018-04-16 06:28:08.391] [error]    5# RtlCaptureContext in ntdll
[2018-04-16 06:28:08.391] [error]    6# 0x00007FF7B7CC665E in casparcg
[2018-04-16 06:28:08.391] [error]    7# 0x00007FF7B7CC8100 in casparcg
[2018-04-16 06:28:08.391] [error]    8# 0x00007FF7B7C339E9 in casparcg
[2018-04-16 06:28:08.391] [error]    9# iswascii in ucrtbase
[2018-04-16 06:28:08.391] [error]   10# BaseThreadInitThunk in KERNEL32
[2018-04-16 06:28:08.391] [error]   11# RtlUserThreadStart in ntdll
[2018-04-16 06:28:08.391] [error]   
[2018-04-16 06:28:08.452] [error]   Exception: Dynamic exception type: class std::future_error
[2018-04-16 06:28:08.452] [error]   std::exception::what: no state
[2018-04-16 06:28:08.452] [error]   

[2018-04-16 06:28:08.452] [error]    0# 0x00007FF7B7C37BBE in casparcg
[2018-04-16 06:28:08.452] [error]    1# 0x00007FF7B7C375DF in casparcg
[2018-04-16 06:28:08.452] [error]    2# 0x00007FF7B7EA8739 in casparcg
[2018-04-16 06:28:08.452] [error]    3# _C_specific_handler in VCRUNTIME140
[2018-04-16 06:28:08.452] [error]    4# _TypeMatch in VCRUNTIME140
[2018-04-16 06:28:08.452] [error]    5# RtlCaptureContext in ntdll
[2018-04-16 06:28:08.452] [error]    6# 0x00007FF7B7CC665E in casparcg
[2018-04-16 06:28:08.452] [error]    7# 0x00007FF7B7CC8100 in casparcg
[2018-04-16 06:28:08.452] [error]    8# 0x00007FF7B7C339E9 in casparcg
[2018-04-16 06:28:08.452] [error]    9# iswascii in ucrtbase
[2018-04-16 06:28:08.452] [error]   10# BaseThreadInitThunk in KERNEL32
[2018-04-16 06:28:08.452] [error]   11# RtlUserThreadStart in ntdll
[2018-04-16 06:28:08.452] [error]   
[2018-04-16 06:28:08.426] [error]   Exception: No diagnostic information available.

[2018-04-16 06:28:08.426] [error]    0# 0x00007FF7B7C37BBE in casparcg
[2018-04-16 06:28:08.426] [error]    1# 0x00007FF7B7C375DF in casparcg
[2018-04-16 06:28:08.426] [error]    2# 0x00007FF7B7ED1777 in casparcg
[2018-04-16 06:28:08.426] [error]    3# _C_specific_handler in VCRUNTIME140
[2018-04-16 06:28:08.426] [error]    4# _TypeMatch in VCRUNTIME140
[2018-04-16 06:28:08.426] [error]    5# RtlCaptureContext in ntdll
[2018-04-16 06:28:08.426] [error]    6# 0x00007FF7B7D6F9B4 in casparcg
[2018-04-16 06:28:08.426] [error]    7# 0x00007FF7B7D707F0 in casparcg
[2018-04-16 06:28:08.426] [error]    8# 0x00007FF7B7C339E9 in casparcg
[2018-04-16 06:28:08.426] [error]    9# iswascii in ucrtbase
[2018-04-16 06:28:08.426] [error]   10# BaseThreadInitThunk in KERNEL32
[2018-04-16 06:28:08.426] [error]   11# RtlUserThreadStart in ntdll
[2018-04-16 06:28:08.426] [error]   
[2018-04-16 06:28:08.553] [error]   Exception: Dynamic exception type: class std::future_error
[2018-04-16 06:28:08.553] [error]   std::exception::what: no state
[2018-04-16 06:28:08.553] [error]   

[2018-04-16 06:28:08.553] [error]    0# 0x00007FF7B7C37BBE in casparcg
[2018-04-16 06:28:08.553] [error]    1# 0x00007FF7B7C375DF in casparcg
[2018-04-16 06:28:08.553] [error]    2# 0x00007FF7B7EA8739 in casparcg
[2018-04-16 06:28:08.553] [error]    3# _C_specific_handler in VCRUNTIME140
[2018-04-16 06:28:08.553] [error]    4# _TypeMatch in VCRUNTIME140
[2018-04-16 06:28:08.553] [error]    5# RtlCaptureContext in ntdll
[2018-04-16 06:28:08.553] [error]    6# 0x00007FF7B7CC665E in casparcg
[2018-04-16 06:28:08.553] [error]    7# 0x00007FF7B7CC8100 in casparcg
[2018-04-16 06:28:08.553] [error]    8# 0x00007FF7B7C339E9 in casparcg
[2018-04-16 06:28:08.553] [error]    9# iswascii in ucrtbase
[2018-04-16 06:28:08.553] [error]   10# BaseThreadInitThunk in KERNEL32
[2018-04-16 06:28:08.553] [error]   11# RtlUserThreadStart in ntdll
[2018-04-16 06:28:08.553] [error]   
[2018-04-16 06:28:08.608] [error]   Exception: Dynamic exception type: class std::future_error
[2018-04-16 06:28:08.608] [error]   std::exception::what: no state
[2018-04-16 06:28:08.608] [error]   

[2018-04-16 06:28:08.608] [error]    0# 0x00007FF7B7C37BBE in casparcg
[2018-04-16 06:28:08.608] [error]    1# 0x00007FF7B7C375DF in casparcg
[2018-04-16 06:28:08.608] [error]    2# 0x00007FF7B7EA8739 in casparcg
[2018-04-16 06:28:08.608] [error]    3# _C_specific_handler in VCRUNTIME140
[2018-04-16 06:28:08.608] [error]    4# _TypeMatch in VCRUNTIME140
[2018-04-16 06:28:08.608] [error]    5# RtlCaptureContext in ntdll
[2018-04-16 06:28:08.608] [error]    6# 0x00007FF7B7CC665E in casparcg
[2018-04-16 06:28:08.608] [error]    7# 0x00007FF7B7CC8100 in casparcg
[2018-04-16 06:28:08.608] [error]    8# 0x00007FF7B7C339E9 in casparcg
[2018-04-16 06:28:08.608] [error]    9# iswascii in ucrtbase
[2018-04-16 06:28:08.608] [error]   10# BaseThreadInitThunk in KERNEL32
[2018-04-16 06:28:08.608] [error]   11# RtlUserThreadStart in ntdll
[2018-04-16 06:28:08.608] [error]   

After this windows stopped the execution.

Note that AMB played fine on the nvidia gpu.

@Julusian
Copy link
Member

@baltedewit @crazyscot Thanks. Ill take another look when I have some time

@crazyscot That exception you posted is expected, if you launch scanner.exe that one should go away, but the crashing is not expected

@Julusian
Copy link
Member

Julusian commented May 7, 2018

I have just tested the latest build on Windows 10 with Intel HD530 (i7-6700T) and didnt get any errors in some simple tests, so if anyone is still having issues I would need some help to reproduce and test :)

@ronag ronag closed this as completed May 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants