• Advertisement
Sign in to follow this  

NVidia vendor hack "makefourcc NVCS"

This topic is 1214 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

Hello
Can't find any information about NVCS texture format, but from Pix i see it's used in games and guess for getting depth buffer. How to use the same and how it works? Here is the log after most of scene rendering, but before drawing transparent objects which require depth texture (it's nvcs, but proper screen size, no textures or render targets were created of that format at startup):

<0x0A483ED8> IDirect3DDevice9::CreateTexture(16, 1, 1, 0x00000200, Unknown format, D3DPOOL_DEFAULT, 0x0012F768 --> 0x348FD540, NULL)
CreateObject(D3D9 Texture, 0x348FD540)
CreateObject(D3D9 Surface, 0x348A1818)
<0x0A483ED8> IDirect3DDevice9::GetRenderState(D3DRS_POINTSIZE, 0x0012F754)
<0x0A483ED8> IDirect3DDevice9::SetRenderState(D3DRS_POINTSIZE, 13108852736.000f)
<0x0A483ED8> IDirect3DDevice9::SetPixelShaderConstantI(0, 0x0012F6EC, 6)
<0x0A483ED8> IDirect3DDevice9::SetRenderState(D3DRS_POINTSIZE, 0.000f)
<0x348FD540> IDirect3DTexture9::Release()
DestroyObject(D3D9 Texture, 0x348FD540)
DestroyObject(D3D9 Surface, 0x348A1818)

Thanks!

Share this post


Link to post
Share on other sites
Advertisement
I have not heard of this NVCS format, but the various Nvidia driver hacks are documented [url="http://developer.download.nvidia.com/GPU_Programming_Guide/GPU_Programming_Guide_G80.pdf"]here[/url].

Share this post


Link to post
Share on other sites
It's not that new - Google found a two year old mention of it at http://aras-p.info/blog/2009/11/20/direct3d-gpu-hacks/ but I couldn't find any documentation for it.

Share this post


Link to post
Share on other sites
I understand that this is an old topic, but while searching for "NVCS" I always ended up here, and other than one other thread (also by dummynull, in Russian) there is almost no information available. Eventually I figured things out, and it became clear that so did many others - but I just wanted to put some useful links here, for other wonderers who (like me) have trouble figuring it out...
 
So, "NVCS" is an internal NVida format, but it is not precisely a "vendor hack", on the contrary - it is a pretty civil API - and this is why there isn't really a lot of information about the "NVCS" format (btw, it can easily change to some other identifier in future versions of NVidia drivers). This API is available through nvapi.dll (obviously for NVidia GPUs only), and the culprit function is called NvAPI_D3D9_StretchRectEx().
 
You can get (almost) everything you need to know about this here: https://developer.nvidia.com/nvapi
 
In case you DO NOT want to "hard link" with nvapi.dll (i.e. if you DO NOT want your game to only work on NVidia-equipped systems), then here are some additional useful links:
 
 
_________________________________________________________________________________________
 
http://www.hialgo.com - HiAlgo optimizes your PC gaming experience, improves fps and smoothness of control, reduces lag and prevents system overheating.
Edited by HiAlgoBoost

Share this post


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

  • Advertisement