Jump to content
  • Advertisement
Sign in to follow this  
robydx

Render Target Array bottle neck

This topic is 3925 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I've a strange bottle neck and I need your opinion. I'm realising a .Net/DirectX10 graphics framework. I've implemented parallel split shadow mapping but I use geometry shader to send the triangle to different render target instead of repeat the rendering seperately for each split. But I've a really bad lost of frame rate (500 to 60). I've analised with pix and I've seen that the lost is when the render target is put into device. The render target is created in this way D3D10_TEXTURE2D_DESC desc; ZeroMemory( &desc, sizeof(desc) ); desc.Width = width; desc.Height = height; desc.MipLevels = 1; desc.ArraySize = count; desc.Format = format; desc.SampleDesc.Count = 1; desc.Usage = D3D10_USAGE_DEFAULT; desc.BindFlags = D3D10_BIND_RENDER_TARGET | D3D10_BIND_SHADER_RESOURCE; ID3D10Texture2D* targetTex; hr=device->CreateTexture2D(&desc,NULL,&targetTex); D3D10_RENDER_TARGET_VIEW_DESC DescRT; DescRT.Format = format; DescRT.ViewDimension = D3D10_RTV_DIMENSION_TEXTURE2DARRAY; DescRT.Texture2DArray.MipSlice = 0; DescRT.Texture2DArray.ArraySize = count; DescRT.Texture2DArray.FirstArraySlice = 0; hr=device->CreateRenderTargetView( targetTex, &DescRT, &view); and inserted in this way device->OMSetRenderTargets( 1, &this->view,this->renderTargetDepth); D3D10_VIEWPORT vp; vp.Width = width; vp.Height = height; vp.MinDepth = 0.0f; vp.MaxDepth = 1.0f; vp.TopLeftX = 0; vp.TopLeftY = 0; device->GetDevice()->RSSetViewports( 1, &vp); Have I committed an error? I don't have this problem with normal render target. The render target that I use is composed by an array of 4 texture R32F 1024 x 1024.

Share this post


Link to post
Share on other sites
Advertisement
Don’t trust PIX timing too much. If you run on a GF 8 you should try NVPerfHUD for a more accurate timing.

It it possible that the geometry shader cause your problem. They are known as a critical part of the first generation D3D10 hardware.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!