Sign in to follow this  
VISQI

PIX question

Recommended Posts

People say PIX is great and everything but i don't know if what's happening to me is because i don't know how to use it or because PIX is really not that big a deal.


- Whenever i try to run a demo with PIX, some of the textures aren't even shown and some are shown as dead(when they should be alive or the program will crash!!).
- Is there a way to see the name of the textures in PIX??
- Should the textures that are shown be member textures to a certain class or can they be just textures that are initialized and released in a single function??

I usually use the option to capture the frame of the texture using f12.

Thanks guys

Share this post


Link to post
Share on other sites
It's been a while since I used PIX, but from back then I seem to recall that the texture/rendering/geometry stuff wasn't too hassle-free indeed and that its main advantage was keeping track of all D3D calls and profiling these. From what I've read since though, I got the impression that it has been much improved and that the texture/rendering/geometry stuff should work much better now. It may be a silly question, but are you using the most recent version?

Anyway, I'm afraid I can't answer your questions from any recent experience, but to the last one I'd say it doesn't matter. PIX just keeps track of the D3D calls and doesn't care about your application. To actually get some application-specific info in there, you could use the D3DPERF utility functions ([url="http://www.gamedev.net/topic/362915-c-d3dpix-profiling-helper/"]see here[/url]). This may also be helpful for your second question. When you create a texture, you can set a marker (using [url="http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.reference.d3dperf_setmarker(v=vs.85).aspx"]D3DPERF_SetMarker()[/url]) with the texture's name. PIX will show this marker text, so if you put it just before the texture creation call, you can see which texture is being created and remember the pointer to track it through the frame.

Share this post


Link to post
Share on other sites
[quote name='remigius' timestamp='1307472536' post='4820627']
It's been a while since I used PIX, but from back then I seem to recall that the texture/rendering/geometry stuff wasn't too hassle-free indeed and that its main advantage was keeping track of all D3D calls and profiling these. From what I've read since though, I got the impression that it has been much improved and that the texture/rendering/geometry stuff should work much better now. It may be a silly question, but are you using the most recent version?

Anyway, I'm afraid I can't answer your questions from any recent experience, but to the last one I'd say it doesn't matter. PIX just keeps track of the D3D calls and doesn't care about your application. To actually get some application-specific info in there, you could use the D3DPERF utility functions ([url="http://www.gamedev.net/topic/362915-c-d3dpix-profiling-helper/"]see here[/url]). This may also be helpful for your second question. When you create a texture, you can set a marker (using [url="http://msdn.microsoft.com/en-us/library/microsoft.directx_sdk.reference.d3dperf_setmarker(v=vs.85).aspx"]D3DPERF_SetMarker()[/url]) with the texture's name. PIX will show this marker text, so if you put it just before the texture creation call, you can see which texture is being created and remember the pointer to track it through the frame.
[/quote]

That article was downright great, but it still doesn't solve the dead textures. Plus i don't want to mark when the texture is getting created, i just want to see the name of the texture that i am viewing on PIX because i am using textures as render targets, so i need to see the texture and its name so i would know if the effect(for example: Bloom Effect) is getting created correctly.

I have the DX SDK for DirectX 9.0c, can i download PIX separately without having to download the DX SDK 11??

Share this post


Link to post
Share on other sites
The newest DX SDK still includes D3D9 bits (in addition to D3D10 and D3D11).

The newest version of PIX has the capability of associating resources with user-defined names. For this (IIRC) you use SetPrivateData with a certain data GUID so that PIX will recognize your custom data as the resource name. [url="http://blogs.msdn.com/b/chuckw/archive/2010/04/15/object-naming.aspx"]http://blogs.msdn.com/b/chuckw/archive/2010/04/15/object-naming.aspx[/url]

PIX does still have some bugs in some edge cases, but basic stuff generally works fine with it.

Share this post


Link to post
Share on other sites
[quote name='VISQI' timestamp='1307471221' post='4820612']- Whenever i try to run a demo with PIX, some of the textures aren't even shown and some are shown as dead(when they should be alive or the program will crash!!).[/quote]Do you mean while the demo is running, or afterwards when you're viewing the PIX capture?[quote]- Is there a way to see the name of the textures in PIX??[/quote]What do you mean? The file-name? The variable name? DirectX doesn't know about these things...[quote]- Should the textures that are shown be member textures to a certain class or can they be just textures that are initialized and released in a single function??[/quote]Again, DirectX has no way of knowing if you store a pointer to a texture in a class-member or not...

Share this post


Link to post
Share on other sites
sorry for the late reply. My connection was cut off for a while.
I meant i can't see the textures in the PIX capture, but you shouldn't see them when the demo is running. For example if i filtered a texture to another texture(Bright-Pass filter, for example) and then i applied a post-processing effect on ANOTHER texture USING the filtered texture. So the filtered texture is not really shown when the demo is running but it has been USED. So PIX should capture it, shouldn't it??

And answering your second question, i meant the variable name. Like if i had a texture "Tex1" and i rendered it. Is there any way to know where is "Tex1" in the PIX capture??

and about the D3DPERF functions. Tried it but it didn't work. I nearly copy-pasted the thing but it didn't work.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this