drahei_c
03-10-2003, 04:31 AM
Hi!
I am fairly new to OpenGL Programming an I have a question concerning hardware/software-performance.
I work on a Win2k platform with a ASUS GF 4 card (AGP slot). I have written a multithreaded Win32 application using VC 6 which renders exclusively two-dimensional. Basically one thread writes random data in a simple unsigned byte array [1024]. The values written to this array (ranging from values 0 to 255) shall serve as texture data that gets displayed two coloured (0 is equivalent to black and 255 to the brightest yellow). The other thread receives this array by means of a message pipe and is responsible for displaying the textures on a GL_QUADS primitive. I therefore use the command glTexSubImage*() in order to constantly replace the last texture data resident in texture memory with the newly created texture data from the array resp. the pipe. The frequency I would like to realize in this process is 8 kHz which means that 8 Mbyte/sec texture data accumulate and have to be rendered. But performance is quite poor and I only can realize a frequency of about 3.5 kHz before my CPU usage reaches 100% and the textures start to jitter.
I would like to know if there by any chance is a way to increase the performance. Isn't this performance a little bit low? Where might the bottleneck be (e.g. transferring the texture data from system memory to texture memory, message pipe)?
I am really stucked with this problem and would be very thankful for any hints and pieces of advice.
Thanx
CD
I am fairly new to OpenGL Programming an I have a question concerning hardware/software-performance.
I work on a Win2k platform with a ASUS GF 4 card (AGP slot). I have written a multithreaded Win32 application using VC 6 which renders exclusively two-dimensional. Basically one thread writes random data in a simple unsigned byte array [1024]. The values written to this array (ranging from values 0 to 255) shall serve as texture data that gets displayed two coloured (0 is equivalent to black and 255 to the brightest yellow). The other thread receives this array by means of a message pipe and is responsible for displaying the textures on a GL_QUADS primitive. I therefore use the command glTexSubImage*() in order to constantly replace the last texture data resident in texture memory with the newly created texture data from the array resp. the pipe. The frequency I would like to realize in this process is 8 kHz which means that 8 Mbyte/sec texture data accumulate and have to be rendered. But performance is quite poor and I only can realize a frequency of about 3.5 kHz before my CPU usage reaches 100% and the textures start to jitter.
I would like to know if there by any chance is a way to increase the performance. Isn't this performance a little bit low? Where might the bottleneck be (e.g. transferring the texture data from system memory to texture memory, message pipe)?
I am really stucked with this problem and would be very thankful for any hints and pieces of advice.
Thanx
CD