Geoffrey McRae
69b984aa2c
[host] dxgi: add helper to manage COM object memory
2023-10-27 17:33:40 +11:00
Geoffrey McRae
47329ebd89
[host] dxgi: move utility functions into util.c
2023-10-27 11:28:37 +11:00
Geoffrey McRae
5d7469d23e
[host] linux: fix build with new HDR changes (untested)
2023-10-27 01:19:46 +11:00
Geoffrey McRae
b41840b010
[host] all: tell the client if HDR PQ is in use or not
2023-10-27 01:11:57 +11:00
Geoffrey McRae
200b7b732c
[host] dxgi: properly convert HDR16 to HDR10
...
DXGI doesn't take into account the SDRWhiteLevel that has already been
applied to the monitor when it converts to HDR10 which results in clipping.
This change set implements a HLSL shader to reverse this while at the same
time converting to HDR10.
This is still not perfect but far better then doing nothing.
2023-10-26 22:57:41 +11:00
Geoffrey McRae
c5923b9b4d
[host] dxgi: obtain HDR color space and monitor information
2023-10-22 17:38:42 +11:00
Geoffrey McRae
bde2eef175
[host] dxgi: fix format for HDR10 when it needs correcting
2023-10-22 04:01:51 +11:00
Geoffrey McRae
ccd0a0bcf9
[host] dxgi: use HDR10 instead of HDR16 to save bandwidth
2023-10-22 03:47:32 +11:00
Geoffrey McRae
742e41c2c3
[host] dxgi: fix HDR damage aware copy
2023-10-22 03:15:12 +11:00
Geoffrey McRae
12d051d8c0
[host] nvfbc: do not try to init on non NVIDIA hardware
2023-10-22 01:46:57 +11:00
Geoffrey McRae
a6a6b8779a
[host] nvfbc: fix use of initialized variable
2023-10-22 01:21:20 +11:00
Geoffrey McRae
128a8938c6
[host] nvfbc: remove useless update of member
2023-10-20 22:12:42 +11:00
Geoffrey McRae
2e515657dd
[all] update/add license headers
2023-10-20 15:36:34 +11:00
Geoffrey McRae
dab5618a6d
[host] linux: fix compilation
2023-04-26 16:31:02 +10:00
Geoffrey McRae
99333a03c1
[host] nvfbc: fix failure to store last hdr state
2023-04-26 15:58:22 +10:00
Geoffrey McRae
45318aa653
[host] nvfbc: bump the format version when HDR status changes
2023-04-26 15:55:26 +10:00
Geoffrey McRae
f84165ac66
[host] app: report to the client if the frame is actually HDR
2023-04-26 15:48:01 +10:00
Geoffrey McRae
e4a8424fad
[host] nvfbc: fix ARGB10 support
...
There is no performance penalty to using ARGB10 as it's still a 32-bit copy per
pixel and the nvidia driver internally handles any conversions required to make
this work for both SDR and HDR.
2023-04-19 19:52:30 +10:00
Geoffrey McRae
188f25c6bf
[host] nvfbc: increase retry timeout to 1 second
2022-12-09 08:00:03 +11:00
Geoffrey McRae
8619f787b9
[host] nvfbc: retry on failure to init
...
@quantum has observed nvfbc under rare circumstances fail to initialize,
this adds a retry to the init with a short delay to hopefully recover
from this situation.
2022-12-08 21:24:11 +11:00
Quantum
e1ebde3cd2
[host] windows: log to stderr that logs will continue in file
...
This prevents users from posting the stderr as if it's the only output.
2022-12-08 21:08:07 +11:00
Quantum
a8521b821e
[all] cmake: standardize indentation to 2 spaces
2022-05-29 11:16:16 +10:00
Geoffrey McRae
a41ab81a90
[host] nvfbc: try all NVIDIA adapters in the system
...
This will allow LG to start if the VM still has a virtual device as
the primary output.
2022-05-18 16:27:17 +10:00
Geoffrey McRae
0f8c0b5fb3
[host] dxgi: fix incorrect skip logic
2022-05-18 15:59:31 +10:00
Geoffrey McRae
57e20007db
[host] dxgi: don't try to use devices without d3d support
...
This change should allow LG to work even if a virtual device is still
attached to the VM even though it might be capturing the wrong display.
2022-05-18 15:38:42 +10:00
Geoffrey McRae
87077dfe6e
[host] nvfbc: add downscale support
2022-05-04 13:38:49 +10:00
Geoffrey McRae
7ed18e24e2
[host] linux/pw: add missing include for min
define
2022-05-04 12:28:20 +10:00
Geoffrey McRae
60834a5719
[host] xcb/pipewire/nfbc: use min
and correct inverted logic
2022-05-04 12:23:20 +10:00
Geoffrey McRae
d5e2689d64
[host] nvfbc: fix inverted truncated frame logic
2022-05-04 11:58:04 +10:00
Geoffrey McRae
81f91caf0e
[host] pw: fix build due to frame info structure changes
2022-05-04 10:59:44 +10:00
Geoffrey McRae
3d727a2254
[host] xcb: fix build due to frame info structure changes
2022-05-04 10:58:19 +10:00
Geoffrey McRae
e4a4e2331a
[host] nvfbc: fix build due to frame info structure changes
2022-05-04 10:37:52 +10:00
Geoffrey McRae
8682ec207e
[host] dxgi: check for invalid usage of d3d12 & downsampling
2022-05-04 10:23:42 +10:00
Geoffrey McRae
c8a5293645
[host] dxgi: refactor dxgi_copyFrame
2022-05-04 09:27:52 +10:00
Geoffrey McRae
15334c89d6
[host] dxgi: match the last entry in the downsample rule list
2022-05-03 17:58:41 +10:00
Geoffrey McRae
2eec459b47
[host] dxgi: finish downsample support for d3d11 backend
2022-05-03 12:15:24 +10:00
Geoffrey McRae
947325e00d
[host] dxgi: fix failure to copy to texture with sub resources
...
`CopyResource` will silently fail when trying to copy from a texture
with no subresources to one with. Instead we must use `ResolveSubresource`
2022-05-02 15:53:20 +10:00
Geoffrey McRae
3134ec84de
[host] dxgi: add support for downsampling the capture before sending
...
This is an experimental & incomplete feature for those using
supersampling. Anything > 1200p will be downsampled by 50% before
copying out of the GPU to save on memory bandwidth.
Unfinished! Has issues with damage tracking and currently can not
be configured. Only dx11 has been tested at this point, everything
else will likely have problems/crash.
2022-05-01 19:45:44 +10:00
vmfortress
6c76d6ada5
[host] xcb: fixed early start of pointer thread by adding xcb_start
2022-03-08 06:12:17 +11:00
vmfortress
36f97f08ad
[host] dxgi: add nanosecond-scale sleep capability to d3d12
...
The nsleep() call lets d3d12 sleep for a more precise amount of
time while maintaining the current millisecond-scale sleep
interface in the configuration file.
2022-03-06 17:21:14 +11:00
Tudor Brindus
eeefc15e46
[host] build with -Wstrict-prototypes
2022-02-25 20:38:44 +11:00
Quantum
fc96b6691e
[host] linux: remove useless libX11 dependency
2022-02-14 15:08:29 +11:00
Quantum
5a94f82f10
[host] linux: remove useless GL dependency
2022-02-14 15:08:29 +11:00
Quantum
f01489720f
[host] linux: build with PipeWire by default
...
Since the client already depends on PipeWire by default, there is no
reason why the host shouldn't.
2022-02-12 22:13:31 +11:00
Tudor Brindus
9ddfa585ec
[host] cleanup some missing (void) parameters
2022-02-08 16:37:17 +11:00
Tudor Brindus
809e1095bd
[host] windows: plumb guest activation request to host
2022-02-08 15:27:27 +11:00
Quantum
d93510e9f2
[host] linux: allow getting system version
...
Result is something like:
Debian GNU/Linux 11 (bullseye), kernel: Linux 5.14.0-0.bpo.2-amd64 on x86_64
2022-01-27 05:47:53 +11:00
Quantum
75ec3c0478
[host] nvfbc: shorten nvfbc_getName() result
...
To avoid client showing "Using : NVFBC (NVidia Frame Buffer Capt".
This happens because the string is truncated to 31 characters to fit
in the char capture[32]; member of KVMFRRecord_VMInfo.
2022-01-26 23:06:47 +11:00
Quantum
e85fd68d82
[host] windows: read ProductName from registry if possible
...
For Windows 10, it so happens that the major.minor is 10.0. This is not
usually a given, e.g. on Windows 7 where it would read 6.1, on
Windows 8 it would read 6.2, and on Windows 8.1 it would read 6.3.
This is obviously undesirable, so we should just read the ProductName
from registry if possible. This results in something like:
OS Name: Windows 10 Pro for Workstations (Build: 19043)
2022-01-26 23:06:14 +11:00
Geoffrey McRae
db3d20f935
[host] windows: report windows version information
2022-01-26 19:58:46 +11:00