NVIDIA / Q2RTX

NVIDIA’s implementation of RTX ray-tracing in Quake II
Other
1.22k stars 184 forks source link

New release? #147

Closed DadSchoorse closed 2 years ago

DadSchoorse commented 3 years ago

The current release and what's available on e.g. Steam does not work with RADV, which recently added an initial RT implementation. e5f75f476102217f809fcc946163ae6d3419e5d7 is needed to start the game, because RADV only reports two queue families (general and compute). So it would be nice if there was a new release with that commit included.

mercuriete commented 3 years ago

I have the exact same problem:

AMD 6900XT environmental variable

RADV_PERFTEST=rt

output:

FATAL: Could not find a suitable Vulkan queue family!

Please do a new release on steam.

Squall-Leonhart commented 3 years ago

This is a bug in RADV, any driver implementing vulkan-rt should be capable of running on the graphics(transfer) queue

mercuriete commented 3 years ago

That I think is a game bug because the queue 0 is graphic, compute and Transfer. You dont need to use diferent queues you can use the first one that fits in your pourpose.

https://vulkan.gpuinfo.org/displayreport.php?id=13143#queuefamilies

Squall-Leonhart commented 3 years ago

And yet QuakeRTX is doing exactly that, but RADV falls over itself.

Not the first time RADV has issues with the transfer queue either.

DadSchoorse commented 3 years ago

RADV doesn't have an issue with the transfer queue, RADV has no dedicated transfer queue. That's not a radv bug, Q2RTX just makes wrong assumptions.

Squall-Leonhart commented 3 years ago

Then RADV is in the wrong, relearn the vulkan spec

misyltoad commented 3 years ago

Please feel free to point out where Vulkan demands an dedicated transfer queue.

Don't worry, we'll wait!

Squall-Leonhart commented 3 years ago

no they didn't, learn to read source code thanks.

PMunkes commented 3 years ago

Devices must only support one queue family and transfer capabilities are OPTIONAL. https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-queuesimage image

PMunkes commented 3 years ago

@Squall-Leonhart The current HEAD works on RADV (performance is currently not great, but it works). image

PMunkes commented 3 years ago

@Squall-Leonhart Q2RTX was initializing 3 separate queues before e5f75f47, one for compute, one for graphics and one for transfers. The proprietary drivers provided at least three separate queue families (graphics+compute+transfer and compute+transfer and transfer), while RADV only provides two families (graphics+compute+transfer and compute+transfer). Since the commit removed the dependency on a third queue (which was not required from a conformant implementation by the specification) the Compute+Transfer queue of RADV could be used for transfers.

RADV: image AMD proprietary: image

apanteleev commented 3 years ago

Just letting everyone know: we heard you, and a new release should be ready sometime soon. In the meantime, you can use the prebuilt binaries from the new CI pipeline, here

DadSchoorse commented 2 years ago

https://github.com/NVIDIA/Q2RTX/releases/tag/v1.6.0 thanks!

mercuriete commented 2 years ago

Thanks for the release! ❤️❤️

ChrisDeadman commented 2 years ago

I get segmentation fault when trying to start the new version :( I am running RADV with latest Mesa 22.0.0-devel (git-4198ca4b3f).

==131663== 1 errors in context 1 of 2:
==131663== Invalid read of size 4
==131663==    at 0x2DB8FF78: ??? (in /usr/lib/libvulkan_radeon.so)
==131663==    by 0x2DB7480C: ??? (in /usr/lib/libvulkan_radeon.so)
==131663==    by 0x2DB7C523: ??? (in /usr/lib/libvulkan_radeon.so)
==131663==    by 0x2DB7C95A: ??? (in /usr/lib/libvulkan_radeon.so)
==131663==    by 0x56C9CB: vkpt_vertex_buffer_create_pipelines (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x51ADE7: vkpt_initialize_all (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x527EAD: R_Init_RTX (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x4310FD: CL_InitRefresh (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x42860B: CL_Init (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x46C2E7: Qcommon_Init (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x4BB5AA: main (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==  Address 0x60 is not stack'd, malloc'd or (recently) free'd
==131663== 
==131663== 
==131663== 1 errors in context 2 of 2:
==131663== Use of uninitialised value of size 8
==131663==    at 0x2DB8FF78: ??? (in /usr/lib/libvulkan_radeon.so)
==131663==    by 0x2DB7480C: ??? (in /usr/lib/libvulkan_radeon.so)
==131663==    by 0x2DB7C523: ??? (in /usr/lib/libvulkan_radeon.so)
==131663==    by 0x2DB7C95A: ??? (in /usr/lib/libvulkan_radeon.so)
==131663==    by 0x56C9CB: vkpt_vertex_buffer_create_pipelines (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x51ADE7: vkpt_initialize_all (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x527EAD: R_Init_RTX (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x4310FD: CL_InitRefresh (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x42860B: CL_Init (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x46C2E7: Qcommon_Init (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)
==131663==    by 0x4BB5AA: main (in /run/media/deadman/LinuxGames/steam/steamapps/common/Quake II RTX/q2rtx)