Code Monkey home page Code Monkey logo

vkquake's Issues

does not compile on ubuntu 16.04

~/vkQuake/Quake$ make cc -DNDEBUG -c -Wall -Wno-trigraphs -O2 -std=gnu99 -fweb -frename-registers -I/include -DLINUX -DVK_USE_PLATFORM_XCB_KHR -DUSE_SDL2 -DUSE_CODEC_WAVE -DUSE_CODEC_VORBIS -DUSE_CODEC_MP3 -I/usr/include/SDL2 -D_REENTRANT -o gl_vidsdl.o gl_vidsdl.c In file included from /usr/include/string.h:630:0, from q_stdinc.h:69, from quakedef.h:49, from gl_vidsdl.c:26: gl_vidsdl.c: In function ‘GL_InitDevice’: gl_vidsdl.c:685:15: error: ‘VK_EXT_DEBUG_MARKER_EXTENSION_NAME’ undeclared (first use in this function) if (strcmp(VK_EXT_DEBUG_MARKER_EXTENSION_NAME, device_extensions[i].extensio ^ gl_vidsdl.c:685:15: note: each undeclared identifier is reported only once for each function it appears in gl_vidsdl.c:667:11: warning: variable ‘found_debug_marker_extension’ set but not used [-Wunused-but-set-variable] qboolean found_debug_marker_extension = false; ^ gl_vidsdl.c: At top level: gl_vidsdl.c:245:17: warning: ‘VID_GetVSync’ defined but not used [-Wunused-function] static qboolean VID_GetVSync (void) ^ Makefile:197: recipe for target 'gl_vidsdl.o' failed make: *** [gl_vidsdl.o] Error 1

Provide Windows binaries

Please consider uploading precompiled Windows binaries, nobody wants to compile stuff on Windows, especially if it involves installing Visual Studio

Linux: current build does not complete vk ext. undeclared

The debug extension addition seems to have introduced errors when making Linux binaries. The following error is thrown:

gl_vidsdl.c:674:15: error: ‘VK_EXT_DEBUG_MARKER_EXTENSION_NAME’ undeclared (first use in this function)
    if (strcmp(VK_EXT_DEBUG_MARKER_EXTENSION_NAME, device_extensions[i].extensionName) == 0)
               ^

Log: http://sprunge.us/NMAY

Steps to reproduce:

sudo apt-get install git make gcc libsdl2-dev libvulkan-dev libvorbis-dev libmad0-dev
git clone https://github.com/Novum/vkQuake/
cd vkQuake/QUake
make

Mouse scroll during gameplay only works in one direction

I got the latest code (yesterday-ish) and even though both directions of the mouse scroll work in the menu, while assigning the mouse scroll to the next and prev weapon. During gameplay only one direction of the scroll works.

possible race in staging upload for lightmaps

I was debugging vkquake on radv, and I think I spotted a race condition with the staging upload and main command buffers, for the lightmaps.

R_UploadLightmap allocates a staging buffer and uploads to it,
that gets called
R_DrawTextureChains
R_DrawWorld
R_RenderScene
R_RenderView
V_RenderView
SCR_UpdateScreen

SCR_UpdateScreen calls GL_BeginRendering which calls R_SubmitStagingBuffers
before all of that.

So the lightmap gets updated but not submitted.

Let me know if I've missed something, I'm not overly familiar with the codebase.

No support for CD Audio?

CDAudio disabled at compile time
Do I have to compile vkQuake manually to enable CD Audio support?

Wayland support

Code changes should be minor, but I don't have a machine to test this. Needs support for VK_KHR_wayland_surface

Validation Error: Invalid Pipeline Layout Object

When starting a new game (Single Player -> New Game) with validation layers enabled, the following error appears on the commandline:
ObjectTracker(ERROR): object: 0x2b type: 17 location: 348 msgCode: 994: Invalid Pipeline Layout Object 0x2b. For more information refer to Vulkan Spec Section '13.2.6. Push Constant Updates' which states 'layout must be a valid VkPipelineLayout handle' (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtml/vkspec.html#vkCmdPushConstants)

libvulkan.so.1 seems to be missing?

I get this error when trying to run the binary (either by itself or using a vkquake-launch.sh wrapper):
error while loading shared libraries: libvulkan.so.1: cannot open shared object file: No such file or directory

I googled the error. Most answers say I must have VulkanSDK installed. Is that correct? I thought that a Vulkan-supported videocard w/ updated drivers are enough to run the game.

This is what I have:
screenshot

r_shadows 1 not working

When r_shadows is set to 1 in vkQuake, it has no effect at all. Bug or something related to Vulkan?

VSync Modes

Hey - I figure this is probably on the 'todo' list at some point later, but I wanted to have a go at benchmarking this for fun.

Yes, I know it's incomplete - yes, I know it's buggy, but I actually managed to get it to work on my Linux machine just by changing:

swapchain_create_info.presentMode = VK_PRESENT_MODE_FIFO_KHR;

to:

swapchain_create_info.presentMode = VK_PRESENT_MODE_IMMEDIATE_KHR;

in gl_vidsdl.c

(tl;dr, ~720 fps for timedemo demo1 on 'normal' OpenGL Quakespasm, ~780fps on vkQuake currently :) )

There's some other fun modes apparently that Vulkan exposes, at least from what I'm reading at: https://gist.github.com/graphitemaster/e162a24e57379af840d4

So it'd be neat to be able to test all four modes through the options GUI at some point as an enhancement if possible! My coding is completely horrid, though, or I'd try my hand at a PR :/

QUAKE ERROR: Couldn't create swap chain

Compiled from code cloned today
Command line: ./vkquake
Found SDL version 2.0.4
Detected 6 CPUs.
Quake 1.09 (c) id Software
GLQuake 1.00 (c) id Software
FitzQuake 0.85 (c) John Fitzgibbons
FitzQuake SDL port (c) SleepwalkR, Baker
QuakeSpasm 0.92.0 (c) Ozkan Sezer, Eric Wasylishen & others
vkQuake 0.70.0 (c) Axel Gneiting
Host_Init
Playing shareware version.
Console initialized.
UDP Initialized
Server using protocol 666 (FitzQuake)
Exe: 18:02:57 Aug 29 2016
256.0 megabyte heap

Vulkan Initialization
Vendor: AMD
Device: AMD Radeon (TM) R7 300 Series
Creating command buffers
Creating swap chain
Using IMMEDIATE present mode

ERROR-OUT BEGIN

QUAKE ERROR: Couldn't create swap chain

quakespasm: isl.c:1516: isl_surf_get_image_offset_el: Assertion `level < surf->levels' failed.

This happens when I try to start a game or run a demo.

Running very recent Mesa git i965 drivers on Skylake on Linux (git-126bd15 according to glxinfo). These drivers are compiled with --enable-debug.

Vulkan does work in general.

Using the registered version of the files as available on Steam.

Attempting to build a proper debug build results in an error during compilation so I may have to update my headers at some stage.

Relevant backtrace:

(gdb) bt
#0  0x00007ffff6554207 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff655568a in __GI_abort () at abort.c:89
#2  0x00007ffff654d1ed in __assert_fail_base (fmt=0x7ffff6689390 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7fffe02e73c6 "level < surf->levels", 
    file=file@entry=0x7fffe02e7240 "isl.c", line=line@entry=1516, function=function@entry=0x7fffe02e7b50 <__PRETTY_FUNCTION__.3574> "isl_surf_get_image_offset_el") at assert.c:92
#3  0x00007ffff654d2a2 in __GI___assert_fail (assertion=assertion@entry=0x7fffe02e73c6 "level < surf->levels", file=file@entry=0x7fffe02e7240 "isl.c", line=line@entry=1516, 
    function=function@entry=0x7fffe02e7b50 <__PRETTY_FUNCTION__.3574> "isl_surf_get_image_offset_el") at assert.c:101
#4  0x00007fffe016533d in isl_surf_get_image_offset_el (surf=surf@entry=0x20cbba0, level=7, logical_array_layer=<optimized out>, logical_z_offset_px=logical_z_offset_px@entry=0, 
    x_offset_el=x_offset_el@entry=0x7fffffffa468, y_offset_el=y_offset_el@entry=0x7fffffffa46c) at isl.c:1516
#5  0x00007fffdea20724 in meta_copy_buffer_to_image (cmd_buffer=0x1edac00, buffer=0x1df85c0, image=0x20cbb50, regionCount=<optimized out>, pRegions=<optimized out>, forward=true) at anv_meta_copy.c:189
#6  0x000000000041849c in TexMgr_LoadImage32 (glt=glt@entry=0x7fffe112cca0, data=<optimized out>) at gl_texmgr.c:1095
#7  0x0000000000418656 in TexMgr_LoadImage8 (glt=glt@entry=0x7fffe112cca0, data=<optimized out>, 
    data@entry=0x7fffe1a51d78 "\022\022\022q\022\023\002\022q\002\002$\002q\022qq\021q$\002q\002\023\022\002\002q\002\002\023\022qq\002\022q\023$\022\022\022q$\002$\002\022\022\022q$\022\022\"$\022qq\022\022\022\023\021\002\002qq\002\002%q\002qq\002\023##\002\002\022\022\002$q$\002\022\002\023#\023\023#qs\025\023#\022\002$\022#\023\022#\023#$#\002\002\022##\002$\002\022\002\002\002\022q\021q5\002\002\022\065\023\026\026$\023\023\024\026\003\023\025\025\025\002\024\026\022\025$\024\024\025\025\025\024\002\002\002\003\025$5\022#\024\024\002\024r\025\025\026\025\025'\002\022\004\022\025\026\025\025\025$\023\024\022\021\021\002\024#\025#\022\023"...) at gl_texmgr.c:1196
#8  0x000000000041939b in TexMgr_LoadImage (owner=<optimized out>, name=name@entry=0x7fffffffae80 "maps/start.bsp:dem4_1", width=64, height=128, format=format@entry=SRC_INDEXED, 
    data=data@entry=0x7fffe1a51d78 "\022\022\022q\022\023\002\022q\002\002$\002q\022qq\021q$\002q\002\023\022\002\002q\002\002\023\022qq\002\022q\023$\022\022\022q$\002$\002\022\022\022q$\022\022\"$\022qq\022\022\022\023\021\002\002qq\002\002%q\002qq\002\023##\002\002\022\022\002$q$\002\022\002\023#\023\023#qs\025\023#\022\002$\022#\023\022#\023#$#\002\002\022##\002$\002\022\002\002\002\022q\021q5\002\002\022\065\023\026\026$\023\023\024\026\003\023\025\025\025\002\024\026\022\025$\024\024\025\025\025\024\002\002\002\003\025$5\022#\024\024\002\024r\025\025\026\025\025'\002\022\004\022\025\026\025\025\025$\023\024\022\021\021\002\024#\025#\022\023"..., source_file=0x1799b00 <mod_known> "maps/start.bsp", source_offset=924352, flags=1) at gl_texmgr.c:1268
#9  0x000000000041e82c in Mod_LoadTextures (l=l@entry=0x7ffff0ac9f54) at gl_model.c:558
#10 0x0000000000421274 in Mod_LoadBrushModel (mod=mod@entry=0x1799b00 <mod_known>, buffer=buffer@entry=0x7ffff0ac9f40) at gl_model.c:2008
#11 0x0000000000422a83 in Mod_LoadModel (mod=0x1799b00 <mod_known>, crash=false) at gl_model.c:336
#12 0x00000000004524cb in SV_SpawnServer (server=server@entry=0x7fffffffe430 "start") at sv_main.c:1364
#13 0x00000000004458ab in Host_Map_f () at host_cmd.c:791
#14 0x000000000043fafc in Cbuf_Execute () at cmd.c:193
#15 0x0000000000444e4d in _Host_Frame (time=0.00100000005) at host.c:699
#16 0x0000000000445101 in Host_Frame (time=<optimized out>) at host.c:780
#17 0x0000000000404ba0 in main (argc=<optimized out>, argv=<optimized out>) at main_sdl.c:156

Can't change resolution and options in the menu xcb_wait_for_special_event crash.

Can't change resolution and option in the menu but is working if change manually option in config.cfg
I.e change vid_height and vid_width or others options vid_fullscreen

Linux Archlinux 64bits
Ivy bridge mesa3d driver 12.1

Thread 1 "quakespasm" received signal SIGSEGV, Segmentation fault.
0x00007ffff4d4a78a in xcb_wait_for_special_event () from /usr/lib/libxcb.so.1

ldd

linux-vdso.so.1 (0x00007ffcc8571000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f1b7319e000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f1b72f2b000)
libvulkan.so.1 => /usr/lib/libvulkan.so.1 (0x00007f1b72d02000)
libX11-xcb.so.1 => /usr/lib/libX11-xcb.so.1 (0x00007f1b72b00000)
libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x00007f1b728f7000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x00007f1b726ca000)
libogg.so.0 => /usr/lib/libogg.so.0 (0x00007f1b724c3000)
libmad.so.0 => /usr/lib/libmad.so.0 (0x00007f1b722a3000)
libSDL2-2.0.so.0 => /usr/lib/libSDL2-2.0.so.0 (0x00007f1b71f95000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f1b71bf4000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1b734a2000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00007f1b719ca000)
libxcb-dri3.so.0 => /usr/lib/libxcb-dri3.so.0 (0x00007f1b717c7000)
libxcb-present.so.0 => /usr/lib/libxcb-present.so.0 (0x00007f1b715c4000)
libxcb-sync.so.1 => /usr/lib/libxcb-sync.so.1 (0x00007f1b713bd000)
libxshmfence.so.1 => /usr/lib/libxshmfence.so.1 (0x00007f1b711ba000)
libglapi.so.0 => /usr/lib/libglapi.so.0 (0x00007f1b70f8b000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f1b70d79000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007f1b70b76000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007f1b70970000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f1b7062e000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f1b70405000)
libxcb-glx.so.0 => /usr/lib/libxcb-glx.so.0 (0x00007f1b701e9000)
libxcb-dri2.so.0 => /usr/lib/libxcb-dri2.so.0 (0x00007f1b6ffe4000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x00007f1b6fdde000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0x00007f1b6fbcf000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1b6f9b2000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f1b6f7ae000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007f1b6f5a6000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f1b6f3a2000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f1b6f19c000)

Shaders/Compiled/screen_warp_comp.o does not exist

The latest Makefile swaps out a shader object, but if you don't pass "make" alone, you will get the below error. The object file is not found within the directory as the others. Seems it was not uploaded to the Shaders dir.

make: *** No rule to make target 'screen_warp_comp.o', needed by 'vkquake'.  Stop.
make: *** Waiting for unfinished jobs....
make: Leaving directory '/home/desktop/package-builds/build-vkquake-tmp/vkquake-0.90.0/Quake'
make: Entering directory '/home/desktop/package-builds/build-vkquake-tmp/vkquake-0.90.0/Misc/vq_pak'
./mkpak.sh gfx/conback.lmp maps/e1m1.ent maps/e1m2.ent maps/e1m4.ent maps/e2m2.ent maps/e2m3.ent maps/e2m7.ent default.cfg > vkquake.pak
make: Leaving directory '/home/desktop/package-builds/build-vkquake-tmp/vkquake-0.90.0/Misc/vq_pak'

QUAKE ERROR: vkWaitForFences failed

I'm getting this error with the 0.60+ series with my Nvidia GTX 970 running Ubuntu 16.04. I'm running the 370 drivers from https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa

Here's what I am getting in the terminal when starting a new single player game:

Command line: /usr/games/vkquake -basedir /usr/share/quake
Found SDL version 2.0.4
Detected 8 CPUs.
Quake 1.09 (c) id Software
GLQuake 1.00 (c) id Software
FitzQuake 0.85 (c) John Fitzgibbons
FitzQuake SDL port (c) SleepwalkR, Baker
QuakeSpasm 0.92.0 (c) Ozkan Sezer, Eric Wasylishen & others
vkQuake 0.60.0 (c) Axel Gneiting
Host_Init
Playing registered version.
Console initialized.
UDP Initialized
Server using protocol 666 (FitzQuake)
Exe: 13:09:31 Aug 19 2016
256.0 megabyte heap

Vulkan Initialization
Vendor: NVIDIA
Device: GTX 970
Creating command buffers
Creating swap chain
Creating render passes
Creating color buffer
Creating depth buffer
Creating frame buffers
Initializing staging
Creating descriptor set layouts
Initializing dynamic vertex buffers
Initializing dynamic index buffers
Initializing dynamic uniform buffers
Initializing samplers
Creating pipeline layouts
Creating pipelines

Sound Initialization
SDL audio spec : 44100 Hz, 512 samples, 2 channels
SDL audio driver: pulseaudio - GM204 High Definition Audio Controller Digital Stereo (HDMI 2), 32768 bytes buffer
Audio: 16 bit, stereo, 44100 Hz
CDAudio disabled at compile time

========= Quake Initialized =========

execing quake.rc
execing default.cfg
execing config.cfg
Initializing samplers
execing autoexec.cfg
Unknown command "gl_texturemode"
Unknown command "gl_texture_anisotropy"
Unknown command "r_oldwater"
Unknown command "r_quadparticles"
3 demo(s) in loop

FITZQUAKE 0.85 SERVER (24778 CRC)

��������������������������������������
�Introduction
Using protocol 666
Shutting down SDL sound

QUAKE ERROR: vkWaitForFences failed

Game freezes at the end of E1M6

The game freezes at the end of E1M6 (entering the last portal)

The game shows the level completions status screen and freezes before loading the next map.
Map E1M7 works in a multiplier match.

I used the latest git code and the latest vulkan sdk 1.0.21.1
OS: Fedora 24
CPU: AMD 8 cores
GPU: NVIDIA (latest proprietary drivers)
RAM: 16G

There is no console output during the crash.
This is the console output after the game starts:

./run.sh 
Command line: ./vkquake
Found SDL version 2.0.4
Detected 8 CPUs.
Quake 1.09 (c) id Software
GLQuake 1.00 (c) id Software
FitzQuake 0.85 (c) John Fitzgibbons
FitzQuake SDL port (c) SleepwalkR, Baker
QuakeSpasm 0.92.0 (c) Ozkan Sezer, Eric Wasylishen & others
vkQuake 0.30.0 (c) Axel Gneiting
Host_Init
Playing registered version.
Console initialized.
UDP Initialized
Server using protocol 666 (FitzQuake)
Exe: 19:15:46 Jul 31 2016
256.0 megabyte heap

Vulkan Initialization
Vendor: NVIDIA
Device: GTX 960
Creating command buffers
Creating swap chain
Creating render passes                                                                                                                                                                                                                      
Creating depth buffer                                                                                                                                                                                                                       
Creating frame buffers                                                                                                                                                                                                                      
Initializing staging                                                                                                                                                                                                                        
Creating descriptor set layouts                                                                                                                                                                                                             
Initializing dynamic vertex buffers                                                                                                                                                                                                         
Initializing dynamic index buffers                                                                                                                                                                                                          
Initializing dynamic uniform buffers                                                                                                                                                                                                        
Initializing samplers                                                                                                                                                                                                                       
Creating pipeline layouts                                                                                                                                                                                                                   
Creating pipelines                                                                                                                                                                                                                          
Warning: joystick missing controller mappings: MAD CATZ ,Ltd. Mad Catz Game Controller                                                                                                                                                      

Sound Initialization                                                                                                                                                                                                                        
SDL audio spec  : 44100 Hz, 512 samples, 2 channels                                                                                                                                                                                         
SDL audio driver: pulseaudio - HDA NVidia Digital Stereo (HDMI), 32768 bytes buffer                                                                                                                                                         
Audio: 16 bit, stereo, 44100 Hz                                                                                                                                                                                                             
CDAudio disabled at compile time                                                                                                                                                                                                            

========= Quake Initialized =========                                                                                                                                                                                                       

execing quake.rc                                                                                                                                                                                                                            
execing default.cfg                                                                                                                                                                                                                         
execing config.cfg                                                                                                                                                                                                                          
couldn't exec autoexec.cfg                                                                                                                                                                                                                  
3 demo(s) in loop                                                                                                                                                                                                                           
Loading game from /media/data/games/quake/vkQuake/Quake/id1/s0.sav...                                                                                                                                                                       

FITZQUAKE 0.85 SERVER (51103 CRC)                                                                                                                                                                                                           



The Door To Chthon                                                                                                                                                                                                                          
Using protocol 666                                                                                                                                                                                                                          
Couldn't find a cdrip for track 4                                                                                                                                                                                                           
player exited the level                                                                                                                                                                                                                     
Couldn't find a cdrip for track 3                                                                                                                                                                                                           

FITZQUAKE 0.85 SERVER (51103 CRC)                                                                                                                                                                                                           



The House of Chthon                                                                                                                                                                                                                         
Using protocol 666                                                                                                                                                                                                                          
Couldn't find a cdrip for track 7

vkWaitForFences failed

Hi,
I've got amdgpu-pro running on Arch Linux and have the following error:
QUAKE ERROR: vkWaitForFences failed
Here is my vulkaninfo:
vkinfo.txt

Fedora build fails witn error: ‘VK_API_VERSION_1_0’ undeclared

I am trying to build the code on fedora 24.

I got all the dependencies set up:

>sudo dnf copr enable ajax/vulkan

>sudo dnf install SDL2-devel vulkan-devel

But now make fails with the following error:

gl_vidsdl.c: In function ‘GL_InitInstance’:
gl_vidsdl.c:546:32: error: ‘VK_API_VERSION_1_0’ undeclared (first use in this function)
application_info.apiVersion = VK_API_VERSION_1_0;

Any idea?

Thanks

basedir should contain search paths, such as /usr/share/quake

I'm currenlty looking into this. But somehow, vs. quakespasm, the basedir isn't quite set correctly or linked to the right expected directory of /usr/share/quake.

Steps

  1. install vkquake to /usr/games
  2. try to launch, get generic "can't find gfx.wad" error

To make it work

  1. cd /usr/share/quake (where id1 is placed)
  2. run vkwuake
  3. game runs.
The "base directory" is the path to the directory holding the quake.exe and all
game directories.  The sys_* files pass this to host_init in quakeparms_t->basedir.
This can be overridden with the "-basedir" command line parm to allow code
debugging in a different directory.  The base directory is only used during
filesystem initialization. I

There should be a way to pass some defaults or search paths. In comparison FTE Quake functions this way. Also, this is how quakespasm works, so I don't believe it was any code committed here thus far. believe FTE does this in fs.c

My workaround in situations like this, is a simple launcher/wrapper.

unneeded Flag Makefile in COMMON_LIBS

I couldn't build it on Arch Linux, here is the fix I had to apply:

$ git diff
diff --git a/Quake/Makefile b/Quake/Makefile
index 1d5b2fb..5f152f0 100644
--- a/Quake/Makefile
+++ b/Quake/Makefile
@@ -181,7 +181,7 @@ ifeq ($(USE_CODEC_UMX),1)
CFLAGS+= -DUSE_CODEC_UMX
endif

-COMMON_LIBS:= -lm -lGL -l:libvulkan.so.1 -lX11-xcb
+COMMON_LIBS:= -lm -l:libvulkan.so.1 -lX11-xcb

LIBS := $(COMMON_LIBS) $(NET_LIBS) $(CODECLIBS)

No HUD Visible

Running the 0.50 Linux binaries on Arch Linux w/ Nvidia 367.35 - the game runs fine from ./vkquake but there is no visible HUD. The main menu and pause menus work fine, and I do get status message for pickups, but there's no health, weapon, ammo, etc.

Unfortunately not seeing any errors in the terminal.

couldn't load gfx.wad Ubuntu

I just git cloned vkquake and compiled it on Ubuntu and I can't run it because it couldn't load "gfx.wad" is it missing or did something go wrong? nothing in the make logs show any errors.

Arch Linux: QUAKE ERROR: Couldn't find any Vulkan devices

I know you do not mainly deal with Arch Linux, so this likely is a "help wanted" tag/issue. The window flashes for a moment, then dumps back to the CLI. I was sure how to use the new debug extension either.

I tried to trace it, but the CLI just hangs:

vktrace -p vkquake -o vkquake.vktrace -w ${PWD}

Steps to reproduce on Arch Linux

git clone https://github.com/Novum/vkQuake
cd vkQuake/Quake
make
cp ../id1 ${PWD}
./vkquake

How do I read Sys_Printf messages on Windows?

Hi,

This may seem like a dumb question but I just can't figure this out. Once you start vkQuake.exe it detaches and there's no stdout whatsoever.

There's -condebug but it only redirects Con_Printf output.

I can't use Con_Printf either because there's no console at the time this runs - I guess.

Also, I can't use Linux because this is the Windows part :)

Any ideas, guys?

Fails with Intel iGPU HD530 Mesa Vulkan driver..

compiled from code cloned today:
I use Ubuntu 16.04 latests padoka ppa

vkQuake 0.30.0 (c) Axel Gneiting
Host_Init
Playing shareware version.
Console initialized.
UDP Initialized
Server using protocol 666 (FitzQuake)
Exe: 19:46:13 Aug 1 2016
256.0 megabyte heap

Vulkan Initialization
Vendor: Intel
Device: Intel(R) HD Graphics 530 (Skylake GT2)
Creating command buffers
Creating swap chain

ERROR-OUT BEGIN

QUAKE ERROR: Couldn't get swap chain images

UnderwaterFX setting is forgotten upon each start

Just what it says in the title. The setting always resets to "Classic" when restarting the game.

Also, if I try to "Test changes" after changing it, nothing will happen (as if no setting was changed).

Have vkQuake pull from the QuakeSpasm svn at compile

Nvidia is supposedly releasing drivers that will allow Vulkan without the use of X.org. I would love to try out vkQuake on Wayland when it's released. I normally use QuakeSpasm svn on Arch Linux. I just do svn pulls very often. I was wondering if you could make it possible at compile time to pull from the QuakeSpasm svn everytime you do a git pull of vkQuake. Is this possible? I always use the latest development version of source ports when I can.

Segfault on startup with Ivy Bridge GPU (Linux)

Getting to Creating Pipelines stage and then segfaults (running Arch Linux with latest updates at this time, DRI3 enabled).

Starting program: /home/jonny/qw/vkquake -window
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Command line: /home/jonny/qw/vkquake -window
Found SDL version 2.0.4
Detected 4 CPUs.
Quake 1.09 (c) id Software
GLQuake 1.00 (c) id Software
FitzQuake 0.85 (c) John Fitzgibbons
FitzQuake SDL port (c) SleepwalkR, Baker
QuakeSpasm 0.92.0 (c) Ozkan Sezer, Eric Wasylishen & others
vkQuake 0.50.0 (c) Axel Gneiting
Host_Init
Playing registered version.
Console initialized.
UDP Initialized
Server using protocol 666 (FitzQuake)
Exe: 23:47:17 Aug  8 2016
256.0 megabyte heap

Vulkan Initialization
WARNING: Ivy Bridge Vulkan support is incomplete
Vendor: Intel
Device: Intel(R) Ivybridge Mobile
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
gen7_pipeline.c:213: FINISHME: VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
Creating command buffers
Creating swap chain
Creating render passes
[Validation ERROR]: Cannot clear attachment 0 with invalid first layout VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL.
Creating color buffer
Creating depth buffer
Creating frame buffers
Initializing staging
Creating descriptor set layouts
Initializing dynamic vertex buffers
Initializing dynamic index buffers
Initializing dynamic uniform buffers
Initializing samplers
Creating pipeline layouts
Creating pipelines

Program received signal SIGSEGV, Segmentation fault.
0x00007fffe0004e05 in anv_nir_apply_pipeline_layout () from /usr/lib/libvulkan_intel.so`

And backtrace:

(gdb) bt
#0  0x00007fffe0004e05 in anv_nir_apply_pipeline_layout () from /usr/lib/libvulkan_intel.so
#1  0x00007fffe0006a34 in ?? () from /usr/lib/libvulkan_intel.so
#2  0x00007fffe00073d0 in ?? () from /usr/lib/libvulkan_intel.so
#3  0x00007fffe00084e7 in anv_pipeline_init () from /usr/lib/libvulkan_intel.so
#4  0x00007fffe016f595 in gen7_graphics_pipeline_create () from /usr/lib/libvulkan_intel.so
#5  0x00007fffe00088fe in anv_CreateGraphicsPipelines () from /usr/lib/libvulkan_intel.so
#6  0x00007fffdf75fe68 in unique_objects::explicit_CreateGraphicsPipelines(VkDevice_T*, VkPipelineCache_T*, unsigned int, VkGraphicsPipelineCreateInfo const*, VkAllocationCallbacks const*, VkPipeline_T**) ()
   from /usr/lib/libVkLayer_unique_objects.so
#7  0x00007fffdf0448fe in core_validation::CreateGraphicsPipelines(VkDevice_T*, VkPipelineCache_T*, unsigned int, VkGraphicsPipelineCreateInfo const*, VkAllocationCallbacks const*, VkPipeline_T**) ()
   from /usr/lib/libVkLayer_core_validation.so
#8  0x00007fffde9ca608 in object_tracker::explicit_CreateGraphicsPipelines(VkDevice_T*, VkPipelineCache_T*, unsigned int, VkGraphicsPipelineCreateInfo const*, VkAllocationCallbacks const*, VkPipeline_T**) ()
   from /usr/lib/libVkLayer_object_tracker.so
#9  0x00007fffde790a2e in parameter_validation::CreateGraphicsPipelines(VkDevice_T*, VkPipelineCache_T*, unsigned int, VkGraphicsPipelineCreateInfo const*, VkAllocationCallbacks const*, VkPipeline_T**) ()
   from /usr/lib/libVkLayer_parameter_validation.so
#10 0x00007fffde53771b in threading::CreateGraphicsPipelines(VkDevice_T*, VkPipelineCache_T*, unsigned int, VkGraphicsPipelineCreateInfo const*, VkAllocationCallbacks const*, VkPipeline_T**) ()
   from /usr/lib/libVkLayer_threading.so
#11 0x000000000040c630 in R_CreatePipelines () at gl_rmisc.c:1465
#12 0x000000000041a724 in VID_Init () at gl_vidsdl.c:1708
#13 0x000000000045bcc6 in Host_Init () at host.c:862
#14 0x0000000000478e3b in main (argc=2, argv=0x7fffffffe9d8) at main_sdl.c:114`

Not sure if it's your fault or if its the Intel drivers that currently suck for Ivy Bridge.

Any clue?

Vkquake fails with latest Nvidia 370.23 driver for Linux

~/vkq/vkQuake/Quake$ ./vkquake
Command line: ./vkquake
Found SDL version 2.0.4
Detected 4 CPUs.
Quake 1.09 (c) id Software
GLQuake 1.00 (c) id Software
FitzQuake 0.85 (c) John Fitzgibbons
FitzQuake SDL port (c) SleepwalkR, Baker
QuakeSpasm 0.92.0 (c) Ozkan Sezer, Eric Wasylishen & others
vkQuake 0.60.0 (c) Axel Gneiting
Host_Init
Playing shareware version.
Console initialized.
UDP Initialized
Server using protocol 666 (FitzQuake)
Exe: 18:17:07 Aug 16 2016
256.0 megabyte heap

Vulkan Initialization
Vendor: NVIDIA
Device: GTX 970
Creating command buffers
Creating swap chain
Creating render passes
Creating color buffer
Creating depth buffer
Creating frame buffers
Initializing staging
Creating descriptor set layouts
Initializing dynamic vertex buffers
Initializing dynamic index buffers
Initializing dynamic uniform buffers
Initializing samplers
Creating pipeline layouts
Creating pipelines
detected controller: PS4 Controller

Sound Initialization
SDL audio spec : 44100 Hz, 512 samples, 2 channels
SDL audio driver: pulseaudio - GM204 High Definition Audio Controller Digital Stereo (HDMI 2), 32768 bytes buffer
Audio: 16 bit, stereo, 44100 Hz
CDAudio disabled at compile time

========= Quake Initialized =========

LTRIGGER is unbound, hit F4 to set.
RTRIGGER is unbound, hit F4 to set.
execing quake.rc
execing default.cfg
execing config.cfg
Unknown command "gl_texture_anisotropy"
Initializing samplers
couldn't exec autoexec.cfg

ERROR-OUT BEGIN

Shutting down SDL sound

QUAKE ERROR: vkWaitForFences failed

Add alpha test support commit breaks open source vulkan drivers

We currently have two open source vulkan drivers, one better known is in mainline mesa for intel GPUs. The other is radv from Dave Airlie for Radeon Tonga and Fiji (http://airlied.livejournal.com/81460.html). They share some common infrastructure.

The Intel one worked good on vkQuake prior to the commit cb1f468

and Radeon one did too (except for the weapons not being show for some reason, but that's another issue). With the mentioned commit parts of the game render black like this
image

I know this is a driver issue, but I'm hoping someone could shed light on why it breaks like this so we can maybe get the drivers fixed.

(the latest versions break because there is no support for InputAttachment in the open source vulkan code, but that's another issue too)

Screen tearing on Nvidia hardware / SteamOS

Performance is of course great. I have screen tearing on Nvidia hardware / SteamOS. Running a GTX 1080 with driver release 367.27.

I noticed that even though many directories and files were renamed from quakespasm to vkquake. The dotfile (~/.quakespasm) is not renamed.

Linux Build Failure/Regression - Undefined references in gl_rmisc.c

Hi, just attempted to recompile with the lastest HEAD, failing with undefined references in gl_rmisc.c now (Ubuntu 16.04 64-bit). Digging through the history for that file, though, this doesn't look like it's been touched specifically for a while. I'll see if I can dig out a specific commit.

cc strlcat.o strlcpy.o gl_refrag.o gl_rlight.o gl_rmain.o gl_fog.o gl_rmisc.o r_part.o r_world.o gl_screen.o gl_sky.o gl_warp.o gl_vidsdl.o gl_draw.o image.o gl_texmgr.o gl_mesh.o r_sprite.o r_alias.o r_brush.o gl_model.o in_sdl.o snd_dma.o snd_mix.o snd_mem.o bgmusic.o snd_codec.o snd_flac.o snd_wave.o snd_vorbis.o snd_opus.o snd_mp3.o snd_mikmod.o snd_modplug.o snd_umx.o snd_sdl.o cd_sdl.o net_bsd.o net_udp.o net_dgrm.o net_loop.o net_main.o chase.o cl_demo.o cl_input.o cl_main.o cl_parse.o cl_tent.o console.o keys.o menu.o sbar.o view.o wad.o cmd.o common.o crc.o cvar.o cfgfile.o host.o host_cmd.o mathlib.o pr_cmds.o pr_edict.o pr_exec.o sv_main.o sv_move.o sv_phys.o sv_user.o world.o zone.o pl_linux.o sys_sdl_unix.o main_sdl.o ../Shaders/Compiled/alias_frag.c ../Shaders/Compiled/alias_vert.c ../Shaders/Compiled/basic_alphatest_frag.c ../Shaders/Compiled/basic_frag.c ../Shaders/Compiled/basic_notex_frag.c ../Shaders/Compiled/basic_vert.c ../Shaders/Compiled/sky_layer_frag.c ../Shaders/Compiled/sky_layer_vert.c ../Shaders/Compiled/world_frag.c ../Shaders/Compiled/world_vert.c -L/lib -lm -l:libvulkan.so.1 -lX11-xcb -lvorbisfile -lvorbis -logg -lmad -L/usr/lib/x86_64-linux-gnu -lSDL2 -o vkquake
gl_rmisc.o: In function R_CreatePipelines': gl_rmisc.c:(.text+0x1bcb): undefined reference topostprocess_vert_spv_size'
gl_rmisc.c:(.text+0x1bd0): undefined reference to postprocess_vert_spv' gl_rmisc.c:(.text+0x1be0): undefined reference topostprocess_frag_spv_size'
gl_rmisc.c:(.text+0x1be5): undefined reference to `postprocess_frag_spv'
collect2: error: ld returned 1 exit status
Makefile:307: recipe for target 'vkquake' failed
make: *** [vkquake] Error 1

Antialiasing is too slow

Please, allow setting different MSAA values.

8x is too high for a laptop equipped w/ Ivy Bridge integrated videocard (FPS < 15). Either that or the algorithm is not implemented properly :)

[Ubuntu 16.10] Compilation error: No rule to make target 'screen_warp_comp.o', needed by 'vkquake'. Stop.

Hi,

trying to build vkquake 0.90 on Ubuntu 16.10 there is this compilation error:

cc  -DNDEBUG -c -g -O2 -fdebug-prefix-map=/«PKGBUILDDIR»=. -fstack-protector-strong -Wformat -Werror=format-security  -O2 -std=gnu99 -fweb -frename-registers -I/include -DLINUX -DVK_USE_PLATFORM_XCB_KHR -DUSE_SDL2 -DUSE_CODEC_WAVE -DUSE_CODEC_VORBIS  -DUSE_CODEC_MP3 -I/usr/include/SDL2 -D_REENTRANT -o basic_alphatest_frag.o ../Shaders/Compiled/basic_alphatest_frag.c
make[1]: *** No rule to make target 'screen_warp_comp.o', needed by 'vkquake'.  Stop.

This is the complete build log:
http://zulu309.server4you.de/build/logs/vkquake_0.90-1~getdeb1-i386-20161205-2246

Can someone please have a look?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.