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

Failure on fresh Debian 11 #483

Closed
mark-summerfield opened this issue Dec 2, 2022 · 4 comments · Fixed by #1112
Closed

Failure on fresh Debian 11 #483

mark-summerfield opened this issue Dec 2, 2022 · 4 comments · Fixed by #1112

Comments

@mark-summerfield
Copy link

I created a new Debian 11 64-bit VM inside VirtualBox and installed Go 1.19 by unpacking the binary. I used apt to install the dependencies listed in the Install doc. Then I tried to install and build, but it failed:

mark@debianvm:~/opt$ git clone https://github.com/goki/gi
Cloning into 'gi'...
remote: Enumerating objects: 20652, done.
... elided ...
Resolving deltas: 100% (15942/15942), done.
mark@debianvm:~/opt$ cd gi/examples/widgets/
mark@debianvm:~/opt/gi/examples/widgets$ go build -v
go: downloading github.com/goki/ki v1.1.8
... elided ...
github.com/go-gl/glfw/v3.3/glfw
# github.com/go-gl/glfw/v3.3/glfw
In file included from ../../../gows/pkg/mod/github.com/go-gl/glfw/v3.3/glfw@v0.0.0-20220516021902-eb3e265c7661/c_glfw_lin.go:20:
../../../gows/pkg/mod/github.com/go-gl/glfw/v3.3/glfw@v0.0.0-20220516021902-eb3e265c7661/glfw/src/x11_window.c:30: warning: "_GNU_SOURCE" redefined
   30 | #define _GNU_SOURCE
      | 
<command-line>: note: this is the location of the previous definition
github.com/goki/gi/oswin/driver/internal/event
github.com/goki/gi/oswin/driver/vkos
github.com/goki/gi/gi3d
github.com/goki/gi/gi3d/io/obj
github.com/goki/gi/oswin/driver
github.com/goki/gi/svg
github.com/goki/gi/gimain
github.com/goki/gi/examples/widgets
mark@debianvm:~/opt/gi/examples/widgets$ ./widgets
2022/12/02 08:43:20 vulkan warning: missing 1 required device extensions during Config
vulkan: No DRI3 support detected - required for presentation
Note: you can probably enable DRI3 in your Xorg config
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7f9e3cecdf70]

runtime stack:
runtime.throw({0x12af97a?, 0x7f9e3fce5211?})
	/home/mark/opt/go/src/runtime/panic.go:1047 +0x5d fp=0x7ffc5e00f038 sp=0x7ffc5e00f008 pc=0x44aedd
runtime.sigpanic()
	/home/mark/opt/go/src/runtime/signal_unix.go:819 +0x369 fp=0x7ffc5e00f088 sp=0x7ffc5e00f038 pc=0x4614a9

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0xfdcdf0, 0xc000021ca8)
	/home/mark/opt/go/src/runtime/cgocall.go:158 +0x5c fp=0xc000021c80 sp=0xc000021c48 pc=0x417c5c
github.com/goki/vulkan._Cfunc_callVkCreateCommandPool(0x0, 0x27b6d60, 0x0, 0xc000545dd8)
	_cgo_gotypes.go:7932 +0x4c fp=0xc000021ca8 sp=0xc000021c80 pc=0x96ec2c
github.com/goki/vulkan.CreateCommandPool.func1(0x0, 0x0?, 0xc000021d30?, 0x4219e7?)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vulkan@v0.0.0-20220928215615-c67065a9cfc2/vulkan.go:841 +0xb1 fp=0xc000021cf8 sp=0xc000021ca8 pc=0x9a1e31
github.com/goki/vulkan.CreateCommandPool(0x0, 0x9a4f8f?, 0x7f9e3d91ce60?, 0x8?)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vulkan@v0.0.0-20220928215615-c67065a9cfc2/vulkan.go:841 +0x47 fp=0xc000021d40 sp=0xc000021cf8 pc=0x9a1d27
github.com/goki/vgpu/vgpu.(*CmdPool).ConfigResettable(0xc0003ed538, 0xc0003ed520)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vgpu@v1.0.5/vgpu/cmds.go:36 +0x7f fp=0xc000021dc0 sp=0xc000021d40 pc=0x9c1f1f
github.com/goki/vgpu/vgpu.(*System).InitCmd(0x9d15a9?)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vgpu@v1.0.5/vgpu/system.go:60 +0x30 fp=0xc000021df0 sp=0xc000021dc0 pc=0x9d30b0
github.com/goki/vgpu/vgpu.(*System).InitGraphics(0xc0003ed508, 0xc0003dd800, {0x1265fa3?, 0x27b3a10?}, 0xc0003a6dc0?)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vgpu@v1.0.5/vgpu/system.go:41 +0x85 fp=0xc000021e18 sp=0xc000021df0 pc=0x9d2f05
github.com/goki/vgpu/vdraw.(*Drawer).ConfigSurface(0xc0003ed508, 0xc0003a6dc0, 0xc000545d88?)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vgpu@v1.0.5/vdraw/vdraw.go:35 +0x65 fp=0xc000021e58 sp=0xc000021e18 pc=0x9e32c5
github.com/goki/gi/oswin/driver/vkos.(*appImpl).NewWindow.func2()
	/home/mark/opt/gi/oswin/driver/vkos/app.go:248 +0xf2 fp=0xc000021eb0 sp=0xc000021e58 pc=0xf29992
github.com/goki/gi/oswin/driver/vkos.(*appImpl).mainLoop(0x1ebf740)
	/home/mark/opt/gi/oswin/driver/vkos/app.go:158 +0x104 fp=0xc000021f30 sp=0xc000021eb0 pc=0xf28724
github.com/goki/gi/oswin/driver/vkos.Main(0xfdbca0?)
	/home/mark/opt/gi/oswin/driver/vkos/app.go:80 +0x91 fp=0xc000021f48 sp=0xc000021f30 pc=0xf28231
github.com/goki/gi/oswin/driver.driverMain(...)
	/home/mark/opt/gi/oswin/driver/driver_vkos.go:18
github.com/goki/gi/oswin/driver.Main(...)
	/home/mark/opt/gi/oswin/driver/driver.go:27
github.com/goki/gi/gimain.Main(0x131b120?)
	/home/mark/opt/gi/gimain/gimain.go:31 +0x57 fp=0xc000021f68 sp=0xc000021f48 pc=0xfd58d7
main.main()
	/home/mark/opt/gi/examples/widgets/widgets.go:24 +0x25 fp=0xc000021f80 sp=0xc000021f68 pc=0xfd5ac5
runtime.main()
	/home/mark/opt/go/src/runtime/proc.go:250 +0x212 fp=0xc000021fe0 sp=0xc000021f80 pc=0x44d732
runtime.goexit()
	/home/mark/opt/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000021fe8 sp=0xc000021fe0 pc=0x47c081

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/home/mark/opt/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005efb0 sp=0xc00005ef90 pc=0x44daf6
runtime.goparkunlock(...)
	/home/mark/opt/go/src/runtime/proc.go:369
runtime.forcegchelper()
	/home/mark/opt/go/src/runtime/proc.go:302 +0xad fp=0xc00005efe0 sp=0xc00005efb0 pc=0x44d98d
runtime.goexit()
	/home/mark/opt/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005efe8 sp=0xc00005efe0 pc=0x47c081
created by runtime.init.6
	/home/mark/opt/go/src/runtime/proc.go:290 +0x25

goroutine 3 [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
	/home/mark/opt/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005f790 sp=0xc00005f770 pc=0x44daf6
runtime.goparkunlock(...)
	/home/mark/opt/go/src/runtime/proc.go:369
runtime.bgsweep(0x0?)
	/home/mark/opt/go/src/runtime/mgcsweep.go:297 +0xd7 fp=0xc00005f7c8 sp=0xc00005f790 pc=0x4390d7
runtime.gcenable.func1()
	/home/mark/opt/go/src/runtime/mgc.go:178 +0x26 fp=0xc00005f7e0 sp=0xc00005f7c8 pc=0x42dd46
runtime.goexit()
	/home/mark/opt/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005f7e8 sp=0xc00005f7e0 pc=0x47c081
created by runtime.gcenable
	/home/mark/opt/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [runnable]:
runtime.gopark(0xc00008c000?, 0xdbab26de84?, 0x0?, 0x0?, 0x131b4c0?)
	/home/mark/opt/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005ff30 sp=0xc00005ff10 pc=0x44daf6
runtime.goparkunlock(...)
	/home/mark/opt/go/src/runtime/proc.go:369
runtime.(*scavengerState).sleep(0x237cb20, 0x410655d000000000)
	/home/mark/opt/go/src/runtime/mgcscavenge.go:468 +0x125 fp=0xc00005ffa0 sp=0xc00005ff30 pc=0x437345
runtime.bgscavenge(0x0?)
	/home/mark/opt/go/src/runtime/mgcscavenge.go:626 +0x7f fp=0xc00005ffc8 sp=0xc00005ffa0 pc=0x43773f
runtime.gcenable.func2()
	/home/mark/opt/go/src/runtime/mgc.go:179 +0x26 fp=0xc00005ffe0 sp=0xc00005ffc8 pc=0x42dce6
runtime.goexit()
	/home/mark/opt/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005ffe8 sp=0xc00005ffe0 pc=0x47c081
created by runtime.gcenable
	/home/mark/opt/go/src/runtime/mgc.go:179 +0xaa

goroutine 5 [finalizer wait]:
runtime.gopark(0x0?, 0xc0002094b0?, 0x30?, 0x54?, 0x1000000010?)
	/home/mark/opt/go/src/runtime/proc.go:363 +0xd6 fp=0xc00005e628 sp=0xc00005e608 pc=0x44daf6
runtime.goparkunlock(...)
	/home/mark/opt/go/src/runtime/proc.go:369
runtime.runfinq()
	/home/mark/opt/go/src/runtime/mfinal.go:180 +0x10f fp=0xc00005e7e0 sp=0xc00005e628 pc=0x42ce4f
runtime.goexit()
	/home/mark/opt/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00005e7e8 sp=0xc00005e7e0 pc=0x47c081
created by runtime.createfing
	/home/mark/opt/go/src/runtime/mfinal.go:157 +0x45

goroutine 6 [GC worker (idle)]:
runtime.gopark(0xdb6f883d66?, 0x0?, 0x0?, 0x0?, 0x0?)
	/home/mark/opt/go/src/runtime/proc.go:363 +0xd6 fp=0xc000060750 sp=0xc000060730 pc=0x44daf6
runtime.gcBgMarkWorker()
	/home/mark/opt/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000607e0 sp=0xc000060750 pc=0x42fe91
runtime.goexit()
	/home/mark/opt/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000607e8 sp=0xc0000607e0 pc=0x47c081
created by runtime.gcBgMarkStartWorkers
	/home/mark/opt/go/src/runtime/mgc.go:1159 +0x25

goroutine 7 [runnable]:
runtime.gopark(0xf1e565?, 0xc00004c000?, 0x5c?, 0x7c?, 0xc0006579d8?)
	/home/mark/opt/go/src/runtime/proc.go:363 +0xd6 fp=0xc0006579a8 sp=0xc000657988 pc=0x44daf6
runtime.chansend(0xc00003c6c0, 0xc000657a78, 0x1, 0xc000555488?)
	/home/mark/opt/go/src/runtime/chan.go:259 +0x42c fp=0xc000657a30 sp=0xc0006579a8 pc=0x419e4c
runtime.chansend1(0xc000657a88?, 0x0?)
	/home/mark/opt/go/src/runtime/chan.go:145 +0x1d fp=0xc000657a60 sp=0xc000657a30 pc=0x4199fd
github.com/goki/gi/oswin/driver/vkos.(*appImpl).RunOnMain(0x1ebf740, 0xc000555488)
	/home/mark/opt/gi/oswin/driver/vkos/app.go:95 +0x6c fp=0xc000657a98 sp=0xc000657a60 pc=0xf282cc
github.com/goki/gi/oswin/driver/vkos.(*appImpl).NewWindow(0x1ebf740, 0xc0004a0540?)
	/home/mark/opt/gi/oswin/driver/vkos/app.go:241 +0x3a8 fp=0xc000657b38 sp=0xc000657a98 pc=0xf29148
github.com/goki/gi/gi.NewWindow({0x127cb24, 0x11}, {0x127a68d, 0x11}, 0xc00006fbe8?)
	/home/mark/opt/gi/gi/window.go:345 +0x157 fp=0xc000657ba0 sp=0xc000657b38 pc=0xc2ccf7
github.com/goki/gi/gi.NewMainWindow({0x127cb24, 0x11}, {0x127a68d, 0x11}, 0x400, 0x300)
	/home/mark/opt/gi/gi/window.go:393 +0x145 fp=0xc000657bf8 sp=0xc000657ba0 pc=0xc2d165
main.mainrun()
	/home/mark/opt/gi/examples/widgets/widgets.go:49 +0xf4 fp=0xc000657fa0 sp=0xc000657bf8 pc=0xfd6cb4
main.main.func1()
	/home/mark/opt/gi/examples/widgets/widgets.go:25 +0x17 fp=0xc000657fb0 sp=0xc000657fa0 pc=0xfd5a77
github.com/goki/gi/gimain.Main.func1({0x0?, 0x0?})
	/home/mark/opt/gi/gimain/gimain.go:32 +0x1b fp=0xc000657fc0 sp=0xc000657fb0 pc=0xfd591b
github.com/goki/gi/oswin/driver/vkos.Main.func1()
	/home/mark/opt/gi/oswin/driver/vkos/app.go:77 +0x2e fp=0xc000657fe0 sp=0xc000657fc0 pc=0xf2816e
runtime.goexit()
	/home/mark/opt/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000657fe8 sp=0xc000657fe0 pc=0x47c081
created by github.com/goki/gi/oswin/driver/vkos.Main
	/home/mark/opt/gi/oswin/driver/vkos
@rcoreilly
Copy link
Member

Yep it doesn't look like vulkan is working inside the virtualbox:

mark@debianvm:~/opt/gi/examples/widgets$ ./widgets
2022/12/02 08:43:20 vulkan warning: missing 1 required device extensions during Config
vulkan: No DRI3 support detected - required for presentation
Note: you can probably enable DRI3 in your Xorg config
fatal error: unexpected signal during runtime execution

I'm not up-to-date on what it might take to get that working. Also, I'm going to add a better algorithm for selecting the best vulkan device, and an ENV variable to specifically select one, so that might fix this situation.

@mark-summerfield
Copy link
Author

I tried again this time with another fresh install, inside a VirtualBox (itself running on Debian) and got a different error message:

mark@debianvm:~/opt/gi/examples/widgets$ ./widgets
2023/03/13 09:18:52 vgpu: warning: missing 1 required device extensions during Config
panic: vulkan error: vulkan error: extension not present (-7) on /home/mark/opt/gows/pkg/mod/github.com/goki/vgpu@v1.0.22/vgpu/errors.go:23 (0x80807e)
	NewError: pc, _, _, ok := runtime.Caller(0)


goroutine 1 [running, locked to thread]:
github.com/goki/vgpu/vgpu.IfPanic(...)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vgpu@v1.0.22/vgpu/errors.go:40
github.com/goki/vgpu/vgpu.(*Device).MakeDevice(0xc000134168, 0xc0002ea400)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vgpu@v1.0.22/vgpu/device.go:94 +0x2f4
github.com/goki/vgpu/vgpu.(*Surface).Init(0xc000134160, 0xc0002ea400, 0x112ce00?)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vgpu@v1.0.22/vgpu/surface.go:89 +0x15f
github.com/goki/vgpu/vgpu.NewSurface(0x346c360?, 0x112ce00?)
	/home/mark/opt/gows/pkg/mod/github.com/goki/vgpu@v1.0.22/vgpu/surface.go:39 +0x48
github.com/goki/gi/oswin/driver/vkos.(*appImpl).NewWindow.func2()
	/home/mark/opt/gi/oswin/driver/vkos/app.go:247 +0xab
github.com/goki/gi/oswin/driver/vkos.(*appImpl).mainLoop(0x2dfeb00)
	/home/mark/opt/gi/oswin/driver/vkos/app.go:159 +0x104
github.com/goki/gi/oswin/driver/vkos.Main(0x106cbc0?)
	/home/mark/opt/gi/oswin/driver/vkos/app.go:81 +0x91
github.com/goki/gi/oswin/driver.driverMain(...)
	/home/mark/opt/gi/oswin/driver/driver_vkos.go:18
github.com/goki/gi/oswin/driver.Main(...)
	/home/mark/opt/gi/oswin/driver/driver.go:27
github.com/goki/gi/gimain.Main(0x2302550)
	/home/mark/opt/gi/gimain/gimain.go:31 +0x57
main.main()
	/home/mark/opt/gi/examples/widgets/widgets.go:24 +0x25

@rcoreilly
Copy link
Member

yeah in both cases it seems that the virtual display doesn't support vulkan:

2022/12/02 08:43:20 vulkan warning: missing 1 required device extensions during Config
vulkan: No DRI3 support detected - required for presentation
Note: you can probably enable DRI3 in your Xorg config
fatal error: unexpected signal during runtime execution

I'm not sure what is required to get that working, but please post updates here if you do -- should be some info avail out there. I do think that it isn't supported over VNC / remote desktop setups.

@rcoreilly
Copy link
Member

will follow up on this in #682

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants