Closed desttinghim closed 2 years ago
Thanks for filing! From what I can tell Thinkpad X220 has an Intel 3000 chipset, which does not support Vulkan.
The OpenGL fallback should work, however the gpu/
sample currently has a bug where it's not using it. You can still try it out, though, in the other gpu-dawn/
sample like this:
cd mach/gpu-dawn/
GPU_BACKEND=opengl zig build run-dawn-example
I'd be curious to hear if that works for you!
This is what I get running the above commands. Looks like its still trying to use vulkan though?
Warning: loader_scanned_icd_add: Driver /usr/lib/libvulkan_intel.so supports Vulkan 1.2, but only supports loader interface version 4. Interface version 5 or newer required to support this version of Vulkan (Policy #LDP_DRIVER_7)
Warning: setup_loader_term_phys_devs: Failed to detect any valid GPUs in the current config
Error: vkEnumeratePhysicalDevices
at GatherPhysicalDevices (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/src/dawn/native/vulkan/VulkanInfo.cpp:129)
at Initialize (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/src/dawn/native/vulkan/BackendVk.cpp:244)
at Create (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/src/dawn/native/vulkan/BackendVk.cpp:165)
at operator() (/home/runner/work/mach-gpu-dawn/mach-gpu-dawn/libs/dawn/src/dawn/native/vulkan/BackendVk.cpp:420)
thread 27556 panic: reached unreachable code
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/debug.zig:234:14: 0x476db8 in std.debug.assert (dawn-example)
if (!ok) unreachable; // assertion failure
^
/home/desttinghim/repos/mach/gpu-dawn/src/dawn/sample_utils.zig:92:11: 0x4798cd in sample_utils.setup (dawn-example)
assert(backend_adapter != null);
^
/home/desttinghim/repos/mach/gpu-dawn/src/dawn/hello_triangle.zig:10:41: 0x477f82 in main (dawn-example)
const setup = try sample_utils.setup(allocator);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/start.zig:561:37: 0x486c17 in std.start.callMain (dawn-example)
const result = root.main() catch |err| {
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/start.zig:495:12: 0x47af57 in std.start.callMainWithArgs (dawn-example)
return @call(.{ .modifier = .always_inline }, callMain, .{});
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/start.zig:460:12: 0x47ad02 in std.start.main (dawn-example)
return @call(.{ .modifier = .always_inline }, callMainWithArgs, .{ @intCast(usize, c_argc), c_argv, envp });
^
The following command terminated unexpectedly:
cd /home/desttinghim/repos/mach/gpu-dawn && /home/desttinghim/repos/mach/gpu-dawn/zig-out/bin/dawn-example
error: the following build command failed with exit code 1:
/home/desttinghim/repos/mach/gpu-dawn/zig-cache/o/587977c3bebb295db3c6a1b03824b8cd/build /home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/zig /home/desttinghim/repos/mach/gpu-dawn /home/desttinghim/repos/mach/gpu-dawn/zig-cache /home/desttinghim/.cache/zig run-dawn-example
@desttinghim I can't believe I messed this up, the env var is WGPU_BACKEND
not GPU_BACKEND
when running from the gpu-dawn/
directory, sorry! The correct commands are:
cd mach/gpu-dawn/
WGPU_BACKEND=opengl zig build run-dawn-example
Let me know if that works or not
Different error code now:
downloading https://github.com/hexops/mach-gpu-dawn/releases/download/release-5fe08ee/libdawn_x86_64-linux-gnu_debug.a.gz..
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 674 100 674 0 0 2048 0 --:--:-- --:--:-- --:--:-- 2054
100 25.9M 100 25.9M 0 0 9.8M 0 0:00:02 0:00:02 --:--:-- 12.5M
downloading https://github.com/hexops/mach-gpu-dawn/releases/download/release-5fe08ee/headers.json.gz..
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 654 0 654 0 0 1998 0 --:--:-- --:--:-- --:--:-- 2000
100 45750 100 45750 0 0 73155 0 --:--:-- --:--:-- --:--:-- 73155
error: VersionUnavailable
/home/desttinghim/repos/mach/gpu-dawn/libs/mach-glfw/src/errors.zig:93:5: 0x4863e3 in .glfw.errors.convertError (dawn-example)
return switch (e) {
^
/home/desttinghim/repos/mach/gpu-dawn/libs/mach-glfw/src/errors.zig:127:5: 0x47946b in sample_utils.setup (dawn-example)
return convertError(c.glfwGetError(null));
^
/home/desttinghim/repos/mach/gpu-dawn/libs/mach-glfw/src/Window.zig:396:28: 0x4795e7 in sample_utils.setup (dawn-example)
getError() catch |err| return switch (err) {
^
/home/desttinghim/repos/mach/gpu-dawn/src/dawn/sample_utils.zig:74:20: 0x479691 in sample_utils.setup (dawn-example)
const window = try glfw.Window.create(640, 480, "Dawn window", null, null, hints);
^
/home/desttinghim/repos/mach/gpu-dawn/src/dawn/hello_triangle.zig:10:19: 0x477fb2 in main (dawn-example)
const setup = try sample_utils.setup(allocator);
^
The following command exited with error code 1 (expected 0):
cd /home/desttinghim/repos/mach/gpu-dawn && /home/desttinghim/repos/mach/gpu-dawn/zig-out/bin/dawn-example
error: UnexpectedExitCode
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:2720:19: 0x2bf352 in std.os.readlinkZ (build)
.INVAL => return error.NotLink,
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:2699:9: 0x2c00a2 in std.os.readlink (build)
return readlinkZ(&file_path_c, out_buffer);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:2424:19: 0x2a716b in std.os.mkdiratZ (build)
.EXIST => return error.PathAlreadyExists,
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:2386:9: 0x2a7053 in std.os.mkdirat (build)
return mkdiratZ(dir_fd, &sub_dir_path_c, mode);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/fs.zig:1270:9: 0x2a6f46 in std.fs.Dir.makeDir (build)
try os.mkdirat(self.fd, sub_path, default_new_dir_mode);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:1478:23: 0x28d5ed in std.os.openatZ (build)
.NOENT => return error.FileNotFound,
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/fs.zig:1026:13: 0x27a34c in std.fs.Dir.openFileZ (build)
try os.openatZ(self.fd, sub_path, os_flags, 0);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/fs.zig:960:9: 0x2781a1 in std.fs.Dir.openFile (build)
return self.openFileZ(&path_c, flags);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:2429:19: 0x2a71e2 in std.os.mkdiratZ (build)
.NOENT => return error.FileNotFound,
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:2386:9: 0x2a7053 in std.os.mkdirat (build)
return mkdiratZ(dir_fd, &sub_dir_path_c, mode);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/fs.zig:1270:9: 0x2a6f46 in std.fs.Dir.makeDir (build)
try os.mkdirat(self.fd, sub_path, default_new_dir_mode);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:1478:23: 0x28d5ed in std.os.openatZ (build)
.NOENT => return error.FileNotFound,
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/fs.zig:1026:13: 0x27a34c in std.fs.Dir.openFileZ (build)
try os.openatZ(self.fd, sub_path, os_flags, 0);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/fs.zig:960:9: 0x2781a1 in std.fs.Dir.openFile (build)
return self.openFileZ(&path_c, flags);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:2424:19: 0x2a716b in std.os.mkdiratZ (build)
.EXIST => return error.PathAlreadyExists,
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:2386:9: 0x2a7053 in std.os.mkdirat (build)
return mkdiratZ(dir_fd, &sub_dir_path_c, mode);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/fs.zig:1270:9: 0x2a6f46 in std.fs.Dir.makeDir (build)
try os.mkdirat(self.fd, sub_path, default_new_dir_mode);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/os.zig:1478:23: 0x28d5ed in std.os.openatZ (build)
.NOENT => return error.FileNotFound,
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/fs.zig:1026:13: 0x27a34c in std.fs.Dir.openFileZ (build)
try os.openatZ(self.fd, sub_path, os_flags, 0);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/fs.zig:960:9: 0x2781a1 in std.fs.Dir.openFile (build)
return self.openFileZ(&path_c, flags);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/build/RunStep.zig:250:17: 0x2df445 in std.build.RunStep.make (build)
return error.UnexpectedExitCode;
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/build.zig:3261:9: 0x2a78ce in std.build.Step.make (build)
try self.makeFn(self);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/build.zig:505:9: 0x2a6a1c in std.build.Builder.makeOneStep (build)
try s.make();
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/build.zig:499:17: 0x2a69c8 in std.build.Builder.makeOneStep (build)
return err;
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/build.zig:460:13: 0x29c8f1 in std.build.Builder.make (build)
try self.makeOneStep(s);
^
/home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/lib/std/special/build_runner.zig:209:21: 0x292946 in main (build)
else => return err,
^
error: the following build command failed with exit code 1:
/home/desttinghim/repos/mach/gpu-dawn/zig-cache/o/587977c3bebb295db3c6a1b03824b8cd/build /home/desttinghim/zig/0.10.0-dev.1107+7deadf430/files/zig /home/desttinghim/repos/mach/gpu-dawn /home/desttinghim/repos/mach/gpu-dawn/zig-cache /home/desttinghim/.cache/zig run-dawn-example
OK, that part is complaining that you do not have OpenGL 4.5 I believe. I think you would get this by installing the latest mesa version on your system, but if not unfortunately we'd be out of luck here - device may just be too old.
You could check by looking at the output of glxinfo
on your system (you may need to install a mesa-utils
package)
Alright, I'm pretty sure the video card is just too old at this point. Thanks for trying anyway!
I appreciate you filing the issue regardless!
I tried to run the GPU example on my Thinkpad X220 laptop, but I got this error:
(I'm running Arch Linux with Sway)
I'm guessing my laptop is either unsupported (it is pretty old) or I don't understand how the OpenGL fallback is supposed to work. I'll probably just use my desktop for now.