Geoffrey McRae
551298ed5b
[doc] all: update copyright year
2025-03-05 12:24:38 +11:00
Geoffrey McRae
0b210a280d
[all] update the copyright to 2024
2024-02-01 17:16:31 +11:00
Geoffrey McRae
d3ee5bddde
[common] rect/framebuffer: improve avx implementations
2023-11-19 15:45:15 +11:00
Geoffrey McRae
584de4133f
[common] fix compilation on clang
2023-11-19 03:20:34 +11:00
Geoffrey McRae
3330f83af6
[common] add runtime detection and selection of AVX/AVX2 support
2023-11-19 02:52:11 +11:00
Geoffrey McRae
750cab83a3
Revert "[common] add AVX/AVX2 memory copy implementations"
...
This reverts commit e61678ef1b898b8d443e6a4cb00fe912f52d4647.
GCC only supports multi-versioning in C++
2023-11-19 00:18:48 +11:00
Geoffrey McRae
e61678ef1b
[common] add AVX/AVX2 memory copy implementations
2023-11-19 00:09:42 +11:00
Geoffrey McRae
c665044bfa
[client] implement support for RGB24 packed data
2023-11-10 06:28:05 +11:00
Geoffrey McRae
2e515657dd
[all] update/add license headers
2023-10-20 15:36:34 +11:00
matthewjmc
53c843d9dd
[common] Update framebuffer metadata + references
2022-05-16 20:01:09 +10:00
Geoffrey McRae
952ebea2c5
[all] refresh copyright dates
2022-01-05 19:42:46 +11:00
Quantum
0462cee9db
[common] rects: implement routine to copy rectangles from framebuffer
2021-08-08 08:30:11 +10:00
Quantum
51b9cd4e5a
[all] copyright: use unicode copyright sign ©
...
This is done for consistency with the license strings in appstrings.c.
2021-08-04 21:16:35 +10:00
Quantum
aff3bff8b0
[common] framebuffer: fix copy when source and dest pitch differs
...
We used to increment the source buffer index by width * bpp, not by pitch.
This is incorrect and the root cause behind #670 .
This is a regression that appeared in 196050bd2381f4d7dbf6149c3347932951a47ebf.
2021-07-29 10:18:35 +10:00
Quantum
ef2da1902e
[common] framebuffer: allow custom framebuffer write implementations
...
This is helpful for only copying damaged areas.
2021-07-18 10:41:50 +10:00
Geoffrey McRae
d20e4d1de5
[common] framebuffer: make use of framebuffer_wait
2021-06-08 16:10:34 +10:00
Geoffrey McRae
e87d2f1a20
[common] framebuffer: add additional profiling support
2021-06-08 16:08:44 +10:00
Geoffrey McRae
4a75cc3bcf
[common] framebuffer: simplify the remaining
calculation
...
The pitches match so there is no need for the added complexity of this
calculation.
2021-06-08 15:14:54 +10:00
Geoffrey McRae
196050bd23
[common] framebuffer: improve client framebuffer read performance
...
Extensive profiling reveals that the glibc memcpy performs up to 2x
faster then the existing SIMD implementation that was in use here. This
patch also will copy large 1MB chunks if the pitch of the source and
destination match further increasing throughput.
2021-06-08 15:08:13 +10:00
Quantum
24d0aa0c18
[all] normalize copyright on all source files
2021-06-06 11:53:05 +10:00
Geoffrey McRae
428b498cca
[common] fix invalid read from unaligned addresses ( fixes #410 )
2021-01-20 23:18:46 +11:00
Geoffrey McRae
6799d518a5
[client] common: added spin timeout to framebuffer wait
2020-10-30 03:27:28 +11:00
Geoffrey McRae
4f9544d61d
[client] egl: added DMA texture support for direct upload
...
Note: This only works with the KVMFR kernel module in a VM->VM
configuration. If this causes issues it can be disabled with the new
option `app:allowDMA`
2020-10-30 02:36:45 +11:00
Geoffrey McRae
90d0cd873d
[common] added a sleep to the framebuffer spinlock and a sane timeout
2020-08-10 16:18:08 +10:00
Geoffrey McRae
43503222c7
[common] framebuffer: fixed incorrect streaming usage
2020-08-03 14:41:57 +10:00
Geoffrey McRae
85b8c12abf
[common] adjust framebuffer read/write strategy for better cache usage
2020-08-03 12:33:08 +10:00
Geoffrey McRae
7af053497e
[common] unroll the framebuffer write loop and increase the chunk size
2020-08-03 12:24:17 +10:00
Geoffrey McRae
aa32c5ffad
[common] framebuffer: added missing header include
2020-08-03 11:58:38 +10:00
Geoffrey McRae
62d1bd1ea2
[common] framebuffer: use stream load instead of plain load
2020-08-03 11:55:38 +10:00
Geoffrey McRae
2329e993ee
[common] fixed framebuffer write SIMD code performance
2020-08-03 11:44:24 +10:00
Geoffrey McRae
da655b86c3
[common] improve frambuffer copy to avoid cache pollution (SIMD)
2020-08-03 11:16:30 +10:00
Geoffrey McRae
f6691a90c0
[client/obs] improve frambuffer_read functions to support copy pitch
...
Fixes #244
2020-04-14 13:27:07 +10:00
Geoffrey McRae
dbd7db7787
[common] fix framebuffer_prepare to use atomic_store
2020-04-12 13:16:55 +10:00
Geoffrey McRae
1222fd40b7
[common] fix FrameBuffer to use atomics correctly
...
Might Fix #248
2020-04-12 13:14:53 +10:00
Geoffrey McRae
17e05c6fd5
[all] expose the FrameBuffer struct for correct sizeof calculations
2020-01-13 19:30:49 +11:00
Geoffrey McRae
e1bfb1234b
[common] obey the destination buffer size
2019-10-14 18:08:06 +11:00
Geoffrey McRae
8ef1aee35c
[common] fix bug in framebuffer_read
2019-10-09 14:11:45 +11:00
Geoffrey McRae
bca54ab1f6
[client/host] added new asyncronous memory copy
...
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.
2019-10-09 13:53:02 +11:00