WSCLib SDK 1.0.0
GPU-accelerated video output framework for Windows
Loading...
Searching...
No Matches
Zero-Copy Texture Submission

Functions

WSCResult WSC_SubmitTexture (int outputId, void *d3d11Texture2D)
 Submit a D3D11 texture directly (GPU→GPU, no CPU copy).
WSCResult WSC_SubmitTextureNV12 (int outputId, void *d3d11Texture2D, int subresourceIndex)
 Submit an NV12 texture via D3D11 Video Processor.
WSCResult WSC_SubmitFrameNV12 (int outputId, const void *nv12Data, int width, int height, int pitch)
 Submit raw NV12 frame data from CPU memory.

Detailed Description

GPU-to-GPU frame delivery without CPU readback.

Function Documentation

◆ WSC_SubmitTexture()

WSCResult WSC_SubmitTexture ( int outputId,
void * d3d11Texture2D )

Submit a D3D11 texture directly (GPU→GPU, no CPU copy).

Parameters
outputIdOutput ID.
d3d11Texture2DPointer to ID3D11Texture2D in BGRA format.
Returns
WSC_OK on success.

◆ WSC_SubmitTextureNV12()

WSCResult WSC_SubmitTextureNV12 ( int outputId,
void * d3d11Texture2D,
int subresourceIndex )

Submit an NV12 texture via D3D11 Video Processor.

Uses hardware color conversion (YUV→RGB), scaling, and ProcAmp (brightness/contrast/saturation/hue) on the GPU Copy/Video engine instead of the 3D pipeline. Shows as "GPU-Copy" in Task Manager.

Parameters
outputIdOutput ID.
d3d11Texture2DPointer to ID3D11Texture2D in NV12 format.
subresourceIndexSubresource index within texture array (e.g. from DXVA).
Returns
WSC_OK on success.

◆ WSC_SubmitFrameNV12()

WSCResult WSC_SubmitFrameNV12 ( int outputId,
const void * nv12Data,
int width,
int height,
int pitch )

Submit raw NV12 frame data from CPU memory.

Data layout: Y plane (height * pitch bytes) followed by UV plane ((height/2) * pitch bytes, interleaved U/V).

Parameters
outputIdOutput ID.
nv12DataPointer to NV12 data (Y + UV planes).
widthFrame width in pixels.
heightFrame height in pixels.
pitchRow stride in bytes (Y and UV share the same pitch).
Returns
WSC_OK on success.