DX9 Render target size

Started by
18 comments, last by Corefanatic 13 years, 3 months ago
Quote:Original post by Corefanatic
Well, I do link against the debug versions and in Visual Studio Debug output I do get messages from D3DX like : D3DX: (INFO) Using SSE2 optimizations.
D3DX debug spew comes from linking d3dx9d.lib. Do you get any debug output from D3D9? You should at least get a message saying it's using a HAL HWVP device or similar.

EDIT: Ninja'd again!
Advertisement
Quote:Original post by Buckeye
You can set the level of debugging messages. That's why we posted the link to the DruinkJournal. Did you check the DX control panel?

EDIT: The messages should come from Direct3D, not D3DX.

Ex:
Direct3D9: (INFO) :Direct3D9 Debug Runtime selected.


( EDIT2: C'mon, Steve. Keep up! [smile])


Ok, got the proper debug now but no errors or warnings related to textures or render targets when I step through the code, just few warnings about vertex buffers after loading .x mesh.
Quote:Original post by kauna
Quote:Original post by Corefanatic
Zbuffer: AutoDepthStencilFormat = D3DFMT_D16;


I meant the width*height of the z-buffer, not the bit depth.


I don't explicitly set it, I assume D3D does that automatically from my window size.

Just for fun, try m_RT1->GetLevelDesc and see if all the parameters in D3DSURFACE_DESC are correct. Obviously, width and height should be as requested.

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.

You don't forget how to play when you grow old; you grow old when you forget how to play.

Quote:Original post by Corefanatic
Quote:Original post by kauna
Quote:Original post by Corefanatic
Zbuffer: AutoDepthStencilFormat = D3DFMT_D16;


I meant the width*height of the z-buffer, not the bit depth.


I don't explicitly set it, I assume D3D does that automatically from my window size.


So logically, if your window size is smaller than 1024*1024, then rendering to a 1024*1024 render target will fail, since your z-buffer will be the same size as the back buffer.

I am not saying that this is the case, but just something to verify.
Quote:Original post by Buckeye
Just for fun, try m_RT1->GetLevelDesc and see if all the parameters in D3DSURFACE_DESC are correct. Obviously, width and height should be as requested.


Seems correct, format is as I set it,

Type is D3DRTYPE_SURFACE
Usage is 1
Pool is D3DPOOL_DEFAULT
MultiSampleType is D3DMULTISAMPLE_NONE
MultiSampleQuality is 0
Width and Height are 1024 which doesn't work
Quote:Original post by kauna
Quote:Original post by Corefanatic
Quote:Original post by kauna
Quote:Original post by Corefanatic
Zbuffer: AutoDepthStencilFormat = D3DFMT_D16;


I meant the width*height of the z-buffer, not the bit depth.


I don't explicitly set it, I assume D3D does that automatically from my window size.


So logically, if your window size is smaller than 1024*1024, then rendering to a 1024*1024 render target will fail, since your z-buffer will be the same size as the back buffer.

I am not saying that this is the case, but just something to verify.


I think you are onto the problem, my height is less than 1024. Also, the backbuffer size is probably less then my window size since the window frame takes a bit off.

What is the best way to find out the backbuffer size after it's been created?

Hi,

IDirect3DSurface9 *pZStencilSurface;

you can get the z-buffer/stencil with device->GetDepthStencilSurface(&pZStencilSurface);

You may create a separate depth-stencil surface to use with your 1024x1024 render target.

Cheers!
Quote:Original post by kauna

Hi,

IDirect3DSurface9 *pZStencilSurface;

you can get the z-buffer/stencil with device->GetDepthStencilSurface(&pZStencilSurface);

You may create a separate depth-stencil surface to use with your 1024x1024 render target.

Cheers!


Ok, solved it, the dimensions of my backbuffer and therefore the depthbuffer were slightly smaller than my window size, therefore nothing rendered. After I got the right dimensions from my backbuffer, the render target works as intended.

Thx for everyone's help.
Quote:Original post by kauna

Hi,

IDirect3DSurface9 *pZStencilSurface;

you can get the z-buffer/stencil with device->GetDepthStencilSurface(&pZStencilSurface);

You may create a separate depth-stencil surface to use with your 1024x1024 render target.

Cheers!


Ok, solved it, the dimensions of my backbuffer and therefore the depthbuffer were slightly smaller than my window size, therefore nothing rendered. After I got the right dimensions from my backbuffer, the render target works as intended.

Thx for everyone's help.

This topic is closed to new replies.

Advertisement