locked
SwapChainBackgroundPanel and TextBox control problem

    Question

  • I am developing a DirectX game and using SwapChainBackgroundPanel as root elelement. I forced DirectX feature level to 9_1 (or 9_2 or 9_3, does not matter) via dxcpl.exe for testing purposes. Everithing worked fine, until I added TextBox control onto SwapChainBackgroundPanel in runtime. I got an unhandled exception:

    Unhandled exception at 0x6289315A (Windows.UI.Xaml.dll) in 4Elements2.exe: 0xC000027B: An application-internal exception has occurred (parameters: 0x13BB7EC8, 0x00000001).

    Here is the stacktrace:

    combase.dll!RoFailFastWithErrorContextInternal(HRESULT hrError, unsigned long cStowedExceptions, _STOWED_EXCEPTION_INFORMATION_V1 * * aStowedExceptionPointers) Line 853	C++
    Windows.UI.Xaml.dll!CCoreServices::NWDrawTree(HWWalk * pHWWalk, ICoreRenderTarget * pIRenderTarget, VisualTree * pVisualTree, unsigned int uBackgroundColor, unsigned int forceRedraw, unsigned int needsToReleaseHardwareResources, XRECT_WH * prcDirtyRect) Line 11035	C++
    Windows.UI.Xaml.dll!CCoreServices::NWDrawMainTree(ICoreRenderTarget * pIRenderTarget, unsigned int fForceRedraw, unsigned int needsToReleaseHardwareResources, XRECT_WH * prcDirtyRect) Line 10764	C++
    Windows.UI.Xaml.dll!CWindowRenderTarget::Draw(ICoreServices * pCore, unsigned int fForceRedraw, XRECT_WH * prcDirtyRect) Line 124	C++
    Windows.UI.Xaml.dll!CXcpBrowserHost::OnTick() Line 1097	C++
    Windows.UI.Xaml.dll!CXcpDispatcher::Tick() Line 1080	C++
    Windows.UI.Xaml.dll!CXcpDispatcher::OnReentrancyProtectedWindowMessage(HWND__ * msg, unsigned int wParam, unsigned int lParam, long) Line 613	C++
    Windows.UI.Xaml.dll!CXcpDispatcher::WindowProc(HWND__ * hwnd, unsigned int msg, unsigned int wParam, long lParam)	C++
    user32.dll!_InternalCallWinProc@20()	Unknown
    user32.dll!_UserCallWinProcCheckWow@36()	Unknown
    user32.dll!_DispatchMessageWorker@8()	Unknown
    user32.dll!_DispatchMessageW@4()	Unknown
    Windows.UI.dll!Windows::UI::Core::CDispatcher::ProcessMessage(int bDrainQueue) Line 113	C++
    Windows.UI.dll!Windows::UI::Core::CDispatcher::ProcessEvents(Windows::UI::Core::CoreProcessEventsOption options) Line 175	C++
    Windows.UI.Xaml.dll!CJupiterWindow::RunCoreWindowMessageLoop() Line 393	C++
    Windows.UI.Xaml.dll!CJupiterControl::RunMessageLoop() Line 686	C++
    Windows.UI.Xaml.dll!DirectUI::DXamlCore::RunMessageLoop() Line 2323	C++
    Windows.UI.Xaml.dll!DirectUI::FrameworkView::Run() Line 74	C++
    twinapi.dll!`Windows::ApplicationModel::Core::CoreApplicationViewAgileContainer::RuntimeClassInitialize'::`55'::<lambda_41C56E110EA0F879>::operator()(void * pv) Line 559	C++
    twinapi.dll!`Windows::ApplicationModel::Core::CoreApplicationViewAgileContainer::RuntimeClassInitialize'::`55'::<lambda_41C56E110EA0F879>::<helper_func>(void * pv) Line 612	C++
    SHCore.dll!Microsoft::WRL::Details::EventTargetArray::RuntimeClassInitialize(unsigned int)	Unknown
    kernel32.dll!@BaseThreadInitThunk@12()	Unknown
    ntdll.dll!___RtlUserThreadStart@8()	Unknown
    ntdll.dll!__RtlUserThreadStart@8()	Unknown

    I made some investigation and found this in handler variables:

    ResultCode	0x8899000b : No hardware rendering device is available for this operation. 	HRESULT

    Is this real problem or driver/emulation error? Will game run on DirectX 9 devices, especially on ARM devices?

    Tuesday, July 17, 2012 2:05 PM

Answers

  • Turns out it is a known bug in the Windows 8 RP build. Using DXCPL.exe  to set the feature level limit below 10 will fail when using XAML. This should be resolved in the next Win8 release because this is the correct process to test running an app on hardware with a lower feature level.

    David Lamb

    Saturday, July 21, 2012 1:03 AM
    Moderator

All replies

  • Reading the following, you seem to be following the documented guidance for Win8 and Windows RT devices. It sounds as if there is more than a general configuration or platform limitation you are encountering. I'm looking into this now.

    Direct3D Feature Levels

    Developing for different Direct3D feature levels


    David Lamb

    Wednesday, July 18, 2012 9:27 PM
    Moderator
  • Turns out it is a known bug in the Windows 8 RP build. Using DXCPL.exe  to set the feature level limit below 10 will fail when using XAML. This should be resolved in the next Win8 release because this is the correct process to test running an app on hardware with a lower feature level.

    David Lamb

    Saturday, July 21, 2012 1:03 AM
    Moderator