RA Win-64 Vulkan build request

Hi, would anyone be able to provide a fresh Win-64 build of RA with Vulkan and all of the cores? Also, do you need a new set of shaders for Vulkan?

Actually, it seems to not be working. This is one of the reasons I was trying to compile RetroArch with Vulkan support for Windows but I got stuck on some dependencies. (I also compiled with OpenAL support as it interests me, with just OpenAL I managed to compile just fine) Log from today’s nightly build:

RetroArch [ERROR] :: Couldn't find any video driver named "vulkan"
RetroArch [INFO] :: Available video drivers are:
RetroArch [INFO] ::     gl
RetroArch [INFO] ::     d3d
RetroArch [INFO] ::     sdl2
RetroArch [INFO] ::     null
RetroArch [WARN] :: Going to default to first video driver...
RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565.
RetroArch [INFO] :: Version of libretro API: 1
RetroArch [INFO] :: Compiled against API: 1
RetroArch [INFO] :: Set audio input rate to: 29975.00 Hz.
RetroArch [INFO] :: Video @ 960x720
RetroArch [ERROR] :: Couldn't find any video driver named "vulkan"
RetroArch [INFO] :: Available video drivers are:
RetroArch [INFO] ::     gl
RetroArch [INFO] ::     d3d
RetroArch [INFO] ::     sdl2
RetroArch [INFO] ::     null
RetroArch [WARN] :: Going to default to first video driver...
RetroArch [INFO] :: Found GL context: wgl
RetroArch [INFO] :: Detecting screen resolution 1920x1080.
RetroArch [INFO] :: [WGL]: wglSwapInterval(1)
RetroArch [INFO] :: [GL]: Vendor: NVIDIA Corporation, Renderer: GeForce GT 650M/PCIe/SSE2.
RetroArch [INFO] :: [GL]: Version: 4.5.0 NVIDIA 368.22.

Dota 2 works perfectly with Vulkan.

Can you try again? Twinaphex pushed a commit today that should have fixed it.

Also, make sure you’ve initialized and updated the git submodules.

[QUOTE=Lex;40188]Can you try again? Twinaphex pushed a commit today that should have fixed it.

Also, make sure you’ve initialized and updated the git submodules.[/QUOTE]

It seems that the compilation failed as there is no executable. On the build bot build log this error showed up:


CC gfx/common/vulkan_common.c
CC gfx/drivers_font/vulkan_raster_font.c
CXX gfx/drivers_shader/shader_vulkan.cpp
CXX gfx/drivers_shader/glslang_util.cpp
CXX gfx/drivers_shader/slang_reflection.cpp
gfx/drivers_shader/slang_reflection.cpp:16:27: fatal error: spirv_cross.hpp: No such file or directory

 #include "spirv_cross.hpp"

                           ^

compilation terminated.

Makefile:135: recipe for target 'obj-unix/gfx/drivers_shader/slang_reflection.o' failed
make: *** [obj-unix/gfx/drivers_shader/slang_reflection.o] Error 1
make: *** Waiting for unfinished jobs....
buildbot job: retroarch: [status: fail] [recipes/windows/retroarch-windows-x64_seh] LOG: http://hastebin.com/juxiyarove
CC git_version.c

But this file can be found in …\home[USER]\RetroArch\deps\SPIRV-Cross in the source code.

EDIT: For some reason it worked when I forced it to compile by removing “check_lib VULKAN -lvulkan vkCreateInstance” from “config.libs.sh”. I compiled with vulkan support on Windows and according to the log everything is working fine.

EDIT2: I am testing with a notebook with Optimus support and not even with hard sync enabled (unless I use hard sync and the integrated HD 4000, which is not very good as everyone knows) I get low input lag with my nVidia 650M. With Vulkan I seem to be getting less input lag than with GL and hard sync but taxing the CPU a lot less, nice. (but still not as good as the HD 4000, sadly) What is the V-Sync issue from here: https://github.com/libretro/RetroArch/issues/3005 ? I just tested bsnes-mercury, but it seems to work fine.

[QUOTE=lagonauta;40190]What is the V-Sync issue from here: https://github.com/libretro/RetroArch/issues/3005 ? I just tested bsnes-mercury, but it seems to work fine.[/QUOTE] I tested the latest buildbot build with the Vulkan driver and the swap interval and black screen insertion options don’t work with it. Those two make vsync smooth on non-gsync high refresh rate monitors; maybe them not working are part of the issues?

[QUOTE=lagonauta;40190] What is the V-Sync issue from here: https://github.com/libretro/RetroArch/issues/3005 ? I just tested bsnes-mercury, but it seems to work fine.[/QUOTE]

The stuttering issue was an Nvidia driver issue which they’ve since fixed in their latest Windows driver.

Vsync Swap Interval and Black Frame Insertion are not implemented yet in the Vulkan backend yet as far as I can tell. The bilinear filtering option in Settings>Video does not work either, though that can be enabled through slang-shader presets.

I went and tried the latest nightly to see how Vulkan ran, but it didn’t run at all for me. The executable detected Vulkan support, but when I set the driver to Vulkan, it crashed every time. I went and enabled logging, but it just raised further questions, because the log shows absolutely no indication of why the crash happened. It just sort of…stops?

RetroArch [INFO] :: === Build =======================================
Capabilities: MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 SSE4 SSE4.2 AVX AES 
Built: Jun  3 2016
RetroArch [INFO] :: Version: 1.3.4
RetroArch [INFO] :: Git: 748a913
RetroArch [INFO] :: =================================================
RetroArch [INFO] :: Config: loading config from: C:\GameStuff\Emus\RetroArch\retroarch.cfg.
RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565.
RetroArch [INFO] :: Version of libretro API: 1
RetroArch [INFO] :: Compiled against API: 1
RetroArch [INFO] :: Set audio input rate to: 29975.00 Hz.
RetroArch [INFO] :: Video @ fullscreen
RetroArch [INFO] :: Found GL context: wgl
RetroArch [INFO] :: Detecting screen resolution 1920x1080.
RetroArch [INFO] :: [WGL]: wglSwapInterval(1)
RetroArch [INFO] :: [GL]: Vendor: ATI Technologies Inc., Renderer: AMD Radeon R9 200 Series.
RetroArch [INFO] :: [GL]: Version: 4.5.13440 Compatibility Profile Context 16.200.1013.0.
RetroArch [INFO] :: [GL]: ATI card detected, skipping check for GL_RGB565 support.
RetroArch [INFO] :: Querying GL extension: ARB_sync => exists
RetroArch [INFO] :: Querying GL extension: ARB_texture_float => exists
RetroArch [INFO] :: Querying GL extension: EXT_texture_sRGB => exists
RetroArch [INFO] :: Querying GL extension: ARB_framebuffer_sRGB => exists
RetroArch [INFO] :: GL: Using resolution 1920x1080
RetroArch [INFO] :: [GL]: Default shader backend found: glsl.
RetroArch [INFO] :: [Shader driver]: Using GLSL shader backend.
RetroArch [INFO] :: Checking GLSL shader support ...
RetroArch [WARN] :: [GL]: Stock GLSL shaders will be used.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: Found GLSL vertex shader.
RetroArch [INFO] :: Found GLSL fragment shader.
RetroArch [INFO] :: Linking GLSL program.
RetroArch [INFO] :: [GL]: Using 4 textures.
RetroArch [INFO] :: [GL]: Loaded 1 program(s).
RetroArch [INFO] :: Found XInput v1.4.
RetroArch [INFO] :: Found XInput controller, user #0
RetroArch [INFO] :: Enumerating DInput joypads ...
RetroArch [INFO] :: Device #0 PID: {028E} VID:{045E}
RetroArch [INFO] :: Done enumerating DInput joypads ...
RetroArch [INFO] :: Autodetect: 26 profiles found
RetroArch [INFO] :: Autodetect: selected configuration: C:\GameStuff\Emus\RetroArch\autoconfig\xinput\XInput_Controller_User_1.cfg
RetroArch [INFO] :: Found joypad driver: "xinput".
RetroArch [INFO] :: Using font rendering backend: freetype.
RetroArch [INFO] :: XAudio2: Requesting 64 ms latency, using 64 ms latency.
RetroArch [INFO] :: Found menu display driver: "menu_display_gl".
RetroArch [INFO] :: Querying GL extension: ARB_framebuffer_object => exists
RetroArch [INFO] :: Using font rendering backend: freetype.
RetroArch [INFO] :: Using font rendering backend: freetype.
RetroArch [INFO] :: SRAM will not be saved.
RetroArch [INFO] :: null: [C:\GameStuff\Emus\RetroArch\content_history.lpl].
RetroArch [INFO] :: [GL]: VSync => on
RetroArch [INFO] :: [WGL]: wglSwapInterval(1)
RetroArch [INFO] :: [GL]: VSync => on
RetroArch [INFO] :: [WGL]: wglSwapInterval(1)
RetroArch [INFO] :: [GL]: VSync => on
RetroArch [INFO] :: [WGL]: wglSwapInterval(1)
RetroArch [INFO] :: Saving config at path: "C:\GameStuff\Emus\RetroArch\retroarch.cfg"
RetroArch [INFO] :: Saved new config to "C:\GameStuff\Emus\RetroArch\retroarch.cfg".
RetroArch [INFO] :: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
RetroArch [INFO] :: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[0x7FFCD3815790] ANOMALY: meaningless REX prefix used
[0x7FFCD3A04450] ANOMALY: meaningless REX prefix used
RetroArch [INFO] :: === Build =======================================
Capabilities: MMX MMXEXT SSE1 SSE2 SSE3 SSSE3 SSE4 SSE4.2 AVX AES 
Built: Jun  3 2016
RetroArch [INFO] :: Version: 1.3.4
RetroArch [INFO] :: Git: 748a913
RetroArch [INFO] :: =================================================
RetroArch [INFO] :: Config: loading config from: C:\GameStuff\Emus\RetroArch\retroarch.cfg.
RetroArch [INFO] :: Environ SET_PIXEL_FORMAT: RGB565.
RetroArch [INFO] :: Version of libretro API: 1
RetroArch [INFO] :: Compiled against API: 1
RetroArch [INFO] :: Set audio input rate to: 29975.00 Hz.
RetroArch [INFO] :: Video @ fullscreen
RetroArch [INFO] :: Vulkan dynamic library loaded.
RetroArch [INFO] :: [Vulkan]: Device supports 1 sub-queues.
RetroArch [INFO] :: Detecting screen resolution 1920x1080.
RetroArch [INFO] :: [Vulkan]: Creating swapchain with present mode: 2
RetroArch [INFO] :: [Vulkan]: Got 2 swapchain images.
RetroArch [INFO] :: Vulkan: Using resolution 1920x1080
RetroArch [INFO] :: [Vulkan]: Using RGB565 format.

Do you have a video card that supports Vulkan and the latest driver for it? Vulkan support in hardware is still very new.

I have an R9 285 running with the latest AMD driver (16.5.3). As far as I know, the 285 supports Vulkan just fine, though I haven’t had the opportunity to test with any other apps. I wouldn’t even be trying this if I didn’t think it was possible, and RA correctly says that my system has Vulkan support in system information. So…I have no idea what’s wrong!

I don’t think AMD’s Vulkan driver is mature enough yet. Intel Ivy Bridge is in the same boat in that there are drivers, they just don’t work.