GlfwCreateWindow не работает на Wayland (Hyprland, NVIDIA): ошибка контекста EGLJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 GlfwCreateWindow не работает на Wayland (Hyprland, NVIDIA): ошибка контекста EGL

Сообщение Anonymous »

Я пытаюсь создать окно GLFW через LWJGL, используя Hyprland (Wayland) в качестве оконного менеджера в Arch Linux. Приложение завершается с ошибкой со следующим сообщением:

Код: Выделить всё

[LWJGL] GLFW_PLATFORM_ERROR error
Description :
EGL: Failed to clear current context:
An EGLDisplay argument does not name a valid EGL display connection

Stacktrace  :
org.lwjgl.glfw.GLFW.nglfwCreateWindow(GLFW.java:2086)
org.lwjgl.glfw.GLFW.glfwCreateWindow(GLFW.java:2251)
Среда
ОС: Arch Linux ( 6.12.9-arch-1)
Композитор: Hyprland (Wayland)
ГП: NVIDIA RTX 3070
Драйвер Версия
: 565.77
Версия LWJGL: 3.3.6
Версия EGL >: 1,5

Воспроизвести

Код: Выделить всё

import org.lwjgl.*;
import org.lwjgl.glfw.*;
import org.lwjgl.opengl.*;
import org.lwjgl.system.*;

import static org.lwjgl.glfw.Callbacks.*;
import static org.lwjgl.glfw.GLFW.*;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.system.MemoryStack.*;
import static org.lwjgl.system.MemoryUtil.*;

public class Game {
public static void main(String[] args) {
GLFWErrorCallback.createPrint(System.err).set();

if (!glfwInit())
throw new IllegalStateException("Unable to init GLFW");

glfwDefaultWindowHints();
glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_API);
glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE);
glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE);

long window = glfwCreateWindow(800, 600, "Test", NULL, NULL);
if (window == NULL)
throw new RuntimeException("glfwCreateWindow failed");

glfwMakeContextCurrent(window);
glfwSwapInterval(1);
glfwShowWindow(window);
}
}
LWJGL
Использован импорт отсюда (стабильная версия 3.3.6 Linux x86, полный)

PS
Я попробовал запустить vkcube, glxgears, Weston и собственный рендерер Vulkan с Winit в Rust - все работало нормально.

Подробнее здесь: https://stackoverflow.com/questions/793 ... text-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»