Unhandled exception at 0x0040C0CE in Fragmentarium-2.5.0.exe: 0xC0000005: Access

  • 17 Replies
  • 216 Views

0 Members and 1 Guest are viewing this topic.

Offline Michael_Z_Freeman

  • *
  • Fractal Friend
  • **
  • Posts: 12
« on: March 13, 2019, 04:49:45 PM »
Hi,

https://github.com/3Dickulus/FragM/issues/37

I added requested report info that is asked for in the FAQ to that issue ...

Quote
Windows 10, AMD R9 380.

Fragmentarium 2.5.0 installed using the installer version. Although I get the same error with the archive version.

I also tried the TDR Registry Keys but it made no difference.

I also started to build Fragmentarium on my Ubuntu machine just to see if I can getting it working there although it has a very basic GPU and I don't have Linux installed on my Windows machine. However if I can get it working on Linux I might install Linux on my Windows machine, or use a live cd or something like that.

I follow the guide at https://en.wikibooks.org/wiki/Fractals/fragmentarium#Get_v2.0.0 ... but get ...
Code: [Select]
MichaelZFreeman@linux-freeman-G41MT-S2PT ~
$ sudo apt-get install qtcreator-latest
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies.
 qtcreator-latest : Depends: qt57creator but it is not installable
                    Depends: qt57creator-doc but it is not installable
E: Unable to correct problems, you have held broken packages.

I am unable to find the packages in any of the Ubuntu or Debian repositories. Neither can I find another PPA with it.

I would really like to, somehow, get Fragmentarium working as I'm really getting into VJ'ing and visuals along to my tracks now. It's about time more of these wonders were got out there in front of people !  ;D

EDIT: I also tried installing the ".deb" package on Ubuntu 18.04 but it can't find a lot of packages that are only in "Trusty". I added those repositories ("main" and all the rest) but then get ...

Code: [Select]
MichaelZFreeman@linux-freeman-G41MT-S2PT ~
$ sudo dpkg -i Downloads/libproxy1_0.4.11-0ubuntu4_amd64.deb
Selecting previously unselected package libproxy1:amd64.
dpkg: regarding .../libproxy1_0.4.11-0ubuntu4_amd64.deb containing libproxy1:amd64:
 libproxy1v5:amd64 conflicts with libproxy1
  libproxy1:amd64 (version 0.4.11-0ubuntu4) is to be installed.

dpkg: error processing archive Downloads/libproxy1_0.4.11-0ubuntu4_amd64.deb (--install):
 conflicting packages - not installing libproxy1:amd64
Errors were encountered while processing:
 Downloads/libproxy1_0.4.11-0ubuntu4_amd64.deb

UPDATE:
I also loaded up a Live DVD of Suse Leap 15, installed the rpm and Fragmentarium threw a "Segmentation fault (core dumped)". I'm not sure how to retrieve any output from that if that would be helpful.
« Last Edit: March 13, 2019, 08:29:49 PM by Michael_Z_Freeman »

Offline 3DickUlus

  • *
  • 3e
  • *****
  • Posts: 1048
    • Digilantism
« Reply #1 on: March 14, 2019, 05:13:25 AM »
the deb file is for Ubuntu 16.0.4 Xenial and not expected to run on anything else
a live SuSE cd may not have everything required by FragM, like ffmpeg or mencoder and OpenEXR binaries (although internal testing for their presence should prevent problems because we don't call what doesn't exist, windows version does contain standalone OpenEXR binaries )

the 2.0.0 compile instructions are not valid for 2.5.0 (I know wiki needs updating badly)

here are the preliminary steps taken by Travis to build on Ubuntu...

Code: [Select]
      sudo add-apt-repository -y ppa:ubuntu-sdk-team/ppa
      sudo apt-get update -qq
      sudo apt-get -qq install cmake
      sudo apt-get -qq install extra-cmake-modules
      sudo apt-get -qq install libopenexr-dev
      sudo apt-get -qq install libilmbase-dev
      sudo apt-get -qq install qttools5-dev-tools
      sudo apt-get -qq install qtbase5-dev
      sudo apt-get -qq install qtbase5-dev-tools
      sudo apt-get -qq install qtscript5-dev
      sudo apt-get -qq install libqt5scripttools5
      sudo apt-get -qq install libqt5svg5-dev
      sudo apt-get -qq install libqt5opengl5-dev
      sudo apt-get -qq install libqt5xmlpatterns5-dev

...this should work for any version of Ubuntu
Resistance is fertile... you will be illuminated!

https://en.wikibooks.org/wiki/Fractals/fragmentarium

Offline Michael_Z_Freeman

  • *
  • Fractal Friend
  • **
  • Posts: 12
« Reply #2 on: March 14, 2019, 06:08:31 PM »
Cheers.  ;D. It's now built. I set the ubuntu-sdk-team ppa to "xenial" (this is on 18.04/Bionic. There seems to be an extra dependency that needs to be in that list ... "sudo apt-get install qttools5-dev". Install that and cmake complains about missing "Qt5LinguistToolsConfig.cmake" even though it's listed in that package. Actually need to "sudo apt-get install qttools5-dev"  as well ( see https://stackoverflow.com/questions/51698075/cmake-cannot-find-qt5linguisttools-in-docker-ubuntu-18-04 ).

So now for the Windows build with debug symbols.

Offline 3DickUlus

  • *
  • 3e
  • *****
  • Posts: 1048
    • Digilantism
« Reply #3 on: March 15, 2019, 01:45:00 AM »
Is Ubuntu on the AMD machine ? does FragM run there now ?

Offline Michael_Z_Freeman

  • *
  • Fractal Friend
  • **
  • Posts: 12
« Reply #4 on: March 15, 2019, 12:10:12 PM »
Ubuntu is not on my AMD machine at the moment, although I am looking into using WUBI as, in the past, a full install of Linux  messed up my boot menu and I lost access to Windows for 48 hours  :'(. But I'm curious to see what will happen as well.

Offline Michael_Z_Freeman

  • *
  • Fractal Friend
  • **
  • Posts: 12
« Reply #5 on: March 16, 2019, 06:42:15 PM »
Is Ubuntu on the AMD machine ? does FragM run there now ?

OK. I managed to get Kubuntu installed to test with the AMD card. Built FragM OK. Then the great moment ! ...

Segmentation fault (core dumped).

So how to build with symbols and examine the core dump with a debugger ?

I should also mention I made a mistake in my previous post. I was referring to the package "qttools5-dev-tools" in your post about all the packages that need to be installed. That requires a further package "qttools5-dev" so that cmake can find "Qt5LinguistToolsConfig.cmake" even though that's actually in qttools5-dev-tools (don't ask me why).

So I've also been trying to build FragM for Windows. I've used MingW before and started trying to use Visual Studio 2017 for the build. There is a VS "workload", or whatever its called, for Linux/MingW that can be installed using the VS installer. Does FragM cmake build generate a VS solution file ? As that suddenly appeared from nowhere so I'm not sure where it came from.

So how do I build for Windows ? I should probably be doing the cross build to Windows in Linux  ?

Offline 3DickUlus

  • *
  • 3e
  • *****
  • Posts: 1048
    • Digilantism
« Reply #6 on: March 16, 2019, 07:31:12 PM »
in the CMakeLists.txt file look for the line set ( CMAKE_BUILD_TYPE Release ) and change it to set ( CMAKE_BUILD_TYPE Debug )

Quote
So how to build with symbols and examine the core dump with a debugger ?
this is something you should know how to do before attempting to compile FragM :-X

the setup process for Xenial I posted installs everything required on the  remoteTravis build machine, I don't use Ubuntu locally and I only use it on Travis because that's all they offer for remote build.

Quote
As that suddenly appeared from nowhere so I'm not sure where it came from.
one of the reasons I don't use VS or Windows ;)


Offline 3DickUlus

  • *
  • 3e
  • *****
  • Posts: 1048
    • Digilantism
« Reply #7 on: March 16, 2019, 10:00:30 PM »
ok did some rumaging around, tested the preprocessed GLSL script on radeon shader analyser and I think I found at least one thing that is probably contributing to problems on gfx cards other than nVidia...

at the beggining of the file Examples/Include/MathUtils.frag

Code: [Select]
#ifdef WANG_HASH
// required for Wang hash, placing this here means this file must be the first #included file
#extension GL_ARB_shader_bit_encoding : enable
#extension GL_EXT_gpu_shader4 : enable
#extension GL_ARB_gpu_shader5 : enable
#endif

#extension GL_ARB_gpu_shader_int64 : enable
#extension GL_NV_shader_buffer_load : enable
should be...
Code: [Select]
#ifdef WANG_HASH
// required for Wang hash, placing this here means this file must be the first #included file
#extension GL_ARB_shader_bit_encoding : enable
#extension GL_EXT_gpu_shader4 : enable
#extension GL_ARB_gpu_shader5 : enable
#extension GL_ARB_gpu_shader_int64 : enable
#endif

this should be tested with the winex instalation on your windows machine with AMD GPU, before compiling with debug symbols, to determine if this is in fact what's causing the crash, if it still crashes then I'll help with debugging where I can. I will be pushing this change to github and rebuild the distribution packages asap.

Offline Michael_Z_Freeman

  • *
  • Fractal Friend
  • **
  • Posts: 12
« Reply #8 on: March 21, 2019, 04:55:45 PM »
Yep. that made no difference.

Are there other AMD users out there ? Does it work on your card ? If it doesn't then I would like to ask for your help to test FragM and getting it working on AMD cards. Cheers  :).

Online claude

  • *
  • 3d
  • ****
  • Posts: 986
    • mathr.co.uk
« Reply #9 on: March 21, 2019, 05:43:21 PM »
Here I have Debian Buster GNU/Linux, AMD RX580, amdgpu.dc=0 kernel option (otherwise my display is not detected).  FragM works provided I set an environment variable to make Mesa lie about its capabilities when launching it, I use this script because I also get some weird issues if the current working directory is not set to the FragM directory:

Code: [Select]
#!/bin/bash
pushd $HOME/opt/fragm/Fragmentarium-2.5.0
export MESA_GL_VERSION_OVERRIDE="4.6COMPAT"
./Fragmentarium-2.5.0 "$@"
popd

without the OVERRIDE I get a segmentation fault at startup; maybe I'll look into a way for FragM to print a better error message with a link to a forum thread or wiki page with troubleshooting information.

This override also works with Debian Buster on NVIDIA G105M laptop (ancient, doesn't support OpenGL 4 for sure) with the Free/Libre nouveau driver.  Just don't try to actually use the missing features like double precision.

Offline Michael_Z_Freeman

  • *
  • Fractal Friend
  • **
  • Posts: 12
« Reply #10 on: March 21, 2019, 08:05:04 PM »
OK. That's interesting. I'll try that in my installation of Kubuntu on my AMD machine.

I had a brainwave when you mentioned that and tried changing the string for that in Windows using this ...

 https://github.com/dtrebilco/glintercept

It's an OpenGL debugger that intercepts calls. A version string change made no difference. But I started using it to intercept calls. So far it does not seem to report anything significant but I'll post it's log in a moment.

Offline Michael_Z_Freeman

  • *
  • Fractal Friend
  • **
  • Posts: 12
« Reply #11 on: March 21, 2019, 08:51:03 PM »
Here I have Debian Buster GNU/Linux, AMD RX580, amdgpu.dc=0 kernel option (otherwise my display is not detected).  FragM works provided I set an environment variable to make Mesa lie about its capabilities when launching it, I use this script because I also get some weird issues if the current working directory is not set to the FragM directory:

Code: [Select]
#!/bin/bash
pushd $HOME/opt/fragm/Fragmentarium-2.5.0
export MESA_GL_VERSION_OVERRIDE="4.6COMPAT"
./Fragmentarium-2.5.0 "$@"
popd

without the OVERRIDE I get a segmentation fault at startup; maybe I'll look into a way for FragM to print a better error message with a link to a forum thread or wiki page with troubleshooting information.

This override also works with Debian Buster on NVIDIA G105M laptop (ancient, doesn't support OpenGL 4 for sure) with the Free/Libre nouveau driver.  Just don't try to actually use the missing features like double precision.

YESSSSS !  :thumbs: :))

That was driving me NUTZ ! Anything for the Fractals, eh ?

So I suppose the next thing is to find out why your version string is needed at all ?

BTW this was using the latest build pulled from Github on Kubuntu with the AMD drivers. In fact I do not have the very latest AMD driver installed so should probably try that as well. I also turned off both the Nvidia extension and OpenEXR at build time, but I don't know if that helped or not.
« Last Edit: March 21, 2019, 09:02:55 PM by Michael_Z_Freeman »

Online claude

  • *
  • 3d
  • ****
  • Posts: 986
    • mathr.co.uk
« Reply #12 on: March 21, 2019, 09:20:45 PM »
The issue as I understand it is to do with Qt's display widget and OpenGL profiles.

FragM requests a "compatibility" profile context, but Mesa only provides OpenGL 3 in compatibility profile, requiring "core" profile to use OpenGL 4.  Core profile removes a lot of stuff from the API, which would require rewriting a whole bunch of stuff (including the shaders, and there are loads of shaders out there in the wild that might not work any longer), which makes this not a serious option for FragM, at least in the short term.

FragM crashes because it has an OpenGL 3 compatibility context when it was hoping for an OpenGL 4 compatibility context, which means that some function pointers are null - AFAICT this happens inside Qt code when it initialises the display widget, so there's not much FragM can do about it.  There are some issues with Qt maybe requiring OpenGL version to be specified at compile time (via C++ inheritance ?), which adds to the pain.  There might be a workaround, I'll try to research this too.

But what I'm thinking of doing for the short term is adding a `signal()` handler for SIGSEGV (segmentation fault) that would print out a short message saying "oh no! maybe bad OpenGL version, see this page for possible solutions: URL GOES HERE" before aborting, and remove the signal handler after successful initialisation so that debugging with gdb is still possible.  This would be for Linux (and maybe OS X) only, Windows is a bit different.  Alternatively it might be possible to `setenv()` from within FragM before initialisation of the GUI, which might just "make it work", but would need a command line flag to turn it off for debugging, and is a grotesque hack all around...

Online claude

  • *
  • 3d
  • ****
  • Posts: 986
    • mathr.co.uk
« Reply #13 on: March 21, 2019, 09:51:10 PM »
Alternatively it might be possible to `setenv()` from within FragM before initialisation of the GUI, which might just "make it work"
https://github.com/3Dickulus/FragM/pull/38

Offline 3DickUlus

  • *
  • 3e
  • *****
  • Posts: 1048
    • Digilantism
« Reply #14 on: March 21, 2019, 09:54:18 PM »
Thank you claude  for all the time you spend on this
It is very much apreciated by all FragM fans  :yes:


xx
Multi-Processor access

Started by admaxtv on Mandelbulb3d

4 Replies
246 Views
Last post April 26, 2018, 11:20:51 AM
by hobold
clip
Raspberry Pi OpenCL - bus access error

Started by Micha1982 on Mandelbulber

5 Replies
246 Views
Last post April 17, 2018, 08:21:10 PM
by buddhi
xx
"The Exception"

Started by cricke49 on Fractal Image Gallery

0 Replies
59 Views
Last post March 12, 2018, 03:59:00 AM
by cricke49
xx
Hue for Fragmentarium

Started by Sabine62 on Code Snippets (fragments)

4 Replies
55 Views
Last post February 24, 2019, 01:55:02 AM
by Sabine62
xx
Fragmentarium v2.0.b

Started by 3DickUlus on Downloads

0 Replies
875 Views
Last post September 16, 2017, 02:39:46 AM
by 3DickUlus