RE: No right way to share PCI device memory with- user mode?

> > Absolutely. DDraw lets user mode application access the display surfaces

> directly (look at IDirectDrawSurface7::Lock for example).

Are you sure it does not do any double buffering?

DirectDraw definitely let’s an app read/write the primary display frame
buffer (the memory being used to refresh the current display), although
it’s perhaps less common. It’s more common to use multiple buffers and have
the app write to a chunk of video memory that’s not currently refreshing
the display (a back buffer). This allows the whole page to be flipped when
the vertical retrace comes along (by changing the refresh starting buffer
address), preventing tearing of the display image. For 3-D animation, this
makes smooth frames display, with no half drawn scenes. It’s also VERY
common to have the app write to a back buffer which the display hardware
then does pixel stretching and color space conversion on and overlays some
rectangle on the screen (for video playback). The last stage of the
application’s video codec will write into this back buffer address space.

I actually know applications that us the DirectX 3-D hardware texture
mapping on the video card to accelerate video editing special effects
rendering. These apps are heavily reading/writing the video frame buffer
and executing 3-D rendering operations to build composite frames, and never
ask these buffers to be used as the current screen refresh buffer.They just
read the rendered scenes and compress them back into a video file.

  • Jan

You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com