LINUX.ORG.RU

DRI3QueryVersion failure — xcb_dri3_query_version_reply возвращает nullptr

 , , , ,


0

1

имеется арч, gtx1650, nvidia-465 driver, xcb
следующий код возвращает nullptr — хотя в логе Xorg dri3 расширение инициализируется.
ошибка не отлавливается — ибо всегда возвращается nullptr в err.

спс за ответ

★★

Последнее исправление: safocl (всего исправлений: 1)

Продолжай наблюдения.

anonymous
()

DRI3 и вообще DRI это технологии стека свободных драйверов. У проприетарных драйверов NVIDIA своя независимая реализация в ядре и своя независимая от Mesa реализация OpenGL в юзерспейсе.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

да — но для использования в vulkan api для драйверов на мою видяху есть расширение, которое позволяет получать dmaFd — для чего и нужно dri3 расширение.

Тем более, что в логе Xorg dri3 инициализируется — значит поддерживается в драйвере?

safocl ★★
() автор топика

имеется арч, gtx1650, nvidia-465 driver, xcb

У проприетарной nvidia нет DRI3. Своя кухня. Сервер скажет, что DRI3 просто нет. Все правильно. Присутствие проприетарного драйвера можно проверить, запросив наличие расширения NV-CONTROL. А у fglrx другое какое-то, забыл. Но DRI3 никакого не будет. У nouveau будет.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

Но DRI3 никакого не будет

в информации обновлений драйверов nvidia бывали слова про dri3 — что они улучшены для работы с ней... что то подобное...

но если все же это правда и нет никакого dri3 — то как мне через dma юзать в вулкане image окна? — прсто копирование с хоста на ГПУ занимает примерно 95% времени ЦПУ, которое тратит вся прога.

safocl ★★
() автор топика
Ответ на: комментарий от Zubok

можно по подробнее? — просто я никогде не делал ничего кроме xcb_EXT_query_version — и все работает остальное.

safocl ★★
() автор топика
Ответ на: комментарий от safocl

почему у меня в логе Xorg — dri3 инициализируется?

Это неправильный вопрос. Правильный вопрос будет: «при каких условиях X.org пишет ту строчку в лог?»

i-rinat ★★★★★
()
Ответ на: комментарий от Zubok

да — спс — теперь все выяснил

#include <cstdlib>
#include <string>
#include <iostream>
#include <xcb/xcb.h>
#include <xcb/xproto.h>
#include <xcb/dri3.h>

int main() {
    auto dri3Check =
    xcb_get_extension_data( xcb_connect( nullptr, nullptr ), &xcb_dri3_id );
    if ( dri3Check )
        std::cout << " *************** OUT  " << dri3Check << "    "
                  << static_cast<int>(dri3Check->present )<< std::endl;

    return EXIT_SUCCESS;
}

выводит
*************** OUT  0x5652aabeff20    0

safocl ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.