Войти
ПрограммированиеФорумГрафика

Vulkan API (вышел!) (722 стр)

Страницы: 1721 722 723 724 725 Следующая »
#10815
(Правка: 15:19) 15:15, 1 сен 2023

VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU это девайс в облаке типа Google Stadia.
Вот ещё: https://docs.nvidia.com/grid/13.0/grid-vgpu-user-guide/index.html

#10816
(Правка: 15:38) 15:32, 2 сен 2023

В спеках GLSL написано

The function subgroupQuadBroadcast() returns the <value> from the invocation within the quad whose <gl_SubgroupInvocationID> % 4 is equal to <id>

https://github.com/KhronosGroup/GLSL/blob/master/extensions/khr/G… _subgroup.txt

Но если вывести gl_SubgroupInvocationID в фрагментном шейдере на NV, то получится 2 столбца:

0  16
|  |
15 31

Получается что %4 не работает. Можно вывести свою формулу получения QuadID, но я не нашел правил как должны быть распределены индексы сабгруппы.

Хочу через subgroupQuadBroadcast получить соседние значения, а через QuadID определить направление.
То есть для QuadID=0 будет +1 к QuadID=1, а для QuadID=1 это будет -1.

upd: все норм, оказывается фильтрация все размыла

#10817
8:13, 10 сен 2023

Заметил, что на Radeon'ах типы памяти с одинаковыми флагами повторяются по два раза:

+ Показать

Кто-нибудь знает, зачем так? Чем они отличаются? Один тип для буферов, другой для текстур?

#10818
13:08, 16 сен 2023

Кто-нибудь интегрировал себе FSR2? Если да, то какие впечатления?

#10819
13:59, 16 сен 2023

Уже fsr 3.0

#10820
14:14, 16 сен 2023

ronniko
> Уже fsr 3.0
Нету на гитхабе - значит не существует. =)

#10821
20:08, 16 сен 2023

MikeNew
> Кто-нибудь интегрировал себе FSR2?
Вам удалось собрать backend под Vulkan? У меня ошибки при компиляции проекта ffx_shader_permutations_vk

+ Показать
#10822
4:54, 17 сен 2023

prowkan
> Вам удалось собрать backend под Vulkan? У меня ошибки при компиляции проекта
> ffx_shader_permutations_vk
Пока еще не пытался, сам хотел узнать как оно.
Но планирую.

#10823
22:24, 21 сен 2023

Хронос написали пост про копирование имеджей на хосте: https://www.khronos.org/blog/copying-images-on-the-host-in-vulkan… id=afeaac8f10

#10824
23:26, 21 сен 2023

HolyDel
От этого расширения мало толку, всё равно чтение текстур упирается в диск.

#10825
(Правка: 19:47) 18:47, 28 сен 2023

Решил воспользоваться шедулером от рейтреса и сделал такую цепочку вызовов.
Но на 3й рекурсии payload зануляется.

raygen -> callable -> callable, callable
                          |         |
                      callable   callable    // - тут payload == 0 
                      callable   callable    //

Размер стэка выставляю сам, потому что по-дефолту 2*callable, а у меня они идут глубже, может это баг в драйвере, потому что никто так не делает?

upd: оказывается забыл поставить dynamic state с stack size, а слои валидации ничего не сказали.

#10826
13:43, 30 сен 2023

Столкнулся с ошибкой слоёв валидации когда пытаюсь рисовать в рендер таргет и потом использовать его как текстуру.

    uint32_t bufferIndex = swapchain->acquireNextImage(presentFinished, nullptr);
    waitFences[bufferIndex]->wait();
    waitFences[bufferIndex]->reset();
    {
        graphicsQueue->submit(rtCmdBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
            presentFinished, // Wait for swapchain
            rtSemaphore, // Signal when render-to-texture finished
            nullptr);
        graphicsQueue->submit(commandBuffers[bufferIndex], VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
            rtSemaphore, // Wait for render-to-texture
            renderFinished, // Signal when command buffer execution finished
            waitFences[bufferIndex]);
        //graphicsQueue->waitIdle();
    }
    graphicsQueue->present(swapchain, bufferIndex, renderFinished);

Здесь сказано

pSignalSemaphores is a pointer to an array of VkSemaphore handles which will be signaled when the command buffers for this batch have completed execution.

pWaitSemaphores is a pointer to an array of VkSemaphore handles upon which to wait before the command buffers for this batch begin execution.

Я так и делаю, у меня есть rtSemaphore который должен задавать синхронизацию между двумя командными буферами. Т. е. следующий комманд буфер будет ждать пока первый не просигналит что завершил операции. Но это не работает, я получаю ошибку

vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] VkCommandBuffer 0x18aa59576b0[] is already in use and is not marked for simultaneous use.

когда начинается второй кадр.

Если добавить вызов vkQueueWaitIdle() в конце то валидация перестаёт ругаться, но я не понимаю почему я должен ждать очередь если фенс уже ожидает. Проблема возникает именно с промежуточным команд буфером rtCmdBuffer, если в кадре используется только один - то ошибки нет.

#10827
(Правка: 14:54) 14:40, 30 сен 2023

v1c
Это не ошибка в слоях валидации. Зачем ты сделал массив из vkFence и vkCommandBuffer?
Если хотел Buffers on the Flight, то все командные буферы и семафоры должны быть так же массивами.
У тебя как раз командный буфер rtCmdBuffer который в 0 кадре пишется на стороне CPU,
в кадре 1 так же пишется на стороне CPU и потенциально читается на GPU при исполнении команд с кадра 0,
все из-за того что у тебя не ожидается предыдущий кадр, так как массив из vkFence

#10828
19:36, 30 сен 2023

IBets
> Зачем ты сделал массив из vkFence и vkCommandBuffer?
vkCmdBeginRenderPass на front и back buffers.

#10829
6:19, 1 окт 2023

v1c
> vkCmdBeginRenderPass на front и back buffers.
Это то понятно. Имелось ввиду почему ртшный коммандбаффер и ртшные примитивы синхронизации в одном экземпляре, а не массивом?

Страницы: 1721 722 723 724 725 Следующая »
ПрограммированиеФорумГрафика