Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Вопрос по Vulkan

Вопрос по Vulkan

Страницы: 1 2 3 Следующая »
sanПостоялецwww1 мар. 201818:09#0
Кто нибудь знает, Vulkan уже поддерживает мультиадаптерность и если да, то где можно найти какой нибудь пример?
Я ничего не нашел по этой теме, только упоминание от Хроноса, что он БУДЕТ это поддерживать. Но это было сказано год назад.

Правка: 1 мар. 2018 18:09

/A\Постоялецwww1 мар. 201820:16#1
san
Ничего нового по этому поводу я не слышал, думаю когда появится, мы об этом узнаем, все же важная новость...
MrShoorУчастникwww1 мар. 201820:26#2
> Вопрос по Vulcan
Правильно пишется Vulkan
sanПостоялецwww1 мар. 201821:03#3
MrShoor
> Правильно пишется Vulkan
Пардон, очепятка...
FireFenixПостоялецwww1 мар. 201821:34#4
san
> Я ничего не нашел по этой теме
Изображение

Instance -> Physical Device -> Logical Device
https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Logical_device_and_queues

MrShoorУчастникwww1 мар. 201822:10#5
san
> Пардон, очепятка...
Исправлять я её конечно не буду?
/A\Постоялецwww1 мар. 201822:13#6
FireFenix
> Instance -> Physical Device -> Logical Device
вопрос не об этом вообще
sanПостоялецwww1 мар. 201822:26#7
Multi-adapter support подразумевает не только выбор GPU, но также запуск отдельных тредов на разных устройствах и обмен данных между ними. Это умеет DX12 и я это использую. Но сейчас я думаю о смене платформы, поскольку мне понадобилось считать в double, но DX12 с даблами не дружит (в отличие от OGL). Опять-же OGL не поддерживает мультиадаптерность и рендеринг в разных тредах. Получается Vulkan идеальная платформа для моего случая, но только похоже что multi-GPU там только анонсирована но не реализована.
/A\Постоялецwww1 мар. 201822:53#8
san
OpenCL по каким-то причинам не подходит?
На нем мульти гпу есть и большинство цпу также поддерживаются.
/A\Постоялецwww1 мар. 201823:26#9
VK_KHX_device_group: It allows using a logical device that consists of multiple physical devices.

VK_KHX_device_group_creation: This allows enumerating groups of physical devices and to create a logical device from a subset of those groups. A.k.a. VK_KHX_device_group_creation and VK_KHX_device_group are working on the Vulkan multi-GPU rendering support.


Но у меня в списке расширений нет VK_KHX_device_group, зато есть VK_KHX_device_group_creation
sanПостоялецwww1 мар. 201823:27#10
/A\
> На нем мульти гпу есть и большинство цпу также поддерживаются.
Как мне текстуру, созданную в треде на одном GPU (amd), передать треду который покажет ее на другом GPU (nvidia)? На DX12 это можно, а как это сделать на OGL я не знаю.

Правка: 1 мар. 2018 23:28

/A\Постоялецwww2 мар. 20180:03#11
Нашел объяснение
Does Vulkan support multiple GPUs or multiple GPU acceleration?
There is no multiple GPU support in version 1.0. That was unfortunately a feature Khronos had to cut in order to preserve schedule. It is expected to be near the top of the list for Vulkan 1.1. It is perfectly possible for a Vulkan implementation to expose multiple GPUs. What Vulkan currently can’t do is allow resource sharing between them. So from a point of view of, for example, a Windows system manager, its possible to recognize multiple ways to render to a surface and then use operating system hooks to transfer that to the screen. What Vulkan doesn’t have is the ability to share a texture or a render target between multiple GPUs.


san
> Как мне текстуру, созданную в треде на одном GPU (amd), передать треду который покажет ее на другом GPU (nvidia)?
Так расшарить OpenCL  с OpenGL.
FireFenixПостоялецwww2 мар. 20180:04#12
/A\
> вопрос не об этом вообще
всмысле не об этом? о котлетах шо ле? Изображение
человек говорит, что не нашёл инфы - я линканул на ман инициализации физического устройства.... логика?

>VK_KHX_device_group
>VK_KHX_device_group_creation
эта хрень вроде для SLI/Crossfire для получения sub-девайсов в группе, не?

>Как мне текстуру, созданную в треде на одном GPU (amd), передать треду который покажет ее на другом GPU (nvidia)?
в вулкане при "игрищах" с памятью есть VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX флаг, который позволяет шарить между gpu
сам не юзал, поэтому хз как корректно юзать

P.S. единственное, что норм гуглится это http://www.java-gaming.org/index.php?topic=38144.0 тут портянка на англе как с этим флагом

Правка: 2 мар. 2018 0:07

sanПостоялецwww2 мар. 20182:35#13
/A\
> There is no multiple GPU support in version 1.0.
Понятно... Значит они только планируют добавить эту фичу. Интересно, а когда выйдет эта 1.1, есть слухи на этот счет?

> Так расшарить OpenCL с OpenGL.
Вот с этого места подробнее, плиз. Я с OpenCL не работал, но как я понимаю, это что-то вроде CUDA - программа пишется на CPU, выполняется (частично) на GPU, но к экрану и шейдерам доступа не имеет. И что мне даст добавление к OpenGL кусков на OpenCL, как это может выглядеть?

FireFenix
> эта хрень вроде для SLI/Crossfire для получения sub-девайсов в группе, не?
Насколько я вижу, это именно SLI/Crossfire, т.е. это по сути одно логическое устройство.  Я же говорил о совершенно разных картах, когда одна может быть Nvidia а другая AMD. Потому /А\ и сказал, что это не о том. 
Ссылку, которуя ты прислал, довольно любопытна. Но насколько я понял, речь идет о неком экспериментальном расширении и все же это вариант сявзанных по SLI карт,  или обмен идет через системную память.  Там довольно мутное обьяснение, как "memory1" и "memory 2" могут отражать результат рендеринга на GPU.

Правка: 2 мар. 2018 2:58

Kurono267Постоялецwww2 мар. 20185:55#14
san
Если я правильно понимаю, в openCL и Vulkan будут проблемы с переносом данных между GPU от разных вендоров.
Поддержка нескольких GPU для работы есть у обоих, но перенос между GPU разных вендоров будет через хост(оперативку), и с этим скорее всего не получиться что то сделать.
Страницы: 1 2 3 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр