2

I have done the init steps in DX10/11/12 many times before, all of a sudden in VS2019 DX12 will not create anything besides the following objects: ID3D12Debug, ID3D12InfoQueue, ID3D12Device2.

Even a straight creation of command queue fails:

    bool DX12ObjectFactory::CreateCommandQueue(ID3D12Device* pDevice, __out 
    ID3D12CommandQueue** ppCmdQueue, const D3D12_COMMAND_QUEUE_DESC& queueCreateDesc)
    {
        OnFailedThrow(pDevice->CreateCommandQueue(&queueCreateDesc, 
        IID_PPV_ARGS(&*ppCmdQueue)));
        return true;
    }

HRESULT message is:

hr = 0x00000108 : An open/create operation completed while an oplock break is underway.

Error code lookup points to: ERROR_TOO_MANY_POSTS 298 (0x12A)

Weird thing is that things were working a few days ago, maybe a Windows update broke it...

Thanks

Acorn
  • 24,970
  • 5
  • 40
  • 69
Sixjac
  • 339
  • 4
  • 16
  • Tried rebooting? Updating graphics drivers? Closing background programs that might be using the GPU? – Alan Birtles Mar 17 '20 at 07:44
  • @AlanBirtles yes, one of the 1st things I did, also uninstalled Radeon 20.2.2 and reverted to 19.12.2, GPU is RX 580, and Ryzen 7 3700x, IDXGIAdapter1 enumeration picks primary GPU, in this case RX 580. – Sixjac Mar 17 '20 at 07:48
  • 1
    which windows 10 build/version do you use? which SDK build do you target? – magicandre1981 Mar 17 '20 at 15:47
  • Have you initialized all members of queueCreateDesc properly? – SurvivalMachine Mar 17 '20 at 17:12
  • Try building and running one of the samples. You could also try instantiating my template and see if that initializes on your system. See [GitHub](https://github.com/walbourn/directx-vs-templates). Also, have you enabled the Debug Layer and looked for debug output? – Chuck Walbourn Mar 17 '20 at 17:51

1 Answers1

1

D3D12_COMMAND_QUEUE_DESC was initialized properly, issues seemed to be use of IID_PPV_ARGS, as it was fine with the old way of using IID_ID3D12CommandQueue, (void**)&(*ppCmdQueue).

Also my swapchain issue I forgot to initialize buffer count with a value >= 2.

Acorn
  • 24,970
  • 5
  • 40
  • 69
Sixjac
  • 339
  • 4
  • 16