locked
A new bug in the VS2012 RTM with 9200 ?

    Question

  • Please check the D2D and DWrite samples (Updated 8/16/2012) with VS2012 RTM, like "DirectWrite custom text renderer sample".

    Open dxcpl.exe and add the sample exe to Scope list and set "Feature level limit" to 9.1 ~ 9.3 .  "Force WARP" does no matter. Leave "Disable FL upgrade" unchecked (BTW, what's this option?) . 

    It will crash at m_d2dContext->EndDraw() with the errors:

    _________________________________

    First-chance exception at 0x753D4B32 in DWriteCustomTextRenderer.exe: Microsoft C++ exception: _com_error at memory location 0x008FD3F8.
    First-chance exception at 0x753D4B32 in DWriteCustomTextRenderer.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x008FE790.
    D3D11 WARNING: Using ID3D11Debug::ReportLiveDeviceObjects with D3D11_RLDO_DETAIL will help drill into object lifetimes. Objects with Refcount=0 and IntRef=0 will be eventually destroyed through typical Immediate Context usage. However, if the application requires these objects to be destroyed sooner, ClearState followed by Flush on the Immediate Context will realize their destruction.
     [ STATE_CREATION WARNING #422: LIVE_OBJECT_SUMMARY]
    D3D11 WARNING: Live ID3D11Device at 0x00ED6A4C, Refcount: 72 [ STATE_CREATION WARNING #441: LIVE_DEVICE]
    D2D DEBUG WARNING - A Draw call by a render target failed [8007000e]. Tags [0x0, 0x0].
    First-chance exception at 0x753D4B32 in DWriteCustomTextRenderer.exe: Microsoft C++ exception: Platform::OutOfMemoryException ^ at memory location 0x008FF99C. HRESULT:0x8007000E

    _________________________________

    what is out of memory? Seems a gradient or bitmap brush will cause this exception .

    Tested in Win8 9200 with the new VS2012 Express .  (The VS2012 RC with 8400 has no such problem.)



    • Edited by Raptor K Thursday, August 16, 2012 2:28 PM
    Thursday, August 16, 2012 2:09 PM

All replies

  • Hello,

     

    Thanks for your feedback, I will involve more experts to investigate it.

     

    Best regards,

    Jesse


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us

    Friday, August 17, 2012 6:51 AM
    Moderator
  • Hello,

    Unfortunately I was not able to reproduce your issue. Can you please give me a more detailed set of step by step instructions so that I can make sure that I am setting things up correctly. Also could you please generate a dump file of the crash and make it available to me via SkyDrive?

    Thanks much,

    James


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/

    Saturday, August 18, 2012 12:47 AM
    Moderator
  • Sorry, m_d2dContext->EndDraw() did not crash, but it returns E_OUTOFMEMORY, then the app throw an exception. So the dump is useless. 

        HRESULT hr = m_d2dContext->EndDraw(); 
        if (hr != D2DERR_RECREATE_TARGET) 
        { 
            DX::ThrowIfFailed(hr); 
        } 

    If not throw, it draws nothing. 


    Besides real PC, I tried it on a Virtual Machine. It also reproduced the error (but condition is a little different). So I think everyone can reproduce it. 

     

    STEPS: 

    1)dxcpl.exe add sample exe or parent folder to list 

    2) "Feature level limit" = 9.1 .  

    3)  Two other options:  1=checked, 0=unchecked 

     

    [Force WARP] 

    [Disable Feature Level Upgrade] 

    Result of EndDraw 

    Real PC 

    0 or 1 

    0 

    E_OUTOFMEMORY 

    Real PC 

    0 or 1 

    1 

    S_OK 

    VM 

    0 

    0 

    S_OK 

    VM 

    1 

    0 

    E_OUTOFMEMORY 

    VM 

    0 or 1 

    1 

    S_OK 

     Win8 Ent EVAL + VS2012 EXPRESS


    If you still cannot reproduce the issue. I can try to get the dump of the D3D11 WARNING.



    • Edited by Raptor K Saturday, August 18, 2012 9:20 AM
    Saturday, August 18, 2012 2:49 AM
  • Hello,

    I am still not able to reproduce the issue. Please take a look at the screen capture referenced below of the repro steps that I am taking. Please let me know what I am doing wrong.

    https://skydrive.live.com/redir?resid=A112913F054133F!325&authkey=!AFiaFL60ByZdjYQ

    -James


    Windows Media SDK Technologies - Microsoft Developer Services - http://blogs.msdn.com/mediasdkstuff/


    Monday, August 20, 2012 10:03 PM
    Moderator
  • The exe path is wrong. The running exe is under the "appx" folder.

    DirectWrite custom text renderer sample\C++\Debug\DWriteCustomTextRenderer\AppX\DWriteCustomTextRenderer.exe

    Or you can add the parent folder.


    C++ DX11

    Tuesday, August 21, 2012 1:12 AM
  • Hi guys, 

    Just faced with same issue on my DX project. Does this investigation solved in any way? 

    --

    Alex

    Tuesday, November 20, 2012 11:56 PM
  • There is a way to workaround feature, at least in my config -  if you set "Disable Feature Level Upgrade" checkbox in DXCpl.exe it don't return E_OUTOFMEMORY error in sample/my app. 
    Monday, November 26, 2012 8:51 PM
  • Just had the same issue, and "Disable Feature Level Upgrade" does fix this (and hopefully indicates that everything should work fine on 9_1!).

    Monday, December 10, 2012 2:39 PM