2 Replies Latest reply on Oct 30, 2014 12:11 AM by hmelyoff

    Critical: D3D11 - copying texture to texture may result in complete graphics system slow down

    mark_h_@intel

      I am posting this question on behalf of hmelyoff because the original post was accidentally deleted. We're sorry that the original post was removed. Below is the text from the deleted post.

       

      We found a critical issue with latest Intel HD (4600) driver build 15.36.7.64.3960 (latest), however Intel HD driver build 15.33.30.64.3958 (latest) works fine in same situation.

      issue also present in 15.36.3.64.3907 (previous). I can not install 15.33.29.64.3945 (previous) - website shows that my system supported but release notes in driver shows that not supported and driver shows error.

      AMD and Nvidia graphics have no issues.

      In our application we have 2 textures, both with same type:

      Width = 1920;

      Height = 1088;

      MipLevels = 1;

      ArraySize = 1;

      Format = DXGI_FORMAT_B8G8R8X8_UNORM;

      SampleDesc = { Count=1, Quality = 0 };

      Usage = D3D11_USAGE_DEFAULT;

      BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;

      CPUAccessFlags = 0;

      MiscFlags = D3D11_RESOURCE_MISC_SHARED;

      pTex11 - opened from Direct3D9Ex with OpenSharedResource:

        FAIL_RET( m_pEngine->m_pd3dDevice9->CreateTexture(lpAllocInfo->dwWidth, lpAllocInfo->dwHeight,

        1,

        D3DUSAGE_RENDERTARGET,

        D3DFMT_X8R8G8B8,

        D3DPOOL_DEFAULT,

        &privateTexture9.p, &hShared) );

        FAIL_RET( m_pEngine->m_pD3D11->OpenSharedResource(hShared, IID_ID3D11Texture2D, (void **) &pTex11) );

      and pTex11Mipmap - exactly same type as pTex11 (it should be mipmap texture, but we made it same type in our test to isolate this issue):

        D3D11_TEXTURE2D_DESC desc11;

        pTex11->GetDesc(&desc11);

        //desc11.MipLevels = 0;

        //desc11.BindFlags = D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;

        //desc11.MiscFlags = D3D11_RESOURCE_MISC_GENERATE_MIPS;

       

        CComPtr pTex11Mipmap;

        FAIL_RET( m_pEngine->m_pD3D11->CreateTexture2D(&desc11, NULL, &pTex11Mipmap) );

      Then following call results in all graphics system slow down (including desktop, mouse and other applications):

      pContext->CopySubresourceRegion(pTex11Mipmap, 0, 0, 0, 0, pTex11, 0, NULL);

      pTex11Mipmap used as shader resource view for rendering. Commenting this line solves graphics system slow down.

      The issue can be reproduced in XSplit Broadcaster in then following way:

      1. Run XSplit Broadcaster on Intel HD 4600 (choose Integrated graphics profile if you run on Optimus laptop).

      2. Just add Full HD capture card, or Full HD video to a scene (for example Wildlife from Win7 sample videos)

      3. Right click on video source and turn on enhance resize parameter in layout tab

      This was tested (for example) on laptop with Win8.1 64-bit installed:

      Intel HD 4600 + Nvidia GTX 870M (Optimus)

      (Desktop systems shows same behavior)

      XSplit Broadcaster 1.3

      https://www.xsplit.com/download