PDA

View Full Version : Limits of nVidia PDR (pixel data range)mode



husakm
03-24-2004, 01:57 AM
I need to transfer data by the help of the PDR asynchronous mode inside a very large texture.
If I use 2048x2048 textures everything works O.K. ..
But I need to use now 4096x2048 or even 4096x4096 textures .
When I try to do this the transfer is even more slow than without PDR :mad: .
In nVidia PDR specification I found foolowing
limits:

The following additional restrictions apply to glTex[Sub]Image2D:
- The texture must fit in video memory.
- The texture must have a border size of zero.
- The stride (in bytes) between two lines of source data must not
exceed 65535.
- For non-rectangle textures, the width and height of the destination
mipmap level must not exceed 2048, nor be below 2; also, the
destination mipmap level must not be 2x2 (for 16-bit textures) or
2x2, 4x2, or 2x4 (for 8-bit textures).

Does it meant that I can use maximaly 2048x2048
output texture for PDR accelerated data transfer ?

Does exist some trick how to cross the limit ;) ?

yooyo
03-24-2004, 04:30 AM
Try to call glTexSubImage several times with smaller
parts of texture.

I have another problem with PDR... Im using it for
streaming video. Application is quite simple.. Upload decompressed frame to texture and render texture to screen. But before I try to render texure, I'll have to call glFlushPixelDataRangeNV(GL_WRITE_...)
which cause too much CPU usage. How to avoid this?

What workaround you use with PDR?

yooyo

husakm
03-25-2004, 03:53 AM
Calling glTextSubImage2D multiple times does not help at all . The restiction is the target texture size not the transfered amount of data. According your problem - as you long as you will use the mentioned command benefit from PDR mode usage will be strongly reduced due to sub optimal operations timing.