• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › Support v
« Previous 1 ... 315 316 317 318 319 ... 1190 Next »

Vulkan + Win10 x64 + Intel Skull Canyon NUC (Iris Pro 580) = Broken
View New Posts | View Today's Posts

Pages (2): 1 2 Next »
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
Vulkan + Win10 x64 + Intel Skull Canyon NUC (Iris Pro 580) = Broken
06-16-2017, 07:40 AM
#1
xhsmd Offline
Junior Member
**
Posts: 9
Threads: 1
Joined: Jun 2017
I'm not entirely daft, so I'll try and help out as much as I can.

Intel Skull Canyon NUC (NUC6i7KYB) works perfectly on Linux (tested on Fedora 26, OpenGL and/or Vulkan, no issues). On Windows 10, Vulkan will not work.

Using the latest build (as at right now: 5.0-4337) and some previous builds, Dolphin will hang and eventually crash before anything is displayed.

Compiling and running Dolphin in debug, the last line of code before it eventually hangs and subsequently crashes is in ./Core/VideoBackends/Vulkan/ObjectCache.cpp Line 362/363:

Code:
VkResult res = vkCreateGraphicsPipelines(g_vulkan_context->GetDevice(), m_pipeline_cache, 1,
                                          &pipeline_info, nullptr, &pipeline);

Trying to follow the code from this point leads me to: /Windows/System32/DriverStore/FileRepository/igdlh64.inf_amd64_6d1fd205efa7f979/igc64.dll

Dolphin will not reach line 364:
Code:
if (res != VK_SUCCESS)

Eventually it will crash after pretty much consuming all available ram (in this case, 32GB).

The error message is as follows:
Code:
Unhandled exception at 0x00007FFD4F8EBBEF (ntdll.dll) in DolphinD.exe: 0xC0000005: Access violation writing location 0x0000000000000024. occurred]

PS: I'm only a hobbyist programmer. I've coded a fair few applications in C/C++ before but have never worked on any team based projects, only my own, and have never really used Visual Studio to it's full before. I can help diagnose this issue as much as possible but you will have to point me in the right direction (Basically, talk to me like I'm an idiot, tell me what to click and tell me what to copy and paste).
Find
Reply
06-16-2017, 08:26 AM
#2
Helios Offline
Stellaaaaaaa
**********
Developers (Some Administrators and Super Moderators)
Posts: 4,397
Threads: 15
Joined: May 2012
I think theres a known issue in Intel's Vulkan driver on Windows. None of the graphics devs can reproduce it though so nobody has looked into seeing if a workaround could be implemented because reporting driver bugs to Intel is impossible afaik
Find
Reply
06-16-2017, 08:50 AM
#3
xhsmd Offline
Junior Member
**
Posts: 9
Threads: 1
Joined: Jun 2017
(06-16-2017, 08:26 AM)Helios Wrote: I think theres a known issue in Intel's Vulkan driver on Windows. None of the graphics devs can reproduce it though so nobody has looked into seeing if a workaround could be implemented because reporting driver bugs to Intel is impossible afaik

As it appears my system may be one of the ones affected, and as I have no real sensitive information on my Windows installation, if any graphic developers are interested in figuring this out I'm more than happy allowing them to remote my machine to try and work it out.
Find
Reply
06-16-2017, 10:06 AM
#4
shuffle2 Offline
godisgovernment
*
Project Owner  Developers (Administrators)
Posts: 698
Threads: 17
Joined: Mar 2009
If you compile and run debug build of dolphin, visual studio should show you the callstack when it crashes. can you paste that here?
You could also use VS to create a dump (e.g. https://blogs.msdn.microsoft.com/debugger/2009/12/30/what-is-a-dump-and-how-do-i-create-one/ ) and then post a link here so someone can look at it.
However, since it is likely an intel problem, it may be the most we can do is find out what intel is doing wrong.
Find
Reply
06-16-2017, 06:01 PM
#5
xhsmd Offline
Junior Member
**
Posts: 9
Threads: 1
Joined: Jun 2017
Call stack:
Code:
ntdll.dll!00007ffd4f8ebbef() Unknown
ntdll.dll!00007ffd4f8c4571() Unknown
ntdll.dll!00007ffd4f8c4490() Unknown
igc64.dll!00007ffd44fd6e67() Unknown
igc64.dll!00007ffd44fb7b9c() Unknown
igc64.dll!00007ffd44fb7bd9() Unknown
igc64.dll!00007ffd45122eba() Unknown
igc64.dll!00007ffd44fec8ab() Unknown
igc64.dll!00007ffd44f04921() Unknown
igc64.dll!00007ffd44d59280() Unknown
igc64.dll!00007ffd44d61976() Unknown
igc64.dll!00007ffd44d68277() Unknown
igc64.dll!00007ffd44d5a261() Unknown
igc64.dll!00007ffd44f1093a() Unknown
igc64.dll!00007ffd44d68631() Unknown
igc64.dll!00007ffd4497c757() Unknown
igc64.dll!00007ffd4503a2d3() Unknown
igc64.dll!00007ffd4509d746() Unknown
igc64.dll!00007ffd4509d48c() Unknown
igc64.dll!00007ffd4509d21f() Unknown
igvk64.dll!00007ffd15f27a4e() Unknown
igvk64.dll!00007ffd15f11ee3() Unknown
igvk64.dll!00007ffd15f01f90() Unknown
igvk64.dll!00007ffd15f44267() Unknown
> DolphinD.exe!Vulkan::ObjectCache::CreatePipeline(const Vulkan::PipelineInfo & info) Line 362 C++
DolphinD.exe!Vulkan::ObjectCache::GetPipelineWithCacheResult(const Vulkan::PipelineInfo & info) Line 384 C++
DolphinD.exe!Vulkan::StateTracker::GetPipelineAndCacheUID(const Vulkan::PipelineInfo & info) Line 876 C++
DolphinD.exe!Vulkan::StateTracker::UpdatePipeline() Line 889 C++
DolphinD.exe!Vulkan::StateTracker::Bind(bool rebind_all) Line 686 C++
DolphinD.exe!Vulkan::VertexManager::vFlush() Line 198 C++
DolphinD.exe!VertexManagerBase::Flush() Line 306 C++
DolphinD.exe!XFRegWritten(int transferSize, unsigned int baseAddress, DataReader src) Line 138 C++
DolphinD.exe!LoadXFReg(unsigned int transferSize, unsigned int baseAddress, DataReader src) Line 246 C++
DolphinD.exe!OpcodeDecoder::Run<0>(DataReader src, unsigned int * cycles, bool in_display_list) Line 135 C++
DolphinD.exe!Fifo::RunGpuLoop::__l2::<lambda>() Line 352 C++
DolphinD.exe!Common::BlockingLoop::Run<void <lambda>(void) >(Fifo::RunGpuLoop::__l2::void <lambda>(void) payload, __int64 timeout) Line 130 C++
DolphinD.exe!Fifo::RunGpuLoop() Line 393 C++
DolphinD.exe!Core::EmuThread(std::unique_ptr<BootParameters,std::default_delete<BootParameters> > boot) Line 612 C++
DolphinD.exe!std::_Invoker_functor::_Call<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >(void(*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >) && _Obj, std::unique_ptr<BootParameters,std::default_delete<BootParameters> > && <_Args_0>) Line 1534 C++
DolphinD.exe!std::invoke<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >(void(*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >) && _Obj, std::unique_ptr<BootParameters,std::default_delete<BootParameters> > && <_Args_0>) Line 1534 C++
DolphinD.exe!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >,std::default_delete<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > > > >::_Execute<0,1>(std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > & _Tup, std::integer_sequence<unsigned __int64,0,1> __formal) Line 241 C++
DolphinD.exe!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >,std::default_delete<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > > > >::_Run(std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >,std::default_delete<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > > > > * _Ln) Line 247 C++
DolphinD.exe!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >,std::default_delete<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > > > >::_Go() Line 233 C++
DolphinD.exe!std::_Pad::_Call_func(void * _Data) Line 211 C++
[External Code]

Dump will take a while for me to upload with the heap (56GB).
Find
Reply
06-16-2017, 06:08 PM
#6
shuffle2 Offline
godisgovernment
*
Project Owner  Developers (Administrators)
Posts: 698
Threads: 17
Joined: Mar 2009
thanks for the info. could you post your igc64.dll, and also repaste the callstack after loading/showing symbols for ntdll? (right click on ntdll and load symbols. you may have to go into settings and enable the microsoft symbol server).
A dump without the heap is probably ok. fwiw it probably compresses well.
Find
Reply
06-16-2017, 06:51 PM
#7
xhsmd Offline
Junior Member
**
Posts: 9
Threads: 1
Joined: Jun 2017
(06-16-2017, 06:08 PM)shuffle2 Wrote: thanks for the info. could you post your igc64.dll, and also repaste the callstack after loading/showing symbols for ntdll? (right click on ntdll and load symbols. you may have to go into settings and enable the microsoft symbol server).
A dump without the heap is probably ok. fwiw it probably compresses well.

I've let it compress while at work. I'll get back to you with this info in ~8hrs time.
Find
Reply
06-17-2017, 07:40 AM
#8
xhsmd Offline
Junior Member
**
Posts: 9
Threads: 1
Joined: Jun 2017
Updated to 5.0-4398

Error Message:
Code:
Unhandled exception at 0x00007FFD4F8EBBEF (ntdll.dll) in DolphinD.exe: 0xC0000005: Access violation writing location 0x0000000000000024. occurred

Call Stack:
Code:
    ntdll.dll!RtlpWaitOnCriticalSection()    Unknown
    ntdll.dll!RtlpEnterCriticalSectionContended()    Unknown
    ntdll.dll!RtlEnterCriticalSection()    Unknown
    igc64.dll!00007ffd44fd6e67()    Unknown
    igc64.dll!00007ffd44fb7b9c()    Unknown
    igc64.dll!00007ffd44fb7bd9()    Unknown
    igc64.dll!00007ffd45122eba()    Unknown
    igc64.dll!00007ffd44fec8ab()    Unknown
    igc64.dll!00007ffd44f04921()    Unknown
    igc64.dll!00007ffd44d59280()    Unknown
    igc64.dll!00007ffd44d61976()    Unknown
    igc64.dll!00007ffd44d68277()    Unknown
    igc64.dll!00007ffd44d5a261()    Unknown
    igc64.dll!00007ffd44f1093a()    Unknown
    igc64.dll!00007ffd44d68631()    Unknown
    igc64.dll!00007ffd4497c757()    Unknown
    igc64.dll!00007ffd4503a2d3()    Unknown
    igc64.dll!00007ffd4509d746()    Unknown
    igc64.dll!00007ffd4509d48c()    Unknown
    igc64.dll!00007ffd4509d21f()    Unknown
    igvk64.dll!00007ffd1cf27a4e()    Unknown
    igvk64.dll!00007ffd1cf11ee3()    Unknown
    igvk64.dll!00007ffd1cf01f90()    Unknown
    igvk64.dll!00007ffd1cf44267()    Unknown
>    DolphinD.exe!Vulkan::ObjectCache::CreatePipeline(const Vulkan::PipelineInfo & info) Line 362    C++
    DolphinD.exe!Vulkan::ObjectCache::GetPipelineWithCacheResult(const Vulkan::PipelineInfo & info) Line 384    C++
    DolphinD.exe!Vulkan::StateTracker::GetPipelineAndCacheUID(const Vulkan::PipelineInfo & info) Line 876    C++
    DolphinD.exe!Vulkan::StateTracker::UpdatePipeline() Line 889    C++
    DolphinD.exe!Vulkan::StateTracker::Bind(bool rebind_all) Line 686    C++
    DolphinD.exe!Vulkan::VertexManager::vFlush() Line 198    C++
    DolphinD.exe!VertexManagerBase::Flush() Line 306    C++
    DolphinD.exe!XFRegWritten(int transferSize, unsigned int baseAddress, DataReader src) Line 138    C++
    DolphinD.exe!LoadXFReg(unsigned int transferSize, unsigned int baseAddress, DataReader src) Line 246    C++
    DolphinD.exe!OpcodeDecoder::Run<0>(DataReader src, unsigned int * cycles, bool in_display_list) Line 135    C++
    DolphinD.exe!Fifo::RunGpuLoop::__l2::<lambda>() Line 352    C++
    DolphinD.exe!Common::BlockingLoop::Run<void <lambda>(void) >(Fifo::RunGpuLoop::__l2::void <lambda>(void) payload, __int64 timeout) Line 130    C++
    DolphinD.exe!Fifo::RunGpuLoop() Line 393    C++
    DolphinD.exe!Core::EmuThread(std::unique_ptr<BootParameters,std::default_delete<BootParameters> > boot) Line 613    C++
    DolphinD.exe!std::_Invoker_functor::_Call<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >(void(*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >) && _Obj, std::unique_ptr<BootParameters,std::default_delete<BootParameters> > && <_Args_0>) Line 1534    C++
    DolphinD.exe!std::invoke<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >(void(*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >) && _Obj, std::unique_ptr<BootParameters,std::default_delete<BootParameters> > && <_Args_0>) Line 1534    C++
    DolphinD.exe!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >,std::default_delete<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > > > >::_Execute<0,1>(std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > & _Tup, std::integer_sequence<unsigned __int64,0,1> __formal) Line 241    C++
    DolphinD.exe!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >,std::default_delete<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > > > >::_Run(std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >,std::default_delete<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > > > > * _Ln) Line 247    C++
    DolphinD.exe!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > >,std::default_delete<std::tuple<void (__cdecl*)(std::unique_ptr<BootParameters,std::default_delete<BootParameters> >),std::unique_ptr<BootParameters,std::default_delete<BootParameters> > > > > >::_Go() Line 233    C++
    DolphinD.exe!std::_Pad::_Call_func(void * _Data) Line 211    C++
    [External Code]

Dump With Heap, igc64.dll, and igvk64.dll:
https://www.dropbox.com/s/l745gopto7vh4eq/RequestedFiles.7z?dl=0
Find
Reply
06-17-2017, 09:20 AM (This post was last modified: 06-17-2017, 09:36 AM by shuffle2.)
#9
shuffle2 Offline
godisgovernment
*
Project Owner  Developers (Administrators)
Posts: 698
Threads: 17
Joined: Mar 2009
Thanks for the stuff. Here is the cause of the crash:

igc64.dll is causing the crash because it uses an uninitialized critical section object.
Code:
.data:000000018092CFD8 ; struct _RTL_CRITICAL_SECTION g_crit_sec_bad
.data:000000018092CFD8 g_crit_sec_bad _RTL_CRITICAL_SECTION <?>
.data:000000018092CFD8                                         ; DATA XREF: sub_180676E50+Ao
.data:000000018092CFD8                                         ; sub_180676E50:loc_180676F3Fo
sub_180676E50 is the only use of this object, and the function only calls EnterCriticalSection/LeaveCriticalSection.
As documented on msdn, these objects must be initialized (usually with InitializeCriticalSection): https://msdn.microsoft.com/en-us/library/windows/desktop/ms682608(v=vs.85).aspx


If you want, I could provide a build which patches in the correct functionality, but I would not want to add that hack to dolphin permanently. This is a problem Intel has to solve unfortunately. You could try to see if some drivers from their site are more recent and have a fix?
Find
Reply
06-17-2017, 05:50 PM
#10
xhsmd Offline
Junior Member
**
Posts: 9
Threads: 1
Joined: Jun 2017
(06-17-2017, 09:20 AM)shuffle2 Wrote: Thanks for the stuff. Here is the cause of the crash:

igc64.dll is causing the crash because it uses an uninitialized critical section object.

Code:
.data:000000018092CFD8 ; struct _RTL_CRITICAL_SECTION g_crit_sec_bad
.data:000000018092CFD8 g_crit_sec_bad _RTL_CRITICAL_SECTION <?>
.data:000000018092CFD8                                         ; DATA XREF: sub_180676E50+Ao
.data:000000018092CFD8                                         ; sub_180676E50:loc_180676F3Fo
sub_180676E50 is the only use of this object, and the function only calls EnterCriticalSection/LeaveCriticalSection.
As documented on msdn, these objects must be initialized (usually with InitializeCriticalSection): https://msdn.microsoft.com/en-us/library/windows/desktop/ms682608(v=vs.85).aspx


If you want, I could provide a build which patches in the correct functionality, but I would not want to add that hack to dolphin permanently. This is a problem Intel has to solve unfortunately. You could try to see if some drivers from their site are more recent and have a fix?

I wouldn't want you to go out of your way for something that is probably only affecting a minority of Dolphin users. I mostly use Linux on this machine where it works perfectly already. I would be lying though if I said I wasn't curious as to what the fix is.

I'm aware that Intel have really dropped the ball with their GPU drivers. I got this machine pretty much at release because I was/am interested in learning Vulkan. I'll have a look to see if there are any more recent updates for their other GPUs and see if that works.

Anyway, thank you for looking into this.
Find
Reply
« Next Oldest | Next Newest »
Pages (2): 1 2 Next »


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode