News:

 

Topic: Making NVil run on Linux...  (Read 8150 times)

0 Members and 1 Guest are viewing this topic.

  • No avatar
  • Posts: 969
  • Polygon
August 10, 2020, 04:09:20 pm
Whaaat!? :o
But... these are fantastic news! In fact, this is a real goddamn breakthrough! :D

I'm going to try it myself ASAP. But first, can you post the sha256sum of your DirectX9.0c redistributable installer? I'm not sure if I have the same one. Mine is from June 2010 and I think I got it from Microsoft website, so I suspect it won't work(?):
Code: [Select]
8746ee1a84a083a90e37899d71d50d5c7c015e69688a466aa80447f011780c0d  directx_Jun2010_redist.exe

  • No avatar
  • Posts: 969
  • Polygon
August 10, 2020, 04:28:19 pm
All right, I followed your steps (on Wine 5.0-4), but SlimDX complains that it is:
Code: [Select]
Unable to find a version of the runtime to run this application.It is unable to find .NET Framework, which I have just installed from:
Code: [Select]
65e064258f2e418816b304f646ff9e87af101e4c9552ab064bb74d281c38659f  dotNetFx40_Full_x86_x64.exeDid you override any libraries in wineprefix configuration before installing SlimDX? mscoree perhaps?
« Last Edit: August 10, 2020, 04:52:01 pm by rubberDuck »

  • Posts: 507
  • Polygon
August 11, 2020, 10:17:43 am
I used the same one directx_Jun2010_redist.exe (I don't know what the sha is as I copied it from CD of game)

Yep that is the one I used dotNetFx40_Full_x86_x64.exe

Quote
Did you override any libraries in wineprefix configuration before installing SlimDX? mscoree perhaps?
No

I tried to recreate the same steps on Solus in a 64bit wineprefix without luck. From the PoL debug menu it appears that Slimdx did not install correctly and Solus would not allow me to install dotNetFx40_Full_x86_x64.exe. It kept saying there is a newer one installed even though I created a new 64 bit wineprefix and didn't install any dotnet files from PoL.

Solus does have an older kernel than Pop.

What is the best way to tell the difference between 32 bit or 64 bit in Nvil. Is it opening a certain amount of faces or exporting a certain amount of faces ?
I'd like to see if the 64 bit install is actually doing something the 32 bit version can't do or all as I have actually done is install a 32 bit version of Nvil on 64 bit wine prefix.

BTW I've been doing these tests on PoP and Solus as both are highly rated distros for people trying to get their windows games to work on linux
« Last Edit: August 11, 2020, 11:05:44 am by kevjon »

  • No avatar
  • Posts: 969
  • Polygon
August 11, 2020, 12:40:58 pm
Quote
I don't know what the sha is as I copied it from CD of game
You can calculate SHA256 hash of any file by running:
Code: [Select]
sha256sum FILE
Quote
Quote
Did you override any libraries in wineprefix configuration before installing SlimDX? mscoree perhaps?
No
That's odd, because unless you're installing dotnet with winetricks (or PoL's "Install Components") then I believe you need to change at least mscoree to native first, or otherwise wineprefix won't use the installed .NET DLLs. This is how I understand it.
Quote
I tried to recreate the same steps on Solus in a 64bit wineprefix without luck. From the PoL debug menu it appears that Slimdx did not install correctly and Solus would not allow me to install dotNetFx40_Full_x86_x64.exe. It kept saying there is a newer one installed even though I created a new 64 bit wineprefix and didn't install any dotnet files from PoL.
The reason you cannot install dotNetFx40_Full_x86_x64.exe on your Solus 64-bit wineprefix might be that PoL automatically installs Mono if it is already downloaded. And you can't have both: dotnet and mono installed at the same time as dotnet installer will complain that there's already a current version of .NET present on the system.

When you create a wineprefix with PoL, it checks if there's a mono installer in ~/.cache/wine and uses it. Therefore, if you plan on installing dotnet, temporarily move those installers somewhere else before creating the wineprefix.

If you see drive_c/windows/mono directory in your wineprefix, then it's an indication that Mono is installed (unless the directory is empty, of course).
Quote
What is the best way to tell the difference between 32 bit or 64 bit in Nvil. Is it opening a certain amount of faces or exporting a certain amount of faces ?
I'd like to see if the 64 bit install is actually doing something the 32 bit version can't do or all as I have actually done is install a 32 bit version of Nvil on 64 bit wine prefix.
I don't know what the best way is, but you could try creating some geometry and subdivide it until a dialog window pops up telling you that NVil has just run out of memory. The dialog will display OutOfMemoryException or something like that. You can keep a memory monitoring program open to see how the memory allocated to NVil 1.0 grows on each subdivision. The out of memory exception should pop up once you reach ~2.5-3 GB of RAM, though it might also crash without showing the dialog. If it doesn't, and you are able to subdivide further, much beyond 3 GB and up to your maximum RAM, then you're running a 64-bit version.

  • Posts: 507
  • Polygon
August 12, 2020, 11:51:43 am
Quote
8746ee1a84a083a90e37899d71d50d5c7c015e69688a466aa80447f011780c0d  directx_Jun2010_redist.exe
Its the same sha256sum (thanks for the tip on how to find out)

Quote
The reason you cannot install dotNetFx40_Full_x86_x64.exe on your Solus 64-bit wineprefix might be that PoL automatically installs Mono if it is already downloaded. And you can't have both: dotnet and mono installed at the same time as dotnet installer will complain that there's already a current version of .NET present on the system.

When you create a wineprefix with PoL, it checks if there's a mono installer in ~/.cache/wine and uses it. Therefore, if you plan on installing dotnet, temporarily move those installers somewhere else before creating the wineprefix.
Thanks, Following this tip allowed me to install MSDotNet4 on Solus in 64 bit prefix.
Nvil ran but there were a lot of fixme errors in the debug menu.

I subdivided a cube a lot but could not get the memory above 1.8GB. Subdividing is heavy on CPU usage. Eventually Nvil crashed with
"Unhandled exception: 0xe0434352 in 32-bit code (0x7b02adf0)"
I suspect this means it is actually running in 32 bit mode on 64 bit prefix.

Anyway next weekend I'll do some work in the 64 bit prefix version on PoP and see how stable it is.

  • Posts: 507
  • Polygon
August 16, 2020, 11:18:41 am
I've added gdiplus from PoL to my wine setup and it helps the interface to run smoother and cures the weird display issues with the View>Display>Show Viewport buttons

  • No avatar
  • Posts: 969
  • Polygon
August 16, 2020, 12:15:33 pm
Nice find, Kevjon! It seems that it also fixes issues with splash image and docked user tool windows (UTWs).

Without gdiplus, buttons of top-docked UTWs were rendered incorrectly after UI initialization, and I had to refresh them either by hovering the cursor over all buttons or resizing the program window.

I tested the above on wineprefix with mono.

  • No avatar
  • Posts: 969
  • Polygon
January 28, 2021, 06:12:03 pm
Ok, something must have changed either in NVil or in Wine because gdiplus no longer helps as much as it did before. Splash screen again contains black borders and from time to time NVil throws an exception:
Code: [Select]
See the end of this message for details on invoking \njust-in-time (JIT) debugging instead of this dialog box.\n\n************** Exception Text **************\nSystem.InvalidOperationException: The operation is invalid [GDI+ status: Win32Error]
  at System.Drawing.GDIPlus.CheckStatus (System.Drawing.Status status) [0x0020c] in <4e5326be950f45168a17e3e7e065db24>:0
  at System.Drawing.Graphics.DrawImage (System.Drawing.Image image, System.Int32 x, System.Int32 y, System.Int32 width, System.Int32 height) [0x00025] in <4e5326be950f45168a17e3e7e065db24>:0
  at System.Drawing.Graphics.DrawImage (System.Drawing.Image image, System.Drawing.Rectangle rect) [0x0002c] in <4e5326be950f45168a17e3e7e065db24>:0
  at (wrapper remoting-invoke-with-check) System.Drawing.Graphics.DrawImage(System.Drawing.Image,System.Drawing.Rectangle)
  at System.Windows.Forms.PictureBox.OnPaint (System.Windows.Forms.PaintEventArgs pe) [0x00097] in <4b7d326f792d4378bd436300c6961411>:0
  at System.Windows.Forms.Control.PaintWithErrorHandling (System.Windows.Forms.PaintEventArgs e, System.Int16 layer) [0x00043] in <4b7d326f792d4378bd436300c6961411>:0
  at System.Windows.Forms.Control.WmPaint (System.Windows.Forms.Message& m) [0x00219] in <4b7d326f792d4378bd436300c6961411>:0
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x003cb] in <4b7d326f792d4378bd436300c6961411>:0
  at System.Windows.Forms.Control+ControlNativeWindow.OnMessage (System.Windows.Forms.Message& m) [0x00001] in <4b7d326f792d4378bd436300c6961411>:0
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x000b3] in <4b7d326f792d4378bd436300c6961411>:0
  at System.Windows.Forms.NativeWindow.Callback (System.Windows.Forms.Message& m) [0x00025] in <4b7d326f792d4378bd436300c6961411>:0

\n************** Loaded Assemblies **************\nmscorlib\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/4.5/mscorlib.dll\n----------------------------------------\nNvil 1.0\n    Assembly Version: 2.3.7661.27908\n    Win32 Version: 2.3.7661.27908\n    CodeBase: file:///C:/nvil/Nvil%201.0.exe\n----------------------------------------\nWorkShop\n    Assembly Version: 2.3.7661.27803\n    Win32 Version: 2.3.7661.27803\n    CodeBase: file:///C:/nvil/WorkShop.dll\n----------------------------------------\nBasicD3DClasses\n    Assembly Version: 2.3.7661.27793\n    Win32 Version: 2.3.7661.27793\n    CodeBase: file:///C:/nvil/BasicD3DClasses.dll\n----------------------------------------\nCharacterClasses\n    Assembly Version: 2.3.7661.27790\n    Win32 Version: 2.3.7661.27790\n    CodeBase: file:///C:/nvil/CharacterClasses.dll\n----------------------------------------\nSystem.Windows.Forms\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll\n----------------------------------------\nSystem\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll\n----------------------------------------\nSystem.Drawing\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll\n----------------------------------------\nAccessibility\n    Assembly Version: 4.0.0.0\n    Win32 Version: \n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll\n----------------------------------------\nDevExpress.Utils.v10.2\n    Assembly Version: 10.2.4.0\n    Win32 Version: 10.2.4.0\n    CodeBase: file:///C:/nvil/DevExpress.Utils.v10.2.dll\n----------------------------------------\nDevExpress.XtraBars.v10.2\n    Assembly Version: 10.2.4.0\n    Win32 Version: 10.2.4.0\n    CodeBase: file:///C:/nvil/DevExpress.XtraBars.v10.2.dll\n----------------------------------------\nDevExpress.Data.v10.2\n    Assembly Version: 10.2.4.0\n    Win32 Version: 10.2.4.0\n    CodeBase: file:///C:/nvil/DevExpress.Data.v10.2.dll\n----------------------------------------\nDevExpress.XtraEditors.v10.2\n    Assembly Version: 10.2.4.0\n    Win32 Version: 10.2.4.0\n    CodeBase: file:///C:/nvil/DevExpress.XtraEditors.v10.2.dll\n----------------------------------------\nSystem.Data\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Data/4.0.0.0__b77a5c561934e089/System.Data.dll\n----------------------------------------\nSystem.Xml\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll\n----------------------------------------\nSlimDX\n    Assembly Version: 4.0.13.43\n    Win32 Version: \n    CodeBase: file:///C:/windows/Microsoft.NET/assembly/GAC_32/SlimDX/v4.0_4.0.13.43__b1b0c32fd1ffe4f9/SlimDX.dll\n----------------------------------------\nSystem.Core\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll\n----------------------------------------\nSystem.Configuration\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll\n----------------------------------------\nSystem.Numerics\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.dll\n----------------------------------------\nSystem.ComponentModel.TypeConverter\n    Assembly Version: 4.1.0.0\n    Win32 Version: 4.0.0.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/4.5/Facades/System.ComponentModel.TypeConverter.dll\n----------------------------------------\nSystem.Management\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Management/4.0.0.0__b03f5f7f11d50a3a/System.Management.dll\n----------------------------------------\n\n************** JIT Debugging **************\n

I'm currently running NVil on Wine 6.0 via Mono because my other (older) NVil wineprefixes stopped working for some reason.

  • Posts: 507
  • Polygon
January 29, 2021, 09:15:27 am
Have you tried creating a new wineprefix for Nvil and changing your POL installed wine versions to 5.12 or 5.13 ?
« Last Edit: January 29, 2021, 09:17:05 am by kevjon »

  • No avatar
  • Posts: 969
  • Polygon
January 29, 2021, 12:15:07 pm
I didn't try creating new 5.13 wineprefixes because NVil 32-bit on Wine 6.0 (Mono) works fine so far, but I had to reinstall the prefix without gdiplus of course (because of the exception I mentioned).

My two old wineprefixes are based on 5.13 (Mono) and 5.13 (.NET 4.0) and they stopped working in a sense that fonts disappeared from all UI elements, except for menus and HUD. All other GUI elements (buttons, Scene Hierarchy, even the popup notifying about updates) are without text, which is strange, because I did not change anything at all in those prefixes.

Sadly, the 64-bit NVil version still fails to run, even on Wine 6.0. I think we will never be able to successfully set it up (not while NVil is based on .NET 4.0 and SlimDX). This slowly starts pushing me away from the program toward other software.

  • Posts: 507
  • Polygon
January 29, 2021, 01:07:26 pm
If you want to use Linux, blender is about your only option.

  • No avatar
  • Posts: 969
  • Polygon
January 29, 2021, 02:05:34 pm
Yes, this might be. Of course there's also Modo, but its price is ludicrous if one looks only for a dedicated modeling solution.

Because it's a pain to work with a dense geometry in NVil via Wine, due to memory limit imposed by a 32-bit architecture, for the last couple of months I found myself spending more time with Blender than with NVil when doing traditional modeling.

Unfortunately, while Blender is a great DCC suite and I use it for many tasks, I find its modeling tools not as streamlined and fast to work with as NVil's. Let's just say that they're not exactly the Zen of modeling I'm used to thanks to NVil.

  • No avatar
  • Posts: 969
  • Polygon
August 25, 2021, 09:18:15 pm
Success! I finally got NVil x64 up and running using Lutris:
https://github.com/ajz3d/lutris-nvil-installation-scripts
« Last Edit: August 25, 2021, 09:26:51 pm by rubberDuck »

  • Posts: 50
  • Edge
    • 3ddmd
August 31, 2021, 05:42:58 am
Is NVil written in C#? I'm just assuming since it runs on the .Net framework. I know there a few other languages than run on the .Net framework, but C# is the most popular. With .Net 5 and 6, it appears that making an application cross-platform would be more approachable, n'est-ce pas? :)