[Interest] Qt 5.5 WinRT x64 VS2013 applications fail WACK Direct3D tests

Alexander Tkachenko atkachenko at live.ru
Thu Sep 24 15:20:09 CEST 2015

Hi Maurice,
Thank you for your reply!
If I'm correct, d3dcompiler_47.dll should not be included in Windows Store package at all because it is a Microsoft's digitally signed dll, which is already present in the OS. So, WinRT-restricted API calls in d3dcompiler_47.dll aren't actually a problem. I touched d3dcompiler_47.dll just to clarify that putting this dll did not help me to resolve the issue.
The problem is that even basic Qt 5.5 x64 WinRT QWidget application fails WACK tests. So, most likely Qt 5.5 x64 WinRT application could not be submitted to Windows Store. 
I have installed Windows 8.1 SDK WACK instead of Windows 10 SDK's one: Direct3D feature level support - OK , but Trim() test is still failing.
Here are detailed steps to reproduce the issue:
1. Download Open Source version of Qt online installer from http://download.qt.io/official_releases/online_installers/qt-unified-windows-x86-online.exe and launch it;
2. Login into account and select Windows Runtime 8.1 x64 (MSVC2013);
3. Install it and create basic QWidget application File->New file or project->Qt Widgets Application->Select "Desktop Windows Runtime 8.1 x64" Kit->Enter the name->select QWidget as base class;
4. Go to .ui file, add Push Button, press go to clicked() slot and add QMessageBox::information(...)  there;
5. Build release and copy all needed file to separate folder, e.g. "test_wack":+ Assets    - logo_30x30.png   - logo_70x70.png   - logo_150x150.png   - logo_310x150.png   - logo_310x310.png   - logo_620x300.png   - logo_store.png+ platforms   - qwinrt.dll- AppxManifest.xml- libEGL.dll- libGLESv2.dll- Qt5Core.dll- Qt5Gui.dll- Qt5Widgets.dll- test_wack.exe;
6. Copy this folder to Windows 8.1 x64 PC and install the application by running in PowerShell (you should have a developer license installer otherwise run Show-WindowsDeveloperLicenseRegistration and enter your developer account credentials) :PS C:\Windows\system32> cd C:\Users\test\Desktop\test_wackPS C:\Users\test\Desktop\test_wack> Add-AppxPackage -Register AppxManifest.xml
7. Launch the application to ensure that it's working. Test the button and see Metro style message box.
8. Install App Cert Kit (version 3.4) from 8.1 Windows SDK and test the application by pressing "Validate Windows Store App" buttonOverall result: FAILEDFAILED Direct3D Trim after Suspend
9. Install the latest Windows 10 SDK WACK (version 10) and perform the same test:Overall result: FAILEDFAILED Crashes and hangsFAILED Direct3D feature level supportFAILED Direct3D Trim after SuspendNote: After unchecking both Direct3D tests "Crashes and hangs" test is OK, so this crash or hang is connected to Direct3D tests.
As I mentioned in previous email, I have installed Digia's QuickForecast application from Windows Store and it passed all Windows 10 WACK tests. Is there a bug in Qt 5.5 or in QWidget for WinRT?
Am I missing something important? Is there any way to pass all WACK tests? Is passing all Direct3D tests by Qt application obligatory for submitting to Windows Store?
Any information is highly appreciated.
Best Regards,Alexander Tkachenko
From: Maurice.Kalinowski at theqtcompany.com
To: atkachenko at live.ru; interest at qt-project.org
Subject: RE: [Interest] Qt 5.5 WinRT x64 VS2013 applications fail WACK Direct3D	tests
Date: Mon, 21 Sep 2015 08:44:38 +0000

would you be able to tell us, which API calls are failing on your side?
We are aware of Trim() causing troubles against the Windows 10 certification and are aiming to have this resolved with
 Qt 5.6. However, it should still work with VS2013/8.1 and then have your app also deployed on Windows 10 itself.
If there is anything else on your side, please let us know.
D3dcompile_qt was needed in older versions before D3DCompile was present. Hence we could remove that library at some point
 in the past.

From: interest-bounces+maurice.kalinowski=theqtcompany.com at qt-project.org
 [mailto:interest-bounces+maurice.kalinowski=theqtcompany.com at qt-project.org] 
On Behalf Of Alexander Tkachenko

Sent: Freitag, 18. September 2015 14:01

To: interest at qt-project.org

Subject: [Interest] Qt 5.5 WinRT x64 VS2013 applications fail WACK Direct3D tests




I downloaded latest Qt 5.5 x64 WinRT VS2013 binaries, created basic QWidget application and converted my Qt project to VS project by executing "qmake -tp vc .pro "CONFIG+=windeployqt"". The VS2013 project
 could be compiled and launched easily but both Windows Application Certification Kit Direct3D feature tests failed. I also have tested Several Qt example projects on Win 10 VirtualBox and Win 8.1 PC with the same result. Tried all these things with Qt 5.5
 WinRT x86 VS2013 which I've built from sources w/o success.

On the other hand I installed Qt's QuickForecast application from Windows Store and it passed all WACK tests. The only significant difference I noticed between both packages is d3dcompiler_qt.dll in
 QuickForecast package folder. This .dll is missing in Qt 5.5 x64 WinRT VS2013. There is a d3dcompiler_47.dll but when I put it into package I got another WACK fails connected to restricted APIs in d3dcompiler_47.dll.

Is there any way to enable Direct3D features support and passing WACK tests with Qt 5.5 WinRT x64 VS2013?

I really appreciate any help.


Best regards,

Alexander Tkachenko

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20150924/b0f8369d/attachment.html>

More information about the Interest mailing list