Revert "[c-host] make pointer post function thread safe"
This reverts commit 3feed7ba07.
Revert "[c-hots] fix incorrect unlock timing"
This reverts commit 57f1f2d1fe.
Revert "[c-host] increase the queue length and remove debug output"
This reverts commit b0f9f15a60.
Revert "[c-host] dxgi: use low level mouse input by default"
This reverts commit dc4d820666.
Revert "[c-host] nvfbc: no need for a cursor position event with LGMP"
This reverts commit e30b54ddb2.
This is known to prevent cursor updates on the secure desktop
(UAC) but DXGI DD does not provide us with the real mouse
coordinates when applications have 'captured' the cursor.
This changes the method of the memory copy from the host application to
the guest. Instead of performing a full copy from the capture device
into shared memory, and then flagging the new frame, we instead set a
write pointer, flag the client that there is a new frame and then copy
in chunks of 1024 bytes until the entire frame is copied. The client
upon seeing the new frame flag begins to poll at high frequency the
write pointer and upon each update copies as much as it can into the
texture.
This should improve latency but also slightly increase CPU usage on the
client due to the high frequency polling.
While the _s functions are for security as they avoid exceeding the
supplied buffer, in our case they are not really required as we are
allocating a buffer large enough to store the entire result.
Fixes#171
ID3D11DeviceContext_Map by default will force a CPU sync if the prior call to
CopyResource has not completed, this change defers the mapping and sets the
D3D11_MAP_FLAG_DO_NOT_WAIT when attempting to map the texture allowing the
capture to continue without incurring an expensive CPU/GPU sync.
A new tuneable has also been added
* dxgi:maxTextures