Skip to content

Comments

Fix win11 arm64#4776

Draft
gzotti wants to merge 11 commits intomasterfrom
fix_win11-arm64
Draft

Fix win11 arm64#4776
gzotti wants to merge 11 commits intomasterfrom
fix_win11-arm64

Conversation

@gzotti
Copy link
Member

@gzotti gzotti commented Feb 17, 2026

Description

This shall include fixes identified during testing work on Arm64 hardware donated by Microsoft.

Apart from the tests listed in #4772, getting ASCOM to play nice seems the largest issue. :-(

Fixes #4772 (issue)

Screenshots (if appropriate):

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • This change requires a documentation update
  • Housekeeping

How Has This Been Tested?

Test Configuration:

  • Operating system: Windows 11 on ARM64 25H2
  • Graphics Card: Qualcomm Adreno X1-85

Checklist:

  • My code follows the code style of this project.
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (header file)
  • I have updated the respective chapter in the Stellarium User Guide
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

@gzotti gzotti added this to the 26.1 milestone Feb 17, 2026
@gzotti gzotti self-assigned this Feb 17, 2026
@gzotti gzotti added infrastructure Infrastructure related issues sponsored os: windows Specific issues for Windows-family OS hw: arm Specific issues for ARM architecture or devices hw: telescope Specific issues for various mounts of telescopes purpose: interoperability Interoperability issues labels Feb 17, 2026
@github-actions github-actions bot requested review from 10110111 and alex-w February 17, 2026 00:13
@github-actions
Copy link

Great PR! Please pay attention to the following items before merging:

Files matching guide/**:

  • Did you remember to update screenshots to match new updates?
  • Did you remember to grammar check in changed part of documentation?

This is an automatically generated QA checklist based on modified files.

Copy link
Contributor

@10110111 10110111 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this doesn't seem to "fix" anything, just tweaks logging and the docs. Am I missing something?


initResult = OleInit(COINIT_APARTMENTTHREADED);
hResult = OleCreateInstance(L"ASCOM.Utilities.Util", &utilDispatch);
hResult = OleCreateInstance(L"ASCOM.Utilities.Util", &utilDispatch);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this change to spaces?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have loaded the .clang-format file now. When I select a region and right-click "Auto-Indent Selection", there are tabs at the head of lines. As soon as I store the file, there are space characters. Same nonsense on every new system, and doing this only once per year I have forgotten the switches. :-( Will find out.

BTW, is .clang-format or still the older xml file the right? Why are there both? Could we delete one?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW, is .clang-format or still the older xml file the right? Why are there both? Could we delete one?

In Ubuntu 22.04 the qtcreator package is still v6.0.2, which needs an XML file. Modern QtCreator (that I built from sources) wants a clang-format file. So we need both. (And ideally, also update the Coding Style docs to include the clang-format file, in addition to the XML.)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, then we need both, yes, and I hope they are equal in rules. (My 2012 laptop must stay on U22.04LTS until 2032 or until nouveau supports a Geforce 580...)
Just the auto-conversion from tab to space on store is annoying, I must find the relevant switch.

@10110111
Copy link
Contributor

10110111 commented Feb 17, 2026

getting ASCOM to play nice seems the largest issue

If you have access to the actual hardware, could it be better to switch to Alpaca and drop the COM-based ASCOM? This would bring support for these devices to Linux (and possibly macOS).

@gzotti
Copy link
Member Author

gzotti commented Feb 17, 2026

Please ignore this PR for now. It is a draft, mostly used for exchanging between two systems. Yes, spacing is off, I had not installed the style file on the new system. Yes, Alpaca would be nice, but see other PR, need deeper insight into Stellarium's underdocumented TelescopeControl plugin. In just these days it may even be an issue between MS and ASCOM with some problems in .NET3.5.

The ARM64 is the first system where I need scaling !=1.
On startup the main window is shrinking.
This fix prevents the shrinking.
If it breaks elsewhere, enclose in WIN32.
@gzotti
Copy link
Member Author

gzotti commented Feb 18, 2026

Of course, if anyone has time/knowledge to go into Alpaca (which works on all platforms), the relevant branch #4148 is rebased and open for continuation.

@gzotti
Copy link
Member Author

gzotti commented Feb 22, 2026

With some help from the ASCOM developers we found that we need a sidecar file stellarium.exe.config to be installed next to stellarium.exe:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

Where should this go in the repo (inside ASCOM sources?), and how do I ensure it is being copied to the install folder? In addition, apparently this use of ASCOM based on .NET requires a signed program to run without interference of 'Smart App Control'.

I am in the process of upgrading qDebug() etc into qCDebug(Telescopes) and decide what's debug and what's a warning, but this should go into all parts of the plugin, will take a few days longer. We can then finetune also this plugin, with qCWarning as default.

@alex-w
Copy link
Member

alex-w commented Feb 22, 2026

@gzotti it’s an easy - please see similar files in data directory + iss files in cmake directory (of course if you want to put this file when telescope control plugin is enabled then you need to update CMakeLists.txt file too)

@gzotti
Copy link
Member Author

gzotti commented Feb 22, 2026

Now I am back at the coding style issue. Using the .clang-format, indentation works with tabs. When I store the file, tabs are replaced by 8 spaces. Where is the switch to fix that nonsense?

EDIT: Bah, found it. Preferences/Text Editor/Cleanups Upon Saving. Disable "Clean indentation".

@alex-w
Copy link
Member

alex-w commented Feb 23, 2026

EDIT: Bah, found it. Preferences/Text Editor/Cleanups Upon Saving. Disable "Clean indentation".

Hmm… Should be xmi file updated too?

@alex-w
Copy link
Member

alex-w commented Feb 23, 2026

@gzotti I fear patch for stellarium.exe.config should be a bit different

@10110111
Copy link
Contributor

Should be xmi file updated too?

What do you mean? The XML is short and to the point. "Cleaning" is a separate config option (rather stupid in that it doesn't follow the coding style configuration).

@10110111
Copy link
Contributor

How can we refer to the .clang-format file in doc/codingConventions.doxygen without having to maintain a copy of it in the doc directory, but having it available on the website?

@gzotti
Copy link
Member Author

gzotti commented Feb 23, 2026

@gzotti I fear patch for stellarium.exe.config should be a bit different

I know. The file is where we said, but the copying to destination is not there yet.

@gzotti
Copy link
Member Author

gzotti commented Feb 23, 2026

How can we refer to the .clang-format file in doc/codingConventions.doxygen without having to maintain a copy of it in the doc directory, but having it available on the website?

Do we need to actually show its contents? Else, a link to Github should suffice. But a notice esp. also in the BUILDING instructions for newcomers that in addition to this file being used by QtCreator, developers must also disable the switch mentioned above. This is more a QtCreator issue, but we have to live with it. When the last LTS version that depends on the old XML style file is EOL, we can at least remove that one.

@gzotti
Copy link
Member Author

gzotti commented Feb 23, 2026

Thanks. But IMHO it should be behind "if ENABLE_PLUGIN TelescopeControl and ASCOM" (or something similar that works :-).

@gzotti
Copy link
Member Author

gzotti commented Feb 23, 2026

I think the AppVeyor for Windows (all flavours) could be upgraded to Qt6.10 if possible. On Windows the libraries are packed with the program, so we can take the latest.

@alex-w
Copy link
Member

alex-w commented Feb 23, 2026

Thanks. But IMHO it should be behind "if ENABLE_PLUGIN TelescopeControl and ASCOM" (or something similar that works :-).

Yes, we can do it, but I'm not sure that we need overengineering here...

@alex-w
Copy link
Member

alex-w commented Feb 23, 2026

What do you mean? The XML is short and to the point. "Cleaning" is a separate config option (rather stupid in that it doesn't follow the coding style configuration).

I mean should we update stellarium-ide.xml file or not?

@alex-w
Copy link
Member

alex-w commented Feb 23, 2026

I think the AppVeyor for Windows (all flavours) could be upgraded to Qt6.10 if possible. On Windows the libraries are packed with the program, so we can take the latest.

You can try it

P.S. You want to drop support 32-bit (Qt5) packages?

@10110111
Copy link
Contributor

I mean should we update stellarium-ide.xml file or not?

No, it's completely correct.

I've updated the relevant docs (see 1035111).

@gzotti
Copy link
Member Author

gzotti commented Feb 23, 2026

P.S. You want to drop support 32-bit (Qt5) packages?

I thought we had dropped 32bit Windows with the new star catalog? At least there is no download for it, right? Actually, the ARM-related changes should not affect Qt5 builds. (Maybe the config file is useful also here.) I meant, all Appveyors now running Qt6.8 (or lower?) could be updated to 6.10 if possible. I'll try...

@alex-w
Copy link
Member

alex-w commented Feb 23, 2026

P.S. You want to drop support 32-bit (Qt5) packages?

I thought we had dropped 32bit Windows with the new star catalog? At least there is no download for it, right? Actually, the ARM-related changes should not affect Qt5 builds. (Maybe the config file is useful also here.) I meant, all Appveyors now running Qt6.8 (or lower?) could be updated to 6.10 if possible. I'll try...

No, we still publish win32 packages. The current branch can’t be compiled with Qt5 (type conversion issues).

P.S. Maybe it’s time to drop support win32 packages (W7+), but we should resolve issues for compilation with Qt5.

P.P.S. Qt 6.8+ requires Windows 10+.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hw: arm Specific issues for ARM architecture or devices hw: telescope Specific issues for various mounts of telescopes infrastructure Infrastructure related issues os: windows Specific issues for Windows-family OS purpose: interoperability Interoperability issues sponsored

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Finalize adoption of Windows/Arm64 architecture

3 participants