Print at Feb 4, 2026, 8:38:03 PM
Posts: 11   Pages: 2   [ 1 2 | Next Page ]
View all posts in this thread on one page
Posted by arm64appcompatguy at Jun 8, 2018, 7:17:01 PM
SH3D on Windows 10 on ARM works using DirectX
Hi,

I'm one of the Microsoft employees tasked with getting various apps to work well on Windows 10 on ARM. Sweet Home 3D is on my list.

One of the unfortunate limitations of the current ARM64 Windows devices is that they have no OpenGL support in their drivers. This means that the amazing Windows installer provided by Sweet Home 3D works fine, but the application tends to either crash on start or leave the rendering area blank. Because of this I added an app compat shim to block the current major revision of the installer from running.

Not satisfied with this, I went digging on the forum and found this wonderful post:
http://www.sweethome3d.com/support/forum/viewthread_thread,6818_offset,7

The instructions there for using the JAR version of the program with -Dj3d.rend=d3d work beautifully, and Sweet Home 3D actually performs quite well under our emulation.

I hope this helps someone out. Sweet Home 3D is really a neat product.

Thanks!

Posted by Puybaret at Jun 8, 2018, 10:37:08 PM
Re: SH3D on Windows 10 on ARM works using DirectX
Thanks for your tests smile

The DirectX version of Java 3D requires to run Sweet Home 3D in 32 bit.
Isn't it a problem under ARM64?
Did you run Sweet Home 3D with its JAR Executable version or from the installer running with /j3d.version=1.5.2 /os.arch=x86 flags and a SweetHome3D.l4j.ini file containing DirectX properties placed in Sweet Home 3D installation folder?
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator

Posted by arm64appcompatguy at Jun 11, 2018, 8:43:04 PM
Re: SH3D on Windows 10 on ARM works using DirectX
Glad I can help :)

ARM64 Windows has 32-bit Intel/AMD CPU emulation software. This allows it to run normal 32-bit Java programs quite well.

Sadly, in all of my research and experimentation I did not see those installer flags and I'm not sure what to put in the INI. I'll work on that since the EXE installer is quite preferable to what I got working!

My steps:

  • Install a 32-bit x86 JRE (like Oracle's Java SE JRE)
  • Use the downloads page to download the "Sweet Home 3D executable jar"
  • Invoke the JRE on the JAR file with D3D options:
    java -Dj3d.rend=d3d -jar SweetHome3D-5.7.jar



Posted by arm64appcompatguy at Jun 12, 2018, 1:11:38 AM
Re: SH3D on Windows 10 on ARM works using DirectX
I was able to use the normal Windows installer just like you suggested:

  • Download (but don't run!) Windows installer from the downloads page.
  • Follow the instructions on the page you listed to install with J3D 1.5.2
  • Create a text file next to SweetHome3D.exe named SweetHome3D.l4j.ini with these contents:
    -Dj3d.rend=d3d

  • Start Sweet Home 3D normally


Would you be OK with the OS compatibility layer automatically adding the needed installer arguments and INI entry on ARM64? This wouldn't be applied once the version exceeds, say, 5.7.

I still haven't figured out how to get High DPI support working right using the INI file. The INI entries suggested in the FAQ have no effect and don't seem to track changes in the OS' DPI settings.

Posted by Puybaret at Jul 6, 2018, 1:45:33 PM
Re: SH3D on Windows 10 on ARM works using DirectX
Actually, I think that the list of properties in the SweetHome3D.l4j.ini should be a little longer:
-Dj3d.rend=d3d
-Dsun.java2d.d3d=true
-Dsun.java2d.noddraw=false
-Dsun.java2d.ddoffscreen=true
-Dsun.java2d.ddscale=true
but maybe -Dj3d.rend=d3d is enough in your case...

Would you be OK with the OS compatibility layer automatically adding the needed installer arguments and INI entry on ARM64?
As it's possible to test ARM64 architecture in Inno Setup, it should be even possible to change the installer in such a way that when running under ARM64, it will install by default Sweet Home 3D in 32 bit with Java 3D 1.5.2 and j3d.rend property set to d3d.

I still haven't figured out how to get High DPI support working right using the INI file. The INI entries suggested in the FAQ have no effect
Do you mean you tried to add the following properties:
-Dcom.eteks.sweethome3d.resolutionScale=2.5
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
-Dswing.plaf.metal.controlFont=Dialog-11
-Dswing.plaf.metal.userFont=SansSerif-11
-Dswing.plaf.metal.systemFont=SansSerif-11
to SweetHome3D.l4j.ini file?
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator

Posted by arm64appcompatguy at Jul 19, 2018, 8:42:34 PM
Re: SH3D on Windows 10 on ARM works using DirectX
Hi again!

While -Dj3d.rend=d3d gets it minimally working in the ARM64 case, I defer to your judgement.

Getting the installer to automatically set it up right would be magnificent. The less the OS does special, the better! If you go this route, please post here when the new installer is up. :)

As for high-DPI, yes, I believe that was the combination of settings I tried...but I'll try again. It's been a while. (This is plain high-DPI trouble, not ARM64-specific, so I'm not particularly worried about it myself.)

Posted by arm64appcompatguy at Jul 19, 2018, 9:43:50 PM
Re: SH3D on Windows 10 on ARM works using DirectX
Confirmed: those settings don't fix high-dpi issues in SH3d on ARM64.

Posted by arm64appcompatguy at Jul 19, 2018, 11:37:42 PM
Re: SH3D on Windows 10 on ARM works using DirectX
I hope you'll excuse that last response; my testing environment was not sane and the standard entries work magnificently. More in a moment.

Posted by arm64appcompatguy at Jul 19, 2018, 11:49:52 PM
Re: SH3D on Windows 10 on ARM works using DirectX
So, until the installer is fixed, here's how to get Sweet Home 3D working on Windows 10 on ARM:

  • Make sure you are running the latest Windows updates.
  • If you have already installed Sweet Home 3D, uninstall it. (Start -> Settings -> Apps -> Sweet Home 3D -> Uninstall)
  • Download and save the Sweet Home 3D installer file. (for example, SweetHome3D-5.7-windows.exe)
  • Right-click on the Start button and select Run.
  • Type the location and name of the installer file, then add "/os.arch=x86 /j3d.version=1.5.2". (Downloads\SweetHome3D-5.7-windows.exe /os.arch=x86 /j3d.version=1.5.2)
  • Once the installer has finished, open Explorer and find SweetHome3D.exe. ("C:\Program Files (X86)\Sweet Home 3D\SweetHome3D.exe")
  • Create a file next to it named "SweetHome3d.l4j.ini".
  • Open the new file and add this text to it (might have to run Notepad as Administrator):
    -Dj3d.rend=d3d
    -Dsun.java2d.d3d=true
    -Dsun.java2d.noddraw=false
    -Dsun.java2d.ddoffscreen=true
    -Dsun.java2d.ddscale=true
    -Dcom.eteks.sweethome3d.resolutionScale=2.5
    -Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel
    -Dswing.plaf.metal.controlFont=Dialog-11
    -Dswing.plaf.metal.userFont=SansSerif-11
    -Dswing.plaf.metal.systemFont=SansSerif-11

    (This tells Sweet Home 3D to work with the limited OpenGL support and sweet high-DPI screens these devices come with.)
  • Save and close the file.
  • Launch Sweet Home 3D like normal.

Hopefully that gets you rolling!

Posted by Puybaret at Sep 23, 2018, 2:13:26 PM
Re: SH3D on Windows 10 on ARM works using DirectX
I integrated your proposal in the version 6.0 Beta 12 found here.
Could you test it please?
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D creator

Posts: 11   Pages: 2   [ 1 2 | Next Page ]