Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vsync modes (vk_vsync) #728

Open
0x4E69676874466F78 opened this issue Jan 11, 2024 · 4 comments
Open

Vsync modes (vk_vsync) #728

0x4E69676874466F78 opened this issue Jan 11, 2024 · 4 comments
Labels
enhancement New feature or request good first issue Good for newcomers

Comments

@0x4E69676874466F78
Copy link
Collaborator

0x4E69676874466F78 commented Jan 11, 2024

Добавить квар для выбора режима вертикальной синхронизации.

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentModeKHR.html
Нас интересуют первые 4.

    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
    VK_PRESENT_MODE_MAILBOX_KHR = 1,
    VK_PRESENT_MODE_FIFO_KHR = 2,
    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,

Нельзя просто так выставить любой режим, нужно проверить какие реально доступны и если указанный режим недоступен игнорировать значение квара (выставлять по умолчанию), можно заодно выдать предупреждение об этом.
Нужно так же в описании квара выводить список поддерживаемых режимов.

Сам режим выставляется здесь:

.presentMode = VK_PRESENT_MODE_FIFO_KHR, // TODO caps, MAILBOX is better
//.presentMode = VK_PRESENT_MODE_MAILBOX_KHR, // TODO caps, MAILBOX is better
//.presentMode = VK_PRESENT_MODE_IMMEDIATE_KHR, // TODO caps, MAILBOX is better

@0x4E69676874466F78 0x4E69676874466F78 added the good first issue Good for newcomers label Jan 11, 2024
@0x4E69676874466F78 0x4E69676874466F78 changed the title Vsync modes (vk_vsync_mode) Vsync modes (vk_vsync_mode, vk_show_vsync_modes) Jan 11, 2024
@0x4E69676874466F78 0x4E69676874466F78 moved this to 🆕 New in HLRT Jan 11, 2024
@0x4E69676874466F78 0x4E69676874466F78 added the enhancement New feature or request label Jan 11, 2024
@w23
Copy link
Owner

w23 commented Jan 12, 2024

vk_vsync_mode может показывать сам доступные режимы, можно спец команду не делать для этого.
Это бы в идеале (как и многие другие настройки рендеринга) вынести в меню настроек видео. Надо разобраться, можно ли, и как это делать.

@0x4E69676874466F78
Copy link
Collaborator Author

0x4E69676874466F78 commented Jan 12, 2024

vk_vsync_mode может показывать сам доступные режимы, можно спец команду не делать для этого.
Надо разобраться, можно ли, и как это делать.

Я об этом кстати думал, но мы тогда немного вытекаем из vk_cvar.c в этом плане, хотя в этом в принципе нет ничего плохого.
Движок поддерживает смену описания на лету. Я так в рамках HDR уже сделал как костыль, который забыл убрать после того как разобрался с clearflags.
Если ты за, то я в HDR ветке у себя уберу лишнюю команду и список будет динамически формировать из обхода сурфейсов.

@w23
Copy link
Owner

w23 commented Jan 13, 2024

vk_cvar.c не очень удачный, можно под него сильно не подстраиваться.

Не знаю, насколько стабильно обновление описания команды. Можно менять его и его, если да. А можно и выводить доступные при неправильном или пустом аргументе/значении, как то сделано для дебажного отображения

@0x4E69676874466F78 0x4E69676874466F78 changed the title Vsync modes (vk_vsync_mode, vk_show_vsync_modes) Vsync modes (vk_vsync_mode) Jan 16, 2024
@0x4E69676874466F78
Copy link
Collaborator Author

Можно сделать по аналогии 8ffea31 но пока этот код ещё не ревьюился, возможно я сделал не совсем правильно.

@0x4E69676874466F78 0x4E69676874466F78 changed the title Vsync modes (vk_vsync_mode) Vsync modes (vk_vsync) Jan 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
Status: 🆕 New
Development

No branches or pull requests

2 participants