• Create Account

### #ActualPlerion

Posted 02 January 2013 - 07:02 AM

Hello everyone

Im currently encountering some issues with PIX. If i run my application without PIX it starts without any problems but if i run it with PIX it runs a little while und before the window shows the process already exits. If i use a replayable thats what i get:

So i can see that the last call was IDXGISwapChain::GetBuffer after that theres an error. So i went to my code which looks like that:

void GxDevice::initBuffers()
{
ID3D11Texture2D* targetBuffer = nullptr;
mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&targetBuffer);

D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;	memset(&rtvDesc, 0, sizeof(rtvDesc));
rtvDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
rtvDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D;
rtvDesc.Texture2D.MipSlice = 0;

res = mDevice->CreateRenderTargetView(targetBuffer, &rtvDesc, &mRenderView);

targetBuffer->Release();
}

So first i added a messagebox before CreateRenderTargetView and it gets hit by PIX. If i move it after CreateRenderTargetView it doesnt get hit.

Then i remembered that i have a little feature in my application that if the binary is built in debug mode and no debugger is attached it attaches a fork of itself to the process as debugger and prints all important debug events to a file. So i turned on that feature and started it again with PIX. What i get now is the following output:
http://pastebin.com/Ahgz5Ydb

With the obviously interesting line:
D3D11 CORRUPTION: ID3D11Device::CreateRenderTargetView: First parameter is corrupt! [ MISCELLANEOUS CORRUPTION #13: CORRUPTED_PARAMETER1]

So that means targetBuffer seems to be corrupt when using PIX (i dont get that message in the output if i run the application without PIX).

Anyone got an idea why this could happen?

Any help is appreciated,
Plerion

/EDIT:
Ive just seen that this is a known issue with PIX on windows 8... darn it, thats annoying, windows 8 is in such an unfinished state....

### #1Plerion

Posted 02 January 2013 - 06:47 AM

Hello everyone

Im currently encountering some issues with PIX. If i run my application without PIX it starts without any problems but if i run it with PIX it runs a little while und before the window shows the process already exits. If i use a replayable thats what i get:

So i can see that the last call was IDXGISwapChain::GetBuffer after that theres an error. So i went to my code which looks like that:

void GxDevice::initBuffers() {
ID3D11Texture2D* targetBuffer = nullptr;
mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&targetBuffer);

D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
memset(&rtvDesc, 0, sizeof(rtvDesc));
rtvDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
rtvDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D;
rtvDesc.Texture2D.MipSlice = 0;

res = mDevice->CreateRenderTargetView(targetBuffer, &rtvDesc, &mRenderView);

targetBuffer->Release();
}

So first i added a messagebox before CreateRenderTargetView and it gets hit by PIX. If i move it after CreateRenderTargetView it doesnt get hit.

Then i remembered that i have a little feature in my application that if the binary is built in debug mode and no debugger is attached it attaches a fork of itself to the process as debugger and prints all important debug events to a file. So i turned on that feature and started it again with PIX. What i get now is the following output:

http://pastebin.com/Ahgz5Ydb

With the obviously interesting line:

D3D11 CORRUPTION: ID3D11Device::CreateRenderTargetView: First parameter is corrupt! [ MISCELLANEOUS CORRUPTION #13: CORRUPTED_PARAMETER1]

So that means targetBuffer seems to be corrupt when using PIX (i dont get that message in the output if i run the application without PIX).

Anyone got an idea why this could happen?

Any help is appreciated,

Plerion

PARTNERS