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

Windows 10: panic during OpenGL initialization #1

Open
zhangyixing3 opened this issue Oct 8, 2024 · 10 comments
Open

Windows 10: panic during OpenGL initialization #1

zhangyixing3 opened this issue Oct 8, 2024 · 10 comments
Labels
bug Something isn't working

Comments

@zhangyixing3
Copy link

Hi, dear sir.

I am looking forward to trying this tool. However, when I use strangepg, I encounter an error:

## example 1
$ strangepg -l pfr -t 8 03.232.gfa 
[sapp][panic][id:48][line:11280] 
ABORTING because of [panic]
Aborted (core dumped)

## example 2
$ strangepg  00.gfa 
collectgfanodes: done
[sapp][panic][id:48][line:11280] 
ABORTING because of [panic]
Aborted (core dumped)

I installed strangepg using conda.
strangepg version

$ strangepg -v
0.8.6

Linux system info

$ uname -a
Linux mn01 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

I am not familiar with C language. Could you please give me some advice on how to resolve this issue?

Thank you!

@qwx9
Copy link
Owner

qwx9 commented Oct 8, 2024

Hi, could you give a few more details about your setup?

  • Which linux distribution are you using?
  • Is this under WSL on Windows?
  • What kind of CPU and graphics chip does the machine you are running it on have?

The only such issue I know of is trying to run this on Ubuntu under WSL, with the exact same error.
OpenGL initialization fails but the logger doesn't provide more details.
It might have to do with sokol_gfx's minimum supported GL version (IIRC 4.1), or maybe the use of OpenGL itself.
Unfortunately I don't currently have access to a Windows machine to debug this.
Perhaps if it's the same issue it could give us some hints.

@zhangyixing3
Copy link
Author

I'm not on a WSL system and on a small server. I want to use a graphical interface tool to access the graphical interface of the remote server.
linux distribution information

Wed Oct 09 09:08:09 stu_zhangyixing mn01~
$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

CPU information

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                64
On-line CPU(s) list:   0-63
Thread(s) per core:    2
Core(s) per socket:    16
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 85
Model name:            Intel(R) Xeon(R) Gold 5218 CPU @ 2.30GHz
Stepping:              7
CPU MHz:               2300.000
BogoMIPS:              4600.00
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              22528K
NUMA node0 CPU(s):     0-15,32-47
NUMA node1 CPU(s):     16-31,48-63
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 intel_ppin intel_pt ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp_epp pku ospke avx512_vnni md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities

graphics information

$ lspci | grep -i vga
02:00.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200e [Pilot] ServerEngines (SEP1) (rev 42)

@qwx9
Copy link
Owner

qwx9 commented Oct 9, 2024

Thanks, though am I correct in assuming that these are the remote machine's specs and that you are sitting in front of a second machine connected to that remote server, and using something like X11 forwarding? If so, please post the specs of your local machine.
From what I understand, the GPU of the machine above is only a basic card capable of driving a small resolution display for diagnostics only, used in rack servers and similar, and the Xeon does not have an integrated graphics chip either, so I'd be surprised if this is the only machine in the setup.

@zhangyixing3
Copy link
Author

I correct in assuming that these are the remote machine's specs and that you are sitting in front of a second machine connected to that remote server, and using something like X11 forwarding?

Yes, I use tools like Xshell, SFTP, and X11 to access the remote server. This server is rack servers and does not have GPU computing capabilities. I checked both the compute nodes and the login node of this server using lspci | grep -E "VGA|NVIDIA", and the result both were : 02:00.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200e [Pilot] ServerEngines (SEP1) (rev 42). Matrox MGA G200e is the only GPU of the machine.

If so, please post the specs of your local machine.

Win 10
CPU : 11th Gen lntel Core i5-11400 @ 2.60GHz
GPU : intel UHD Graphics 730
ABORTING is likely not related to my local computer.

@qwx9
Copy link
Owner

qwx9 commented Oct 9, 2024

Ah! So you are indeed on a Windows computer, even though you are not using WSL on it? If that is the case, it would seem that strangepg is broken on Windows as a whole. I don't have access to a Windows computer to debug this right now, but I'll get one soon.

@zhangyixing3
Copy link
Author

I ran strangepg on a remote server, but it returned an error In a few seconds. After checking the GPU, We found that it is too poor or outdated, I believe that error with strangepg should not be related to my personal computer (win 10). My computer is just used to connect to the server. I apologize for my poor English; I may have caused you some trouble.

@qwx9
Copy link
Owner

qwx9 commented Oct 9, 2024

No worries, I think I understand. strangepg uses hardware acceleration and requires at least OpenGL 4.1, ideally 4.3, which date back from 2011-2012, so it makes sense that it wouldn't work on the server if it only has the Matrox card. On Windows, the problem is indeed not the machine, but some assumption that isn't met. I'm not sure anyone has really tried to run something built with that particular graphics framework in that way since it's mostly used for rendering in 3D games, there's no reason to do anything like X forwarding there. I'll investigate once I have some time with a Windows machine on hand.
Thanks for testing! I'll update the issue's title.

@qwx9 qwx9 changed the title ABORTING because of [panic] Windows 10: panic during OpenGL initialization Oct 9, 2024
@qwx9 qwx9 added the bug Something isn't working label Oct 9, 2024
@zhangyixing3
Copy link
Author

I look forward to your good news !

@qwx9
Copy link
Owner

qwx9 commented Oct 18, 2024

I got access to two Windows 10 machines to test on, and unfortunately I don't believe this is solvable.

  1. From what I understand, you are using Xshell with X11 forwarding. However this approach requires the remote machine to also support the same features (at least OpenGL 4.1), which is not the case. The fallback would be software rendering, which obviates any advantage of using strangepg, as its rendering performance is due to efficient use of features in newer OpenGL versions. It performs very well even on Intel graphics on laptops from 2014, but it needs those capabilities. Other applications such as Bandage use Qt rather than a light and game-oriented header-only library like sokol_gfx, and I suspect Qt has a lot of code for fallbacks for rendering with older versions of OpenGL and network protocols. I tested X11 forwarding between my laptop and a Windows machine on the same local network and that worked fine, but both machines have graphics cards supporting at least OpenGL 4.3.

  2. I also tested using WSL2 on local Windows machines, which sounded more promising; however, with the same exact setup, it works on one machine but not on the other. We tried everything, but couldn't figure out why this would be the case. You could try WSL2 on your machine, and perhaps that would work. We tested specifically with Ubuntu 22.04 and 24.04, but 24.04 has some known bug which causes a huge drop in rendering performance. I recommend trying Ubuntu 22.04; you'd just need to install make, gcc (or clang), and run the apt command from the README to build strangepg. It might work, but again, I have no idea why it doesn't on some machines.

For Windows, the best solution would be just to port it natively, which wouldn't require that much code, but I currently have other tasks with much higher priority. A port might take me a few days or a few weeks, I don't know. Unfortunately, for the time being WSL2 or X11 forwarding to a different machine are the only possibilities for Windows. I know at least Bandage/BandageNG work reliably both with WSL and with X forwarding, so if it doesn't work with WSL, they remain the only option for now.

@zhangyixing3
Copy link
Author

What a pity. I will try WSL2 on my machine in my spare time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants