libretro / parallel-n64

Optimized/rewritten Nintendo 64 emulator made specifically for Libretro. Originally based on Mupen64 Plus.
319 stars 127 forks source link

Failed to allocate RDRAM #645

Open marrub-- opened 4 years ago

marrub-- commented 4 years ago

Upon launching any game with the new parallel RDP/RSP, retroarch crashes with "Failed to allocate RDRAM."

Backtrace:

#0  __GI___pthread_mutex_lock (mutex=0x1468) at ../nptl/pthread_mutex_lock.c:67
#1  0x00007fffbfd984af in __gthread_mutex_lock (__mutex=0x1468)
    at /usr/include/c++/9.3/x86_64-unknown-linux-gnu/bits/gthr-default.h:749
#2  0x00007fffbfd98500 in std::mutex::lock (this=0x1468)
    at /usr/include/c++/9.3/bits/std_mutex.h:100
#3  0x00007fffbfda1f1a in std::lock_guard<std::mutex>::lock_guard (
    this=0x7fffd3ffea20, __m=...) at /usr/include/c++/9.3/bits/std_mutex.h:159
#4  0x00007fffbfdee596 in Vulkan::Device::submit_empty (this=0x0,
    type=Vulkan::CommandBuffer::Type::AsyncCompute, fence=0x7fffd3ffead0,
    semaphore_count=0, semaphores=0x0)
    at mupen64plus-video-paraLLEl/parallel-rdp/vulkan/device.cpp:1042
#5  0x00007fffbfda599b in RDP::Renderer::flush_and_signal (this=0x55555a286410)
    at mupen64plus-video-paraLLEl/parallel-rdp/parallel-rdp/rdp_renderer.cpp:528
#6  0x00007fffbfdb94c6 in RDP::CommandProcessor::enqueue_command_direct (
    this=0x55555a2862a0, num_words=3, words=0x7fffdc000b80)
    at mupen64plus-video-paraLLEl/parallel-rdp/parallel-rdp/rdp_device.cpp:802
#7  0x00007fffbfda1d12 in RDP::CommandRing::thread_loop (this=0x55555a2862d8)
    at mupen64plus-video-paraLLEl/parallel-rdp/parallel-rdp/command_ring.cpp:117
#8  0x00007fffbfda38a9 in std::__invoke_impl<void, void (RDP::CommandRing::*)(),
 RDP::CommandRing*> (
    __f=@0x555557547e20: (void (RDP::CommandRing::*)(class RDP::CommandRing * co
nst)) 0x7fffbfda1b6c <RDP::CommandRing::thread_loop()>,
    __t=@0x555557547e18: 0x55555a2862d8)
    at /usr/include/c++/9.3/bits/invoke.h:73
#9  0x00007fffbfda37d7 in std::__invoke<void (RDP::CommandRing::*)(), RDP::Comma
ndRing*> (
    __fn=@0x555557547e20: (void (RDP::CommandRing::*)(class RDP::CommandRing * c
onst)) 0x7fffbfda1b6c <RDP::CommandRing::thread_loop()>)
    at /usr/include/c++/9.3/bits/invoke.h:95
#10 0x00007fffbfda3737 in std::thread::_Invoker<std::tuple<void (RDP::CommandRin
g::*)(), RDP::CommandRing*> >::_M_invoke<0ul, 1ul> (this=0x555557547e18)
    at /usr/include/c++/9.3/thread:244
#11 0x00007fffbfda36dd in std::thread::_Invoker<std::tuple<void (RDP::CommandRin
g::*)(), RDP::CommandRing*> >::operator() (this=0x555557547e18)
    at /usr/include/c++/9.3/thread:251

vulkaninfo dump

Drivers: mesa-20.0.4_1, xf86-video-amdgpu-19.1.0_2 GPU: Radeon RX 590 VRAM: 8GiB WRAM: 16GiB (ECC)

mudlord commented 4 years ago

Could be a Radeon driver issue?