LINUX.ORG.RU

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

 , , , ,


0

1

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

спс за ответ

★★

Ответ на: комментарий от 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

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

#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 ★★ ()