Jump to content

  • Log In with Google      Sign In   
  • 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:
50e41556959758_PIX.jpg

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:

50e41556959758_PIX.jpg

 

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