We are currently investigating a low latency input to output system using your integrated HD 4000 GPU technologies.
Unfortunately we have discovered an issue when transferring data directly to the physical memory on the graphics module form a PCIe capture card.
The picture ( http://www.datapath.co.uk/Vision/20131126_163932.jpg ) depicts a DMA operation from a capture (input) driver directly to an Intel integrated GPU (output). The scatter gather buffer is generated from a virtual address and length passed to the driver via ksproxy (DirectShow streaming). We also see the error using other interfaces including DirectX9 and assume that the error must be related to the hardware DMA operation. The peep-to-peer DMA works without error on non Intel GPU's such as AMD and NVIDIA.
A virtual address is locked by the driver and a scatter gather table created for the underlying physical memory.
We use Windows provided routines to lock and create the scatter gather tables:
We have tried a 'memset' command on the virtual buffer prior to a DMA in an attempt to invoke the 'swizzle table' as we are not using a front door method to copy the data. We appreciate that the GPU back buffer will reside in system memory and accessed via the 'swizzle table'.
The data in the attached image looks to be in tiles. If we copy via system memory the error does not exist.
The data in the image is live (movement within the tiles) when a camera is used as an input source.
Can you provide any information to help us resolve the issue?
Thank you very much in advance, Rich.