Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

ну, значит не работает что-то... изучать лог, что ещё посоветовать.

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Chainik wrote:

ну, значит не работает что-то... изучать лог, что ещё посоветовать.

как то так

18:07:41.765 [i]: Playback [6464d471]: switching to profile 'Алгоритм RIFE'
18:07:41.766 [i]: Playback [6464d471]: playing at 50 [25 *2/1] 
18:07:55.359 [E]: Playback [6464d471]: VS - Script evaluation failed:
18:07:55.359 [E]: Playback [6464d471]: VS - Python exception: Ran out of input
18:07:55.359 [E]: Playback [6464d471]: VS - Traceback (most recent call last):
18:07:55.359 [E]: Playback [6464d471]: VS - File 'src\cython\vapoursynth.pyx', line 2244, in vapoursynth.vpy_evaluateScript
18:07:55.359 [E]: Playback [6464d471]: VS - File 'src\cython\vapoursynth.pyx', line 2245, in vapoursynth.vpy_evaluateScript
18:07:55.359 [E]: Playback [6464d471]: VS - File 'C:\Users\Metal\AppData\Roaming\SVP4\scripts\6464d471.py', line 70, in <module>
18:07:55.359 [E]: Playback [6464d471]: VS - smooth = interpolate(clip)
18:07:55.359 [E]: Playback [6464d471]: VS - File 'C:\Users\Metal\AppData\Roaming\SVP4\scripts\6464d471.py', line 51, in interpolate
18:07:55.359 [E]: Playback [6464d471]: VS - smooth = RIFE(input_m,model_ver=3.8,fp16=not rife_precision,scale=1.0 if rife_threads<=2 else 0.5,device_index=rife_gpu)
18:07:55.359 [E]: Playback [6464d471]: VS - File 'C:\Program Files (x86)\SVP 4\mpv64\lib\site-packages\vsrife\__init__.py', line 77, in RIFE
18:07:55.360 [E]: Playback [6464d471]: VS - model.load_model(os.path.join(os.path.dirname(__file__), model_dir), -1)
18:07:55.360 [E]: Playback [6464d471]: VS - File 'C:\Program Files (x86)\SVP 4\mpv64\lib\site-packages\vsrife\model38\RIFE_HDv3.py', line 40, in load_model
18:07:55.360 [E]: Playback [6464d471]: VS - self.flownet.load_state_dict(convert(torch.load('{}/flownet.pkl'.format(path))), False)
18:07:55.360 [E]: Playback [6464d471]: VS - File 'C:\Program Files (x86)\SVP 4\mpv64\lib\site-packages\torch\serialization.py', line 608, in load
18:07:55.360 [E]: Playback [6464d471]: VS - return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
18:07:55.360 [E]: Playback [6464d471]: VS - File 'C:\Program Files (x86)\SVP 4\mpv64\lib\site-packages\torch\serialization.py', line 777, in _legacy_load
18:07:55.360 [E]: Playback [6464d471]: VS - magic_number = pickle_module.load(f, **pickle_load_args)
18:07:55.360 [E]: Playback [6464d471]: VS - EOFError: Ran out of input
18:07:55.360 [E]: Playback [6464d471]: VS - could not init VS

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

ясно вижу - что-то не работает big_smile

может не докачалось чего - место на диске кончилось?

29 (edited by Nurk 29-09-2021 20:39:55)

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Chainik wrote:

ясно вижу - что-то не работает big_smile

может не докачалось чего - место на диске кончилось?

попробую перекачать, места на диске предостаточно
upd: на всё пишет Requirement already satisfied, не знаю, проверяется ли кеш, но на вид всё нормально скачалось

30

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Возможно, теперь в SVP можно использовать больше алгоритмов, а не только RIFE: https://www.svp-team.com/forum/viewtopi … 553#p79553

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Как качество интерполяции RIFE в сравнении с тем же Dain, лучше не стало?

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Cryptor wrote:

Как качество интерполяции RIFE в сравнении с тем же Dain, лучше не стало?

У rife их и так минимальное число, при просмотре не бросаются в глаза. dain настолько медленный, что для практического использования не годится

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

> лучше не стало?

там, скорее, только хуже делают, чтоб немного скорости выиграть
про "модель 3.8" отзывы как раз такие, что качество заметно хуже

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

dlr5668 wrote:
Cryptor wrote:

Как качество интерполяции RIFE в сравнении с тем же Dain, лучше не стало?

У rife их и так минимальное число, при просмотре не бросаются в глаза. dain настолько медленный, что для практического использования не годится

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

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Я все кодирую на 3.5 райфе и артефакты бросаются в глаза только на заборах. Не идеально, но зато быстро

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

С помощью RIFE только х2? Если нет,то как до 60 кадров поднять?)

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

CTylL wrote:

С помощью RIFE только х2? Если нет,то как до 60 кадров поднять?)

пока никак. ставлю на телеке 100 гц и смотрю 24 ускоренный в 4 раза +5% добить до 100 (mpv умеет)

38 (edited by Zveroboy 14-01-2023 21:03:35)

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Качество кодирование при помощи RIFE зависит от видеокарты?  Например если поменять 1080ti на 3070.
С версии 4.4 качество хорошо подтянули.

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

> Качество кодирование при помощи RIFE зависит от видеокарты?

вроде нет

40 (edited by dlr5668 15-01-2023 13:03:25)

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Zveroboy wrote:

Качество кодирование при помощи RIFE зависит от видеокарты?  Например если поменять 1080ti на 3070.
С версии 4.4 качество хорошо подтянули.

Стоит поменять потому что 3070 тянет в риалтайме 2к х2. Может на 4070 летом ? Там еще лучше 4к х2

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Можно обновить SVP, там много вкусного big_smile
На моем ноуте с 2060 теперь 1080 x2 можно смотреть.

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

4.6 версии нету в настройках. 1080ti 11 гигов памяти

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Потестил, да конечно небо и земля, в экшн сценах теперь все без артефактов. На 3060ti  1080p x3 идет стабильно при 65-90% загрузке карты, но не больше. Из минусов - не заводится с другими плеерами так просто, смотрю mpv.

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

> не заводится с другими плеерами так просто

всё просто, один клик в меню, две галочки в плеере

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Добрый день. Подскажите, пожалуйста, на Mac не появляется профиль RIFE AI engine.
Выполнил команду:

/usr/local/bin/brew install vulkan-loader molten-vk

все установилось. Перезапустил SVP, но профиля нового не вижу. Да и не совсем понятно, Как BREW может добавить профиль?
Версия SVP 4 Mac [4.6.0.220]...

Большое спасибо!

14:26:13.721 [i]: Main: starting up SVP 4 Mac [4.6.0.220]... 
14:26:13.722 [i]: Main: args: none
14:26:13.722 [i]: Main: working dir is /Applications/SVP 4 Mac.app/Contents/Resources/
14:26:13.723 [i]: Main: data dir set to /Users/anton/Library/Application Support/SVP4/
14:26:13.727 [i]: Settings: loading main.cfg OK
14:26:13.727 [i]: Settings: loading ui.cfg OK
14:26:13.728 [i]: Settings: loading frc.cfg OK
14:26:13.728 [i]: Settings: loading profiles.cfg OK
14:26:13.732 [i]: Settings: loading custom.cfg OK
14:26:13.733 [i]: Settings: loading lights.cfg OK
14:26:13.733 [i]: Main: using Qt 5.12.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by Clang 10.0.0 (clang-1000.11.45.5) (Apple))
14:26:13.733 [i]: Main: device scale is 2, user defined scale is 0
14:26:13.734 [i]: Main: system locale is [ru]
14:26:13.734 [i]: Main: preferred language is [ru-ru]
14:26:13.737 [i]: Main: setting language file to ru.qm...
14:26:13.739 [i]: Main: collecting system information...
14:26:13.740 [i]: Main: module 'plugins/libsvpflow1.dylib': 4.5.0.205
14:26:13.741 [i]: Main: module 'plugins/libsvpflow2.dylib': 4.5.0.214
14:26:13.759 [i]: Main: VLC filter (64 bit): 1.0.0.192
14:26:13.760 [i]: macOS 10.16.0 Big Sur (Intel)
14:26:13.762 [i]: CPU: Intel Core i9-9900K [base frequency 3433 MHz, 16 threads]
14:26:13.763 [i]: Video: reading OpenCL info...
14:26:13.772 [i]: Video: 1 GPU OpenCL device(s) on Apple [OpenCL 1.2 (Nov 4 2022 20:34:07)] (Apple)
14:26:13.772 [i]: Video 1: AMD Radeon RX Vega 64 Compute Engine (AMD, ver.1.2 (Dec 1 2022 21:19:47)) [gpuID=11]: OK
14:26:13.773 [i]: Video: reading Vulkan info...
14:26:14.131 [i]: Vulkan 0: AMD Radeon RX Vega 64 
14:26:14.131 [i]: Memory:  32768  MB total,  1732 MB free
14:26:14.132 [i]: System: finding network settings...
14:26:14.218 [i]: Screens: updating information, 3 screen(s) found
14:26:14.219 [i]: Screens: screen 0 (LG Ultra HD) - 5120x2880 @60.000 Hz, x2.0 [216 DPI]
14:26:14.219 [i]: Screens: screen 1 (LG Ultra HD) - 5120x2880 @60.000 Hz, x2.0 [216 DPI]
14:26:14.219 [i]: Screens: screen 2 (SMS27A850) - 1440x2560 @60.000 Hz, x1.0 [119 DPI]
14:26:14.219 [i]: Screens: primary screen is 0
14:26:14.263 [i]: Main: preparing video profiles...
14:26:15.130 [i]: Main: preparing performance graphs...
14:26:15.233 [i]: Main: preparing mpv...
14:26:15.450 [i]: Main: preparing remote control...
14:26:15.452 [i]: RemoteControl: started
14:26:15.452 [i]: Main: preparing main menu...
14:26:15.813 [i]: Main: loading extensions...
14:26:15.818 [i]: Extensions: found svpcast 1.1.0.208 ...
14:26:15.820 [i]: Extensions: found svpcode 1.1.0.210 ...
14:26:15.821 [i]: Settings: loading code.cfg OK
14:26:15.850 [i]: Extensions: found svplight 2.0.0.190 ...
14:26:15.889 [i]: Extensions: found svptube 2.1.0.221 ...
14:26:15.904 [i]: Main: initialization completed in 2165 ms
14:26:16.022 [i]: Updates: checking now...
14:26:18.020 [i]: Performance: quick estimation = 947 (previous value was 940)

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

> Как BREW может добавить профиль?

brew никак, просто после установки начинает работать "Vulkan info", ну и при налчиии Vulkan-девайса должен появиться профиль
но в вашем случае не сработало, потому что OpenCL и Vulkan возвращают разные названия
даже не знаю как это без апдейта обойти hmm

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

AGluk
попробуйте вот это: https://www.svp-team.com/files/svp4-mac.4.6.246.dmg

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

попробуйте вот это: https://www.svp-team.com/files/svp4-mac.4.6.246.dmg

Большое спасибо, Chainik!
Алгоритм RIFE появился в Контрольной панели!
К сожалению, появились новые ошибки:

09:52:49.045 [i]: Main: starting up SVP 4 Mac [4.6.0.246]... 
09:52:49.046 [i]: Main: args: none
09:52:49.046 [i]: Main: working dir is /Applications/SVP 4 Mac.app/Contents/Resources/
09:52:49.047 [i]: Main: data dir set to /Users/anton/Library/Application Support/SVP4/
09:52:49.047 [i]: Settings: loading main.cfg OK
09:52:49.047 [i]: Settings: loading ui.cfg OK
09:52:49.048 [i]: Settings: loading frc.cfg OK
09:52:49.048 [i]: Settings: loading profiles.cfg OK
09:52:49.048 [i]: Settings: loading lights.cfg OK
09:52:49.048 [i]: Main: using Qt 5.12.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by Clang 10.0.0 (clang-1000.11.45.5) (Apple))
09:52:49.049 [i]: Main: device scale is 2, user defined scale is 0
09:52:49.049 [i]: Main: system locale is [ru]
09:52:49.050 [i]: Main: preferred language is [ru-ru]
09:52:49.052 [i]: Main: setting language file to ru.qm...
09:52:49.054 [i]: Main: collecting system information...
09:52:49.055 [i]: Main: module 'plugins/libsvpflow1.dylib': 4.5.0.205
09:52:49.056 [i]: Main: module 'plugins/libsvpflow2.dylib': 4.5.0.214
09:52:49.057 [i]: Main: VLC filter (64 bit): 1.0.0.192
09:52:49.057 [i]: macOS 10.16.0 Big Sur (Intel)
09:52:49.059 [i]: CPU: Intel Core i9-9900K [base frequency 3433 MHz, 16 threads]
09:52:49.059 [i]: Video: reading OpenCL info...
09:52:49.068 [i]: Video: 1 GPU OpenCL device(s) on Apple [OpenCL 1.2 (Nov 4 2022 20:34:07)] (Apple)
09:52:49.069 [i]: Video 1: AMD Radeon RX Vega 64 Compute Engine (AMD, ver.1.2 (Dec 1 2022 21:19:47)) [gpuID=11]: OK
09:52:49.069 [i]: Video: reading Vulkan info...
09:52:49.173 [i]: Vulkan 0: AMD Radeon RX Vega 64 (+)
09:52:49.174 [i]: Memory:  32768  MB total,  13115 MB free
09:52:49.174 [i]: System: finding network settings...
09:52:49.181 [i]: Settings: loading custom.cfg OK
09:52:49.257 [i]: Screens: updating information, 3 screen(s) found
09:52:49.257 [i]: Screens: screen 0 (LG Ultra HD) - 5120x2880 @60.000 Hz, x2.0 [216 DPI]
09:52:49.257 [i]: Screens: screen 1 (LG Ultra HD) - 5120x2880 @60.000 Hz, x2.0 [216 DPI]
09:52:49.257 [i]: Screens: screen 2 (SMS27A850) - 1440x2560 @60.000 Hz, x1.0 [119 DPI]
09:52:49.257 [i]: Screens: primary screen is 0
09:52:49.302 [i]: Main: preparing video profiles...
09:52:49.599 [i]: Main: preparing performance graphs...
09:52:49.700 [i]: Main: preparing mpv...
09:52:49.740 [i]: Main: preparing remote control...
09:52:49.741 [i]: RemoteControl: started
09:52:49.741 [i]: Main: preparing main menu...
09:52:49.764 [i]: Main: loading extensions...
09:52:49.769 [i]: Extensions: found svpcast 1.1.0.210 ...
09:52:49.771 [i]: Extensions: found svpcode 1.1.0.210 ...
09:52:49.772 [i]: Settings: loading code.cfg OK
09:52:49.802 [i]: Extensions: found svplight 2.0.0.190 ...
09:52:49.841 [i]: Extensions: found svptube 2.1.0.221 ...
09:52:49.854 [i]: Main: initialization completed in 800 ms
09:52:49.966 [i]: Updates: checking now...
09:52:52.236 [i]: Performance: quick estimation = 953 (previous value was 950)
09:53:03.120 [i]: VideoPlayer: mpv [mpv] connected, waiting for the video info...
09:53:03.679 [i]: VideoPlayer: mpv 0.35.0 /via '/var/folders/fj/x11ctncn1tn75z5rq_mkp0hc0000gn/T/mpvsocket'
09:53:04.768 [i]: Media: video 1920x804 [PAR 1.000] at 23.976 fps
09:53:04.768 [i]: Media: codec type is AVC, YUV/4:2:0/8 bits/BT.709 BT.709
09:53:04.776 [i]: Playback: starting up...
09:53:04.782 [i]: Playback [30807227]: resulting video frame 1920x804
09:53:04.782 [i]: Playback [30807227]: 2 acceptible profiles, best is 'Алгоритм RIFE' [0]
09:53:04.788 [i]: Playback [30807227]: enabled while video is paused
09:53:04.789 [i]: Playback [30807227]: playing at 47.952 [23.976 *2/1] 
09:53:07.858 [E]: Playback [30807227]: VS - Script evaluation failed:
09:53:07.858 [E]: Playback [30807227]: VS - Python exception: RIFE: failed to create GPU instance
09:53:07.858 [E]: Playback [30807227]: VS - Traceback (most recent call last):
09:53:07.858 [E]: Playback [30807227]: VS - File 'src/cython/vapoursynth.pyx', line 2866, in vapoursynth._vpy_evaluate
09:53:07.858 [E]: Playback [30807227]: VS - File 'src/cython/vapoursynth.pyx', line 2867, in vapoursynth._vpy_evaluate
09:53:19.646 [E]: Playback [30807227]: VS - File '/Users/anton/Library/Application Support/SVP4/scripts/30807227.py', line 71, in <module>
09:53:19.646 [E]: Playback [30807227]: VS - smooth = interpolate(clip)
09:53:19.646 [E]: Playback [30807227]: VS - ^^^^^^^^^^^^^^^^^
09:53:19.646 [E]: Playback [30807227]: VS - File '/Users/anton/Library/Application Support/SVP4/scripts/30807227.py', line 52, in interpolate
09:53:19.646 [E]: Playback [30807227]: VS - smooth = core.rife.RIFE(input_m,factor_num=rife_num,factor_den=rife_den,model_path=rife_mpath,gpu_id=rife_gpu,gpu_thread=rife_threads,tta=False,sc=True)
09:53:19.646 [E]: Playback [30807227]: VS - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
09:53:19.646 [E]: Playback [30807227]: VS - File 'src/cython/vapoursynth.pyx', line 2612, in vapoursynth.Function.__call__
09:53:19.646 [E]: Playback [30807227]: VS - vapoursynth.Error: RIFE: failed to create GPU instance
09:53:19.646 [E]: Playback [30807227]: VS - could not init VS

P.S. Почему-то форум не позволяет размещать посты чаще, чем раз в два часа sad
Нельзя ли снять это ограничение?

Большое спасибо!

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

AGluk
> Нельзя ли снять это ограничение?

Снять то можно, но чем еще помочь я так пока не знаю. Не от нас зависит, а от стороннего компонента.
Запустите
$ /Applications/"SVP 4 Mac".app/Contents/Resources/utils/vulkaninfo > vk.log
и vk.log сюда.

50 (edited by AGluk 20-01-2023 12:40:19)

Re: Кто нибудь здесь уже пробовал тестировать Rife-app ?

Chainik wrote:

Запустите
$ /Applications/"SVP 4 Mac".app/Contents/Resources/utils/vulkaninfo > vk.log
и vk.log сюда.

Не получается что-то приложить лог.
Выкладываю прямо здесь.
Спасибо!

==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.239


Instance Extensions: count = 13
===============================
    VK_EXT_debug_report                    : extension revision 10
    VK_EXT_debug_utils                     : extension revision 2
    VK_EXT_metal_surface                   : extension revision 1
    VK_EXT_swapchain_colorspace            : extension revision 4
    VK_KHR_device_group_creation           : extension revision 1
    VK_KHR_external_fence_capabilities     : extension revision 1
    VK_KHR_external_memory_capabilities    : extension revision 1
    VK_KHR_external_semaphore_capabilities : extension revision 1
    VK_KHR_get_physical_device_properties2 : extension revision 2
    VK_KHR_get_surface_capabilities2       : extension revision 1
    VK_KHR_portability_enumeration         : extension revision 1
    VK_KHR_surface                         : extension revision 25
    VK_MVK_macos_surface                   : extension revision 3

Layers:
=======
Presentable Surfaces:
=====================
GPU id : 0 (AMD Radeon RX Vega 64):
    Surface type = VK_MVK_macos_surface
    Formats: count = 50
        SurfaceFormat[0]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[1]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[2]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[3]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[4]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[5]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT
        SurfaceFormat[6]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT
        SurfaceFormat[7]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT
        SurfaceFormat[8]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT
        SurfaceFormat[9]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT
        SurfaceFormat[10]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_DCI_P3_NONLINEAR_EXT
        SurfaceFormat[11]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_DCI_P3_NONLINEAR_EXT
        SurfaceFormat[12]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_DCI_P3_NONLINEAR_EXT
        SurfaceFormat[13]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_DCI_P3_NONLINEAR_EXT
        SurfaceFormat[14]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_DCI_P3_NONLINEAR_EXT
        SurfaceFormat[15]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_BT709_NONLINEAR_EXT
        SurfaceFormat[16]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_BT709_NONLINEAR_EXT
        SurfaceFormat[17]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_BT709_NONLINEAR_EXT
        SurfaceFormat[18]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_BT709_NONLINEAR_EXT
        SurfaceFormat[19]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_BT709_NONLINEAR_EXT
        SurfaceFormat[20]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_ADOBERGB_NONLINEAR_EXT
        SurfaceFormat[21]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_ADOBERGB_NONLINEAR_EXT
        SurfaceFormat[22]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_ADOBERGB_NONLINEAR_EXT
        SurfaceFormat[23]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_ADOBERGB_NONLINEAR_EXT
        SurfaceFormat[24]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_ADOBERGB_NONLINEAR_EXT
        SurfaceFormat[25]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_PASS_THROUGH_EXT
        SurfaceFormat[26]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_PASS_THROUGH_EXT
        SurfaceFormat[27]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_PASS_THROUGH_EXT
        SurfaceFormat[28]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_PASS_THROUGH_EXT
        SurfaceFormat[29]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_PASS_THROUGH_EXT
        SurfaceFormat[30]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
        SurfaceFormat[31]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
        SurfaceFormat[32]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
        SurfaceFormat[33]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
        SurfaceFormat[34]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
        SurfaceFormat[35]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
        SurfaceFormat[36]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
        SurfaceFormat[37]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
        SurfaceFormat[38]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
        SurfaceFormat[39]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
        SurfaceFormat[40]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
        SurfaceFormat[41]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
        SurfaceFormat[42]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
        SurfaceFormat[43]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
        SurfaceFormat[44]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
        SurfaceFormat[45]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_BT2020_LINEAR_EXT
        SurfaceFormat[46]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_BT2020_LINEAR_EXT
        SurfaceFormat[47]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_BT2020_LINEAR_EXT
        SurfaceFormat[48]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_BT2020_LINEAR_EXT
        SurfaceFormat[49]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_BT2020_LINEAR_EXT
    Present Modes: count = 2
        PRESENT_MODE_FIFO_KHR
        PRESENT_MODE_IMMEDIATE_KHR
    VkSurfaceCapabilitiesKHR:
    -------------------------
        minImageCount = 2
        maxImageCount = 3
        currentExtent:
            width = 512
            height = 512
        minImageExtent:
            width = 1
            height = 1
        maxImageExtent:
            width = 16384
            height = 16384
        maxImageArrayLayers = 1
        supportedTransforms: count = 1
            SURFACE_TRANSFORM_IDENTITY_BIT_KHR
        currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
        supportedCompositeAlpha: count = 3
            COMPOSITE_ALPHA_OPAQUE_BIT_KHR
            COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR
            COMPOSITE_ALPHA_INHERIT_BIT_KHR
        supportedUsageFlags: count = 5
            IMAGE_USAGE_TRANSFER_SRC_BIT
            IMAGE_USAGE_TRANSFER_DST_BIT
            IMAGE_USAGE_SAMPLED_BIT
            IMAGE_USAGE_STORAGE_BIT
            IMAGE_USAGE_COLOR_ATTACHMENT_BIT


Device Groups:
==============
Group 0:
--------
    Properties:
        physicalDevices: count = 1
            AMD Radeon RX Vega 64 (ID: 0)
        subsetAllocation = 0

    Present Capabilities:
        AMD Radeon RX Vega 64 (ID: 0):
            Can present images from the following devices: count = 1
                AMD Radeon RX Vega 64 (ID: 0)
        Present modes: count = 1
            DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
    apiVersion        = 4202732 (1.2.236)
    driverVersion     = 10201 (0x27d9)
    vendorID          = 0x1002
    deviceID          = 0x687f
    deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
    deviceName        = AMD Radeon RX Vega 64
    pipelineCacheUUID = 000027d9-0a0f-07d2-0000-000000000000

VkPhysicalDeviceLimits:
-----------------------
    maxImageDimension1D                             = 16384
    maxImageDimension2D                             = 16384
    maxImageDimension3D                             = 2048
    maxImageDimensionCube                           = 16384
    maxImageArrayLayers                             = 2048
    maxTexelBufferElements                          = 67108864
    maxUniformBufferRange                           = 65536
    maxStorageBufferRange                           = 3758096384
    maxPushConstantsSize                            = 4096
    maxMemoryAllocationCount                        = 1073741824
    maxSamplerAllocationCount                       = 1073741824
    bufferImageGranularity                          = 0x00000100
    sparseAddressSpaceSize                          = 0x00000000
    maxBoundDescriptorSets                          = 8
    maxPerStageDescriptorSamplers                   = 16
    maxPerStageDescriptorUniformBuffers             = 31
    maxPerStageDescriptorStorageBuffers             = 31
    maxPerStageDescriptorSampledImages              = 128
    maxPerStageDescriptorStorageImages              = 8
    maxPerStageDescriptorInputAttachments           = 128
    maxPerStageResources                            = 159
    maxDescriptorSetSamplers                        = 80
    maxDescriptorSetUniformBuffers                  = 155
    maxDescriptorSetUniformBuffersDynamic           = 155
    maxDescriptorSetStorageBuffers                  = 155
    maxDescriptorSetStorageBuffersDynamic           = 155
    maxDescriptorSetSampledImages                   = 640
    maxDescriptorSetStorageImages                   = 40
    maxDescriptorSetInputAttachments                = 640
    maxVertexInputAttributes                        = 31
    maxVertexInputBindings                          = 31
    maxVertexInputAttributeOffset                   = 2047
    maxVertexInputBindingStride                     = 2048
    maxVertexOutputComponents                       = 124
    maxTessellationGenerationLevel                  = 64
    maxTessellationPatchSize                        = 32
    maxTessellationControlPerVertexInputComponents  = 124
    maxTessellationControlPerVertexOutputComponents = 124
    maxTessellationControlPerPatchOutputComponents  = 120
    maxTessellationControlTotalOutputComponents     = 4088
    maxTessellationEvaluationInputComponents        = 124
    maxTessellationEvaluationOutputComponents       = 124
    maxGeometryShaderInvocations                    = 0
    maxGeometryInputComponents                      = 0
    maxGeometryOutputComponents                     = 0
    maxGeometryOutputVertices                       = 0
    maxGeometryTotalOutputComponents                = 0
    maxFragmentInputComponents                      = 124
    maxFragmentOutputAttachments                    = 8
    maxFragmentDualSrcAttachments                   = 1
    maxFragmentCombinedOutputResources              = 159
    maxComputeSharedMemorySize                      = 65536
    maxComputeWorkGroupCount: count = 3
        1073741824
        1073741824
        1073741824
    maxComputeWorkGroupInvocations                  = 1024
    maxComputeWorkGroupSize: count = 3
        1024
        1024
        1024
    subPixelPrecisionBits                           = 4
    subTexelPrecisionBits                           = 4
    mipmapPrecisionBits                             = 4
    maxDrawIndexedIndexValue                        = 4294967295
    maxDrawIndirectCount                            = 1073741824
    maxSamplerLodBias                               = 4
    maxSamplerAnisotropy                            = 16
    maxViewports                                    = 16
    maxViewportDimensions: count = 2
        16384
        16384
    viewportBoundsRange: count = 2
        -32768
        32767
    viewportSubPixelBits                            = 0
    minMemoryMapAlignment                           = 256
    minTexelBufferOffsetAlignment                   = 0x00000010
    minUniformBufferOffsetAlignment                 = 0x00000100
    minStorageBufferOffsetAlignment                 = 0x00000010
    minTexelOffset                                  = -8
    maxTexelOffset                                  = 7
    minTexelGatherOffset                            = -8
    maxTexelGatherOffset                            = 7
    minInterpolationOffset                          = -0.5
    maxInterpolationOffset                          = 0.5
    subPixelInterpolationOffsetBits                 = 4
    maxFramebufferWidth                             = 16384
    maxFramebufferHeight                            = 16384
    maxFramebufferLayers                            = 2048
    framebufferColorSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    framebufferDepthSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    framebufferStencilSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    framebufferNoAttachmentsSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    maxColorAttachments                             = 8
    sampledImageColorSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    sampledImageIntegerSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    sampledImageDepthSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    sampledImageStencilSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    storageImageSampleCounts: count = 1
        SAMPLE_COUNT_1_BIT
    maxSampleMaskWords                              = 1
    timestampComputeAndGraphics                     = true
    timestampPeriod                                 = 1
    maxClipDistances                                = 1073741824
    maxCullDistances                                = 0
    maxCombinedClipAndCullDistances                 = 1073741824
    discreteQueuePriorities                         = 2
    pointSizeRange: count = 2
        1
        64
    lineWidthRange: count = 2
        1
        1
    pointSizeGranularity                            = 1
    lineWidthGranularity                            = 0
    strictLines                                     = false
    standardSampleLocations                         = true
    optimalBufferCopyOffsetAlignment                = 0x00000100
    optimalBufferCopyRowPitchAlignment              = 0x00000001
    nonCoherentAtomSize                             = 0x00000100

VkPhysicalDeviceSparseProperties:
---------------------------------
    residencyStandard2DBlockShape            = false
    residencyStandard2DMultisampleBlockShape = false
    residencyStandard3DBlockShape            = false
    residencyAlignedMipSize                  = false
    residencyNonResidentStrict               = false

VkPhysicalDeviceDepthStencilResolveProperties:
----------------------------------------------
    supportedDepthResolveModes: count = 3
        RESOLVE_MODE_SAMPLE_ZERO_BIT
        RESOLVE_MODE_MIN_BIT
        RESOLVE_MODE_MAX_BIT
    supportedStencilResolveModes: count = 1
        RESOLVE_MODE_SAMPLE_ZERO_BIT
    independentResolveNone = true
    independentResolve     = true

VkPhysicalDeviceDescriptorIndexingProperties:
---------------------------------------------
    maxUpdateAfterBindDescriptorsInAllPools              = 1073741824
    shaderUniformBufferArrayNonUniformIndexingNative     = false
    shaderSampledImageArrayNonUniformIndexingNative      = true
    shaderStorageBufferArrayNonUniformIndexingNative     = false
    shaderStorageImageArrayNonUniformIndexingNative      = true
    shaderInputAttachmentArrayNonUniformIndexingNative   = true
    robustBufferAccessUpdateAfterBind                    = true
    quadDivergentImplicitLod                             = false
    maxPerStageDescriptorUpdateAfterBindSamplers         = 16
    maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 31
    maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 31
    maxPerStageDescriptorUpdateAfterBindSampledImages    = 128
    maxPerStageDescriptorUpdateAfterBindStorageImages    = 8
    maxPerStageDescriptorUpdateAfterBindInputAttachments = 128
    maxPerStageUpdateAfterBindResources                  = 159
    maxDescriptorSetUpdateAfterBindSamplers              = 80
    maxDescriptorSetUpdateAfterBindUniformBuffers        = 155
    maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 155
    maxDescriptorSetUpdateAfterBindStorageBuffers        = 155
    maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 155
    maxDescriptorSetUpdateAfterBindSampledImages         = 640
    maxDescriptorSetUpdateAfterBindStorageImages         = 40
    maxDescriptorSetUpdateAfterBindInputAttachments      = 640

VkPhysicalDeviceDriverProperties:
---------------------------------
    driverID           = DRIVER_ID_MOLTENVK
    driverName         = MoltenVK
    driverInfo         = 1.2.1
    conformanceVersion = 0.0.0.0

VkPhysicalDeviceFloatControlsProperties:
----------------------------------------
    denormBehaviorIndependence            = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
    roundingModeIndependence              = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
    shaderSignedZeroInfNanPreserveFloat16 = true
    shaderSignedZeroInfNanPreserveFloat32 = true
    shaderSignedZeroInfNanPreserveFloat64 = false
    shaderDenormPreserveFloat16           = false
    shaderDenormPreserveFloat32           = false
    shaderDenormPreserveFloat64           = false
    shaderDenormFlushToZeroFloat16        = false
    shaderDenormFlushToZeroFloat32        = false
    shaderDenormFlushToZeroFloat64        = false
    shaderRoundingModeRTEFloat16          = false
    shaderRoundingModeRTEFloat32          = false
    shaderRoundingModeRTEFloat64          = false
    shaderRoundingModeRTZFloat16          = false
    shaderRoundingModeRTZFloat32          = false
    shaderRoundingModeRTZFloat64          = false

VkPhysicalDeviceIDProperties:
-----------------------------
    deviceUUID      = 00001002-0000-687f-0000-000100000540
    driverUUID      = 4d564b00-0000-27d9-0a0f-07d200000000
    deviceNodeMask  = 0
    deviceLUIDValid = false

VkPhysicalDeviceInlineUniformBlockPropertiesEXT:
------------------------------------------------
    maxInlineUniformBlockSize                               = 4096
    maxPerStageDescriptorInlineUniformBlocks                = 13
    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 13
    maxDescriptorSetInlineUniformBlocks                     = 52
    maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 52

VkPhysicalDeviceMaintenance3Properties:
---------------------------------------
    maxPerSetDescriptors    = 700
    maxMemoryAllocationSize = 0xe0000000

VkPhysicalDeviceMultiviewProperties:
------------------------------------
    maxMultiviewViewCount     = 32
    maxMultiviewInstanceIndex = 134217727

VkPhysicalDevicePointClippingProperties:
----------------------------------------
    pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES

VkPhysicalDeviceProtectedMemoryProperties:
------------------------------------------
    protectedNoFault = false

VkPhysicalDevicePushDescriptorPropertiesKHR:
--------------------------------------------
    maxPushDescriptors = 159

VkPhysicalDeviceRobustness2PropertiesEXT:
-----------------------------------------
    robustStorageBufferAccessSizeAlignment = 0x00000001
    robustUniformBufferAccessSizeAlignment = 0x00000001

VkPhysicalDeviceSampleLocationsPropertiesEXT:
---------------------------------------------
    sampleLocationSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    maxSampleLocationGridSize:
        width  = 1
        height = 1
    sampleLocationCoordinateRange: count = 2
        0
        0.9375
    sampleLocationSubPixelBits       = 4
    variableSampleLocations          = false

VkPhysicalDeviceSamplerFilterMinmaxProperties:
----------------------------------------------
    filterMinmaxSingleComponentFormats = false
    filterMinmaxImageComponentMapping  = false

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
    subgroupSize              = 64
    supportedStages: count = 5
        SHADER_STAGE_TESSELLATION_CONTROL_BIT
        SHADER_STAGE_FRAGMENT_BIT
        SHADER_STAGE_COMPUTE_BIT
        SHADER_STAGE_ALL_GRAPHICS
        SHADER_STAGE_ALL
    supportedOperations: count = 7
        SUBGROUP_FEATURE_BASIC_BIT
        SUBGROUP_FEATURE_VOTE_BIT
        SUBGROUP_FEATURE_ARITHMETIC_BIT
        SUBGROUP_FEATURE_BALLOT_BIT
        SUBGROUP_FEATURE_SHUFFLE_BIT
        SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
        SUBGROUP_FEATURE_QUAD_BIT
    quadOperationsInAllStages = true

VkPhysicalDeviceSubgroupSizeControlPropertiesEXT:
-------------------------------------------------
    minSubgroupSize              = 64
    maxSubgroupSize              = 64
    maxComputeWorkgroupSubgroups = 16
    requiredSubgroupSizeStages:
        None

VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT:
--------------------------------------------------
    storageTexelBufferOffsetAlignmentBytes       = 0x00000010
    storageTexelBufferOffsetSingleTexelAlignment = true
    uniformTexelBufferOffsetAlignmentBytes       = 0x00000010
    uniformTexelBufferOffsetSingleTexelAlignment = true

VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
    maxTimelineSemaphoreValueDifference = 18446744073709551615

VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT:
----------------------------------------------------
    maxVertexAttribDivisor = 1073741824

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
    deviceUUID                        = 00001002-0000-687f-0000-000100000540
    driverUUID                        = 4d564b00-0000-27d9-0a0f-07d200000000
    deviceNodeMask                    = 0
    deviceLUIDValid                   = false
    subgroupSize                      = 64
    subgroupSupportedStages: count = 5
        SHADER_STAGE_TESSELLATION_CONTROL_BIT
        SHADER_STAGE_FRAGMENT_BIT
        SHADER_STAGE_COMPUTE_BIT
        SHADER_STAGE_ALL_GRAPHICS
        SHADER_STAGE_ALL
    subgroupSupportedOperations: count = 7
        SUBGROUP_FEATURE_BASIC_BIT
        SUBGROUP_FEATURE_VOTE_BIT
        SUBGROUP_FEATURE_ARITHMETIC_BIT
        SUBGROUP_FEATURE_BALLOT_BIT
        SUBGROUP_FEATURE_SHUFFLE_BIT
        SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
        SUBGROUP_FEATURE_QUAD_BIT
    subgroupQuadOperationsInAllStages = true
    pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
    maxMultiviewViewCount             = 32
    maxMultiviewInstanceIndex         = 134217727
    protectedNoFault                  = false
    maxPerSetDescriptors              = 700
    maxMemoryAllocationSize           = 0xe0000000

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
    driverID                                             = DRIVER_ID_MOLTENVK
    driverName                                           = MoltenVK
    driverInfo                                           = 1.2.1
    conformanceVersion                                   = 0.0.0.0
    denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
    roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
    shaderSignedZeroInfNanPreserveFloat16                = true
    shaderSignedZeroInfNanPreserveFloat32                = true
    shaderSignedZeroInfNanPreserveFloat64                = false
    shaderDenormPreserveFloat16                          = false
    shaderDenormPreserveFloat32                          = false
    shaderDenormPreserveFloat64                          = false
    shaderDenormFlushToZeroFloat16                       = false
    shaderDenormFlushToZeroFloat32                       = false
    shaderDenormFlushToZeroFloat64                       = false
    shaderRoundingModeRTEFloat16                         = false
    shaderRoundingModeRTEFloat32                         = false
    shaderRoundingModeRTEFloat64                         = false
    shaderRoundingModeRTZFloat16                         = false
    shaderRoundingModeRTZFloat32                         = false
    shaderRoundingModeRTZFloat64                         = false
    maxUpdateAfterBindDescriptorsInAllPools              = 1073741824
    shaderUniformBufferArrayNonUniformIndexingNative     = false
    shaderSampledImageArrayNonUniformIndexingNative      = true
    shaderStorageBufferArrayNonUniformIndexingNative     = false
    shaderStorageImageArrayNonUniformIndexingNative      = true
    shaderInputAttachmentArrayNonUniformIndexingNative   = true
    robustBufferAccessUpdateAfterBind                    = true
    quadDivergentImplicitLod                             = false
    maxPerStageDescriptorUpdateAfterBindSamplers         = 16
    maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 31
    maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 31
    maxPerStageDescriptorUpdateAfterBindSampledImages    = 128
    maxPerStageDescriptorUpdateAfterBindStorageImages    = 8
    maxPerStageDescriptorUpdateAfterBindInputAttachments = 128
    maxPerStageUpdateAfterBindResources                  = 159
    maxDescriptorSetUpdateAfterBindSamplers              = 80
    maxDescriptorSetUpdateAfterBindUniformBuffers        = 155
    maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 155
    maxDescriptorSetUpdateAfterBindStorageBuffers        = 155
    maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 155
    maxDescriptorSetUpdateAfterBindSampledImages         = 640
    maxDescriptorSetUpdateAfterBindStorageImages         = 40
    maxDescriptorSetUpdateAfterBindInputAttachments      = 640
    supportedDepthResolveModes: count = 3
        RESOLVE_MODE_SAMPLE_ZERO_BIT
        RESOLVE_MODE_MIN_BIT
        RESOLVE_MODE_MAX_BIT
    supportedStencilResolveModes: count = 1
        RESOLVE_MODE_SAMPLE_ZERO_BIT
    independentResolveNone                               = true
    independentResolve                                   = true
    filterMinmaxSingleComponentFormats                   = false
    filterMinmaxImageComponentMapping                    = false
    maxTimelineSemaphoreValueDifference                  = 18446744073709551615
    framebufferIntegerColorSampleCounts: count = 4
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT


Device Extensions: count = 65
    VK_AMD_gpu_shader_half_float          : extension revision 2
    VK_AMD_negative_viewport_height       : extension revision 1
    VK_AMD_shader_trinary_minmax          : extension revision 1
    VK_EXT_debug_marker                   : extension revision 4
    VK_EXT_descriptor_indexing            : extension revision 2
    VK_EXT_fragment_shader_interlock      : extension revision 1
    VK_EXT_hdr_metadata                   : extension revision 2
    VK_EXT_host_query_reset               : extension revision 1
    VK_EXT_image_robustness               : extension revision 1
    VK_EXT_inline_uniform_block           : extension revision 1
    VK_EXT_memory_budget                  : extension revision 1
    VK_EXT_metal_objects                  : extension revision 1
    VK_EXT_private_data                   : extension revision 1
    VK_EXT_robustness2                    : extension revision 1
    VK_EXT_sample_locations               : extension revision 1
    VK_EXT_scalar_block_layout            : extension revision 1
    VK_EXT_separate_stencil_usage         : extension revision 1
    VK_EXT_shader_stencil_export          : extension revision 1
    VK_EXT_shader_viewport_index_layer    : extension revision 1
    VK_EXT_subgroup_size_control          : extension revision 2
    VK_EXT_texel_buffer_alignment         : extension revision 1
    VK_EXT_vertex_attribute_divisor       : extension revision 3
    VK_GOOGLE_display_timing              : extension revision 1
    VK_INTEL_shader_integer_functions2    : extension revision 1
    VK_KHR_16bit_storage                  : extension revision 1
    VK_KHR_8bit_storage                   : extension revision 1
    VK_KHR_bind_memory2                   : extension revision 1
    VK_KHR_copy_commands2                 : extension revision 1
    VK_KHR_create_renderpass2             : extension revision 1
    VK_KHR_dedicated_allocation           : extension revision 3
    VK_KHR_depth_stencil_resolve          : extension revision 1
    VK_KHR_descriptor_update_template     : extension revision 1
    VK_KHR_device_group                   : extension revision 4
    VK_KHR_driver_properties              : extension revision 1
    VK_KHR_dynamic_rendering              : extension revision 1
    VK_KHR_external_fence                 : extension revision 1
    VK_KHR_external_memory                : extension revision 1
    VK_KHR_external_semaphore             : extension revision 1
    VK_KHR_fragment_shader_barycentric    : extension revision 1
    VK_KHR_get_memory_requirements2       : extension revision 1
    VK_KHR_image_format_list              : extension revision 1
    VK_KHR_imageless_framebuffer          : extension revision 1
    VK_KHR_maintenance1                   : extension revision 2
    VK_KHR_maintenance2                   : extension revision 1
    VK_KHR_maintenance3                   : extension revision 1
    VK_KHR_multiview                      : extension revision 1
    VK_KHR_portability_subset             : extension revision 1
    VK_KHR_push_descriptor                : extension revision 2
    VK_KHR_relaxed_block_layout           : extension revision 1
    VK_KHR_sampler_mirror_clamp_to_edge   : extension revision 3
    VK_KHR_sampler_ycbcr_conversion       : extension revision 14
    VK_KHR_separate_depth_stencil_layouts : extension revision 1
    VK_KHR_shader_draw_parameters         : extension revision 1
    VK_KHR_shader_float16_int8            : extension revision 1
    VK_KHR_shader_float_controls          : extension revision 4
    VK_KHR_shader_subgroup_extended_types : extension revision 1
    VK_KHR_spirv_1_4                      : extension revision 1
    VK_KHR_storage_buffer_storage_class   : extension revision 1
    VK_KHR_swapchain                      : extension revision 70
    VK_KHR_swapchain_mutable_format       : extension revision 1
    VK_KHR_timeline_semaphore             : extension revision 2
    VK_KHR_uniform_buffer_standard_layout : extension revision 1
    VK_KHR_variable_pointers              : extension revision 1
    VK_NV_fragment_shader_barycentric     : extension revision 1
    VK_NV_glsl_shader                     : extension revision 1

VkQueueFamilyProperties:
========================
    queueProperties[0]:
    -------------------
        minImageTransferGranularity = (1,1,1)
        queueCount                  = 1
        queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
        timestampValidBits          = 64
        present support             = true

    queueProperties[1]:
    -------------------
        minImageTransferGranularity = (1,1,1)
        queueCount                  = 1
        queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
        timestampValidBits          = 64
        present support             = true

    queueProperties[2]:
    -------------------
        minImageTransferGranularity = (1,1,1)
        queueCount                  = 1
        queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
        timestampValidBits          = 64
        present support             = true

    queueProperties[3]:
    -------------------
        minImageTransferGranularity = (1,1,1)
        queueCount                  = 1
        queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
        timestampValidBits          = 64
        present support             = true

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 2
    memoryHeaps[0]:
        size   = 8573157376 (0x1ff000000) (7.98 GiB)
        budget = 8573157376 (0x1ff000000) (7.98 GiB)
        usage  = 0 (0x00000000) (0.00 B)
        flags: count = 1
            MEMORY_HEAP_DEVICE_LOCAL_BIT
    memoryHeaps[1]:
        size   = 34359738368 (0x800000000) (32.00 GiB)
        budget = 5959135232 (0x163313000) (5.55 GiB)
        usage  = 5615616 (0x0055b000) (5.36 MiB)
        flags:
            None
memoryTypes: count = 3
    memoryTypes[0]:
        heapIndex     = 0
        propertyFlags = 0x0001: count = 1
            MEMORY_PROPERTY_DEVICE_LOCAL_BIT
        usable for:
            IMAGE_TILING_OPTIMAL:
                color images
                FORMAT_D16_UNORM
                FORMAT_D32_SFLOAT
                FORMAT_S8_UINT
                FORMAT_D24_UNORM_S8_UINT
                FORMAT_D32_SFLOAT_S8_UINT
                (non-sparse)
            IMAGE_TILING_LINEAR:
                color images
                (non-sparse, non-transient)
    memoryTypes[1]:
        heapIndex     = 1
        propertyFlags = 0x000e: count = 3
            MEMORY_PROPERTY_HOST_VISIBLE_BIT
            MEMORY_PROPERTY_HOST_COHERENT_BIT
            MEMORY_PROPERTY_HOST_CACHED_BIT
        usable for:
            IMAGE_TILING_OPTIMAL:
                None
            IMAGE_TILING_LINEAR:
                color images
                (non-sparse, non-transient)
    memoryTypes[2]:
        heapIndex     = 0
        propertyFlags = 0x000b: count = 3
            MEMORY_PROPERTY_DEVICE_LOCAL_BIT
            MEMORY_PROPERTY_HOST_VISIBLE_BIT
            MEMORY_PROPERTY_HOST_CACHED_BIT
        usable for:
            IMAGE_TILING_OPTIMAL:
                color images
                (non-sparse)
            IMAGE_TILING_LINEAR:
                color images
                (non-sparse, non-transient)

VkPhysicalDeviceFeatures:
=========================
    robustBufferAccess                      = true
    fullDrawIndexUint32                     = true
    imageCubeArray                          = true
    independentBlend                        = true
    geometryShader                          = false
    tessellationShader                      = true
    sampleRateShading                       = true
    dualSrcBlend                            = true
    logicOp                                 = false
    multiDrawIndirect                       = true
    drawIndirectFirstInstance               = true
    depthClamp                              = true
    depthBiasClamp                          = true
    fillModeNonSolid                        = true
    depthBounds                             = false
    wideLines                               = false
    largePoints                             = true
    alphaToOne                              = true
    multiViewport                           = true
    samplerAnisotropy                       = true
    textureCompressionETC2                  = false
    textureCompressionASTC_LDR              = false
    textureCompressionBC                    = true
    occlusionQueryPrecise                   = true
    pipelineStatisticsQuery                 = false
    vertexPipelineStoresAndAtomics          = true
    fragmentStoresAndAtomics                = true
    shaderTessellationAndGeometryPointSize  = true
    shaderImageGatherExtended               = true
    shaderStorageImageExtendedFormats       = true
    shaderStorageImageMultisample           = false
    shaderStorageImageReadWithoutFormat     = true
    shaderStorageImageWriteWithoutFormat    = true
    shaderUniformBufferArrayDynamicIndexing = true
    shaderSampledImageArrayDynamicIndexing  = true
    shaderStorageBufferArrayDynamicIndexing = true
    shaderStorageImageArrayDynamicIndexing  = true
    shaderClipDistance                      = true
    shaderCullDistance                      = false
    shaderFloat64                           = false
    shaderInt64                             = false
    shaderInt16                             = true
    shaderResourceResidency                 = false
    shaderResourceMinLod                    = true
    sparseBinding                           = false
    sparseResidencyBuffer                   = false
    sparseResidencyImage2D                  = false
    sparseResidencyImage3D                  = false
    sparseResidency2Samples                 = false
    sparseResidency4Samples                 = false
    sparseResidency8Samples                 = false
    sparseResidency16Samples                = false
    sparseResidencyAliased                  = false
    variableMultisampleRate                 = false
    inheritedQueries                        = true

VkPhysicalDevice16BitStorageFeatures:
-------------------------------------
    storageBuffer16BitAccess           = true
    uniformAndStorageBuffer16BitAccess = true
    storagePushConstant16              = true
    storageInputOutput16               = true

VkPhysicalDevice8BitStorageFeatures:
------------------------------------
    storageBuffer8BitAccess           = true
    uniformAndStorageBuffer8BitAccess = true
    storagePushConstant8              = true

VkPhysicalDeviceBufferDeviceAddressFeatures:
--------------------------------------------
    bufferDeviceAddress              = false
    bufferDeviceAddressCaptureReplay = false
    bufferDeviceAddressMultiDevice   = false

VkPhysicalDeviceDescriptorIndexingFeatures:
-------------------------------------------
    shaderInputAttachmentArrayDynamicIndexing          = true
    shaderUniformTexelBufferArrayDynamicIndexing       = true
    shaderStorageTexelBufferArrayDynamicIndexing       = true
    shaderUniformBufferArrayNonUniformIndexing         = false
    shaderSampledImageArrayNonUniformIndexing          = true
    shaderStorageBufferArrayNonUniformIndexing         = false
    shaderStorageImageArrayNonUniformIndexing          = true
    shaderInputAttachmentArrayNonUniformIndexing       = true
    shaderUniformTexelBufferArrayNonUniformIndexing    = true
    shaderStorageTexelBufferArrayNonUniformIndexing    = true
    descriptorBindingUniformBufferUpdateAfterBind      = true
    descriptorBindingSampledImageUpdateAfterBind       = true
    descriptorBindingStorageImageUpdateAfterBind       = true
    descriptorBindingStorageBufferUpdateAfterBind      = true
    descriptorBindingUniformTexelBufferUpdateAfterBind = true
    descriptorBindingStorageTexelBufferUpdateAfterBind = true
    descriptorBindingUpdateUnusedWhilePending          = true
    descriptorBindingPartiallyBound                    = true
    descriptorBindingVariableDescriptorCount           = true
    runtimeDescriptorArray                             = true

VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT:
---------------------------------------------------
    fragmentShaderSampleInterlock      = true
    fragmentShaderPixelInterlock       = true
    fragmentShaderShadingRateInterlock = false

VkPhysicalDeviceHostQueryResetFeatures:
---------------------------------------
    hostQueryReset = true

VkPhysicalDeviceImageRobustnessFeaturesEXT:
-------------------------------------------
    robustImageAccess = true

VkPhysicalDeviceImagelessFramebufferFeatures:
---------------------------------------------
    imagelessFramebuffer = true

VkPhysicalDeviceInlineUniformBlockFeaturesEXT:
----------------------------------------------
    inlineUniformBlock                                 = true
    descriptorBindingInlineUniformBlockUpdateAfterBind = true

VkPhysicalDeviceMultiviewFeatures:
----------------------------------
    multiview                   = true
    multiviewGeometryShader     = false
    multiviewTessellationShader = false

VkPhysicalDevicePrivateDataFeaturesEXT:
---------------------------------------
    privateData = true

VkPhysicalDeviceProtectedMemoryFeatures:
----------------------------------------
    protectedMemory = false

VkPhysicalDeviceRobustness2FeaturesEXT:
---------------------------------------
    robustBufferAccess2 = false
    robustImageAccess2  = true
    nullDescriptor      = false

VkPhysicalDeviceSamplerYcbcrConversionFeatures:
-----------------------------------------------
    samplerYcbcrConversion = true

VkPhysicalDeviceScalarBlockLayoutFeatures:
------------------------------------------
    scalarBlockLayout = true

VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures:
----------------------------------------------------
    separateDepthStencilLayouts = true

VkPhysicalDeviceShaderAtomicInt64Features:
------------------------------------------
    shaderBufferInt64Atomics = false
    shaderSharedInt64Atomics = false

VkPhysicalDeviceShaderDrawParametersFeatures:
---------------------------------------------
    shaderDrawParameters = true

VkPhysicalDeviceShaderFloat16Int8Features:
------------------------------------------
    shaderFloat16 = true
    shaderInt8    = true

VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures:
----------------------------------------------------
    shaderSubgroupExtendedTypes = true

VkPhysicalDeviceSubgroupSizeControlFeaturesEXT:
-----------------------------------------------
    subgroupSizeControl  = true
    computeFullSubgroups = true

VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT:
------------------------------------------------
    texelBufferAlignment = true

VkPhysicalDeviceTimelineSemaphoreFeatures:
------------------------------------------
    timelineSemaphore = true

VkPhysicalDeviceUniformBufferStandardLayoutFeatures:
----------------------------------------------------
    uniformBufferStandardLayout = true

VkPhysicalDeviceVariablePointersFeatures:
-----------------------------------------
    variablePointersStorageBuffer = true
    variablePointers              = true

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
    vertexAttributeInstanceRateDivisor     = true
    vertexAttributeInstanceRateZeroDivisor = true

VkPhysicalDeviceVulkan11Features:
---------------------------------
    storageBuffer16BitAccess           = true
    uniformAndStorageBuffer16BitAccess = true
    storagePushConstant16              = true
    storageInputOutput16               = true
    multiview                          = true
    multiviewGeometryShader            = false
    multiviewTessellationShader        = false
    variablePointersStorageBuffer      = true
    variablePointers                   = true
    protectedMemory                    = false
    samplerYcbcrConversion             = true
    shaderDrawParameters               = true

VkPhysicalDeviceVulkan12Features:
---------------------------------
    samplerMirrorClampToEdge                           = true
    drawIndirectCount                                  = false
    storageBuffer8BitAccess                            = true
    uniformAndStorageBuffer8BitAccess                  = true
    storagePushConstant8                               = true
    shaderBufferInt64Atomics                           = false
    shaderSharedInt64Atomics                           = false
    shaderFloat16                                      = true
    shaderInt8                                         = true
    descriptorIndexing                                 = true
    shaderInputAttachmentArrayDynamicIndexing          = true
    shaderUniformTexelBufferArrayDynamicIndexing       = true
    shaderStorageTexelBufferArrayDynamicIndexing       = true
    shaderUniformBufferArrayNonUniformIndexing         = false
    shaderSampledImageArrayNonUniformIndexing          = true
    shaderStorageBufferArrayNonUniformIndexing         = false
    shaderStorageImageArrayNonUniformIndexing          = true
    shaderInputAttachmentArrayNonUniformIndexing       = true
    shaderUniformTexelBufferArrayNonUniformIndexing    = true
    shaderStorageTexelBufferArrayNonUniformIndexing    = true
    descriptorBindingUniformBufferUpdateAfterBind      = true
    descriptorBindingSampledImageUpdateAfterBind       = true
    descriptorBindingStorageImageUpdateAfterBind       = true
    descriptorBindingStorageBufferUpdateAfterBind      = true
    descriptorBindingUniformTexelBufferUpdateAfterBind = true
    descriptorBindingStorageTexelBufferUpdateAfterBind = true
    descriptorBindingUpdateUnusedWhilePending          = true
    descriptorBindingPartiallyBound                    = true
    descriptorBindingVariableDescriptorCount           = true
    runtimeDescriptorArray                             = true
    samplerFilterMinmax                                = false
    scalarBlockLayout                                  = true
    imagelessFramebuffer                               = true
    uniformBufferStandardLayout                        = true
    shaderSubgroupExtendedTypes                        = true
    separateDepthStencilLayouts                        = true
    hostQueryReset                                     = true
    timelineSemaphore                                  = true
    bufferDeviceAddress                                = false
    bufferDeviceAddressCaptureReplay                   = false
    bufferDeviceAddressMultiDevice                     = false
    vulkanMemoryModel                                  = false
    vulkanMemoryModelDeviceScope                       = false
    vulkanMemoryModelAvailabilityVisibilityChains      = false
    shaderOutputViewportIndex                          = true
    shaderOutputLayer                                  = true
    subgroupBroadcastDynamicId                         = true

VkPhysicalDeviceVulkanMemoryModelFeatures:
------------------------------------------
    vulkanMemoryModel                             = false
    vulkanMemoryModelDeviceScope                  = false
    vulkanMemoryModelAvailabilityVisibilityChains = false