Antonin Décimo
41f30bf7ca
Fix use-after-free in error path
2020-10-01 09:57:14 +00:00
Andri Yngvason
4a098e27f9
Don't init data_control if it's not supported by compositor
2020-09-22 20:08:10 +00:00
Andri Yngvason
30295bb715
data-control: Destroy data device on exit
2020-09-22 20:01:11 +00:00
Andri Yngvason
5c30d7752c
data-control: Clean up whole receive context in aml_free_fn
...
This takes care of the case where wayvnc exits before the whole offer
has been processed.
2020-09-22 19:53:05 +00:00
Andri Yngvason
9a2f761a02
data-control: Don't free data-control-manager twice
2020-09-22 19:37:35 +00:00
Andri Yngvason
630e2e67bc
data-control: Make offer handling asynchronous
2020-09-22 03:12:46 -06:00
Scott Moreau
3ee9aac35e
Add basic clipboard support
...
Uses wlr-data-control-unstable-v1 protocol to interface with the clipboard
making copy/paste of text to/from host clipboard possible.
2020-09-22 03:11:03 -06:00
Andri Yngvason
8038e65597
Clean up aml on nvnc init failure
2020-08-23 13:25:45 +00:00
Andri Yngvason
dcf3b5869c
Clean up config on exit
2020-08-23 13:18:47 +00:00
Andri Yngvason
7ef8d0b0ae
Exit if enabling auth fails
2020-08-23 13:10:59 +00:00
Andri Yngvason
69d36dd7ef
buffer: Fix buffer attribute comparison
2020-07-28 17:32:14 +00:00
Jan Beich
72dd8a159c
shm: guard fallback on FreeBSD < 13 as well
...
../src/shm.c:35:13: warning: unused function 'randname' [-Wunused-function]
static void randname(char *buf)
^
2020-07-27 20:04:42 +00:00
Jan Beich
6916780389
buffer: guard gbm.h after 3742dc7144
...
../src/buffer.c:25:10: fatal error: 'gbm.h' file not found
#include <gbm.h>
^~~~~~~
2020-07-27 19:51:59 +00:00
Andri Yngvason
3742dc7144
Add build option for enabling screencopy-dmabuf
2020-07-26 15:12:14 +00:00
Andri Yngvason
ca069ea738
buffer: Add function to get available buffer types
2020-07-26 14:26:58 +00:00
Andri Yngvason
f8344fda16
main: Suppress unused variable warnings in release build
2020-07-26 13:47:40 +00:00
Andri Yngvason
ef6756d0f4
keyboard: suppress unused variable warnings in release build
2020-07-26 13:47:20 +00:00
Andri Yngvason
8ff47ee559
Add a way to learn the version of wayvnc and its dependencies
2020-07-26 11:49:02 +00:00
Andri Yngvason
c53ab3bbf5
Report average damaged area per frame in performance ticker
2020-07-25 22:51:37 +00:00
Andri Yngvason
0be56b2100
Add documentation for performance counters
2020-07-25 22:21:48 +00:00
Andri Yngvason
c8ba15c455
Add performance counters
2020-07-25 22:17:13 +00:00
Andri Yngvason
85fca04e27
Resize buffers on modeset
2020-07-19 14:38:35 +00:00
Andri Yngvason
4a5838c180
screencopy: Release front buffer on screencopy_stop()
2020-07-19 14:37:48 +00:00
Andri Yngvason
c79eb98e68
output: Add callbacks for change notification
2020-07-19 13:56:10 +00:00
Andri Yngvason
f9b3d98f83
pixels: Fix endian macros, take 3
2020-07-18 09:23:42 +00:00
Andri Yngvason
bed4b7261e
screencopy: Disable linux-dmabuf code path
...
I need to iron out some kinks before it's made the default
2020-07-17 16:27:46 +00:00
Andri Yngvason
0c86f9cf53
screencopy: Don't delay if time_left == 0
2020-07-17 16:22:17 +00:00
Andri Yngvason
ce86f51699
screencopy: Fix pixel format of shm buffers
2020-07-16 18:10:12 +00:00
Andri Yngvason
14768ca6e3
pixels: Add function to convert from wl_shm format to fourcc
2020-07-16 18:09:18 +00:00
Andri Yngvason
fbd8020778
pixels: Fix more endienness macros
2020-07-16 17:46:44 +00:00
Jan Beich
1bc095bd75
pixels: detect endianness via compiler defines
...
../src/pixels.c:24:10: fatal error: 'endian.h' file not found
#include <endian.h>
^~~~~~~~~~
../src/pixels.c:58:6: error: expected value in expression
#elif
^
2020-07-16 14:34:56 +00:00
Andri Yngvason
2cb9f663a0
Align with aml API changes
2020-07-11 21:33:02 +00:00
Andri Yngvason
184ed0a7ef
Allow the user to adjust the FPS limit
2020-07-11 20:53:31 +00:00
Andri Yngvason
73ade6b84e
Add dtrace probes for rendering and damage checking
2020-07-11 20:53:31 +00:00
Andri Yngvason
e5272618ba
Destroy wl_registry on exit
2020-07-11 20:53:31 +00:00
Andri Yngvason
0268b52c53
Use native pixel format
2020-07-11 20:53:31 +00:00
Andri Yngvason
c0f1036f97
pixels: Add more formats and take into account endianness
2020-07-11 20:53:31 +00:00
Andri Yngvason
ef74911298
Exit on mode change intead of crashing
2020-07-11 20:53:31 +00:00
Andri Yngvason
9d2e22b9bd
pixels: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
9a9c7c8be6
buffer: Cleanup dmabuf params after use
2020-07-11 20:53:31 +00:00
Andri Yngvason
1406ce1cf8
Clean up damage refinery on exit
2020-07-11 20:53:31 +00:00
Andri Yngvason
cd7594320b
Clean up gbm device on exit
2020-07-11 20:53:31 +00:00
Andri Yngvason
4c14c11de4
transform-util: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
b8df02838e
pixman-renderer: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
ee3b6d74cf
buffer: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
7b6372ef49
damage-refinery: Add copyright notice
2020-07-11 20:53:31 +00:00
Andri Yngvason
843368c993
screencopy: Actually use y-inversion flag
2020-07-11 20:53:31 +00:00
Andri Yngvason
46fdbfb109
screencopy: Set the rate limit to 30 Hz
2020-07-11 20:53:31 +00:00
Andri Yngvason
2b522ee596
Remove frame-capture abstraction
2020-07-11 20:53:31 +00:00
Andri Yngvason
b0ec79acf8
Move damage hints into buffer abstraction
2020-07-11 20:53:31 +00:00
Andri Yngvason
0615cd44c6
buffer: Add damage field
2020-07-11 20:53:31 +00:00
Andri Yngvason
0edaded063
Remove dead code
2020-07-11 20:53:30 +00:00
Andri Yngvason
84c57a7333
buffer: Fix pool release/acquire
2020-07-11 20:52:01 +00:00
Andri Yngvason
f68bb825e1
buffer: Fix error check and use non-linear
2020-07-11 20:52:01 +00:00
Andri Yngvason
0178dd8a39
screencopy: map dmabuf after it's ready
2020-07-11 20:52:01 +00:00
Andri Yngvason
19eb9af7e5
buffer: Unmap before release/destroy
2020-07-11 20:52:01 +00:00
Andri Yngvason
3fc07f571d
screencopy: Use linux-dmabuf if available
2020-07-11 20:52:01 +00:00
Andri Yngvason
70216b5829
main: Add gbm and linux-dmabuf
2020-07-11 20:52:01 +00:00
Andri Yngvason
4a21939b43
buffer: Use create_immed
2020-07-11 20:52:01 +00:00
Andri Yngvason
4fa019d31f
buffer: Add DMA-BUFs
2020-07-11 20:52:01 +00:00
Andri Yngvason
9b136c90de
buffer: Add specific handling for different buffers
2020-07-11 20:52:01 +00:00
Andri Yngvason
480392e40c
buffer: Add buffer type to interface
2020-07-11 20:52:01 +00:00
Andri Yngvason
59cc119d76
main: Refine damage hints
2020-07-11 20:52:01 +00:00
Andri Yngvason
fe590f3940
damage-refinery: Use damage hint
2020-07-11 20:52:01 +00:00
Andri Yngvason
e398dcc235
damage-refinery: Hash directly instead of copying
2020-07-11 20:52:01 +00:00
Andri Yngvason
439d3997d4
damage-refinery: Use negative stride to handle y-inversion
2020-07-11 20:52:01 +00:00
Andri Yngvason
c515a29951
Create hash based damage checker
2020-07-11 20:52:01 +00:00
Andri Yngvason
946ace1760
Fix damage transform
2020-07-11 20:52:01 +00:00
Andri Yngvason
12555bea13
pixman-renderer: Use negative stride for y-inversion
2020-07-11 20:52:01 +00:00
Andri Yngvason
1cafc25655
Transform damage coordinates
2020-07-11 20:52:01 +00:00
Andri Yngvason
6b1dc2e6c3
Add utilities for managing output transforms
2020-07-11 20:52:01 +00:00
Andri Yngvason
507b76dfbd
Create pixman renderer
2020-07-11 20:52:01 +00:00
Andri Yngvason
29f1669d55
buffer: Leave pixman out of buffers
2020-07-11 20:52:01 +00:00
Andri Yngvason
e65cae43c2
Extract pixel format conversion into own file
2020-07-11 20:52:01 +00:00
Andri Yngvason
a6e1ba25ea
Render using pixman
2020-07-11 20:52:00 +00:00
Andri Yngvason
4fb472f611
Create a buffer abstraction
2020-07-11 20:52:00 +00:00
Andri Yngvason
0a139a1ac4
Align with aml API changes
2020-07-06 16:46:30 +00:00
Andri Yngvason
4f1bca55c3
Exit when main selected seat/output goes away
2020-06-12 23:15:22 +00:00
Andri Yngvason
041ac60ef6
renderer: Add more error messages
2020-06-10 22:09:22 +00:00
Andri Yngvason
ff882b7774
keyboard: Ignore shift level on modifiers
2020-05-26 22:19:48 +00:00
Andri Yngvason
ff1223e4f9
keyboard: Fix comparison of signed and unsigned value
2020-05-18 20:38:48 +00:00
Andri Yngvason
9b48290d09
Improve error handling in wayland dispatch
2020-05-10 12:21:10 +00:00
Andri Yngvason
151e916752
renderer: Set GL_PACK_ALIGNMENT to 1
...
Otherwise row stride will multiple of 4, even for damage data.
2020-05-10 12:21:10 +00:00
Andri Yngvason
0761a5b818
damage: Fix uninitialised value
2020-05-10 12:21:10 +00:00
Andri Yngvason
4f5933c07f
dmabuf: Limit rate to 30 FPS
2020-05-03 19:58:50 +00:00
Andri Yngvason
f5453ffe1e
keyboard: Relax matching criteria on shift level
...
Clients behave differently when it comes to sending release events for keys,
so it's hard to rely on any one kind of behaviour.
2020-05-01 17:34:22 +00:00
Andri Yngvason
405268fc58
keyboard: Log keyboard symbol lookup errors
2020-05-01 17:19:14 +00:00
Andri Yngvason
6e889211db
renderer: Run glFinish() before glReadPixels()
2020-04-26 14:15:57 +00:00
Andri Yngvason
8cc8c198d2
renderer: Run glFinish() after rendering dmabuf frame
2020-04-26 14:14:06 +00:00
Andri Yngvason
06a249897b
dmabuf: Show a debug message when frames are held for too long.
2020-04-26 14:14:06 +00:00
Andri Yngvason
04569b01f2
dmabuf: Add dtrace probes
2020-04-26 11:24:29 +00:00
Andri Yngvason
9d6310cb14
dmabuf: Remove rate limiting
2020-04-26 10:39:58 +00:00
Andri Yngvason
6becbacbe5
Align with NeatVNC interface changes
2020-04-12 21:46:48 +00:00
Andri Yngvason
1fc664a014
Remove call to nvnc_set_dimensions()
2020-04-12 16:14:18 +00:00
Andri Yngvason
f9deca5c9c
shm: Add copyright notice
...
Putting a proper license on this to appease package maintainers.
2020-04-12 13:08:42 +00:00
Greg V
3f62295214
keyboard: rename keymap_len to keymap_size
2020-04-09 15:39:09 +03:00
Greg V
fa49aca45a
keyboard: check that write finished writing everything
...
(Use loop to write until the end)
2020-04-09 15:38:13 +03:00
Greg V
ccc582cd58
keyboard: allocate shm with *actually* correct size
...
strlen returns "the number of characters that precede the terminating NUL".
We do need to send the \0 byte, since xkbcommon on the receiving end
*is* expecting a C string. And e.g. wlroots does strlen+1.
2020-04-09 15:37:18 +03:00
Andri Yngvason
14d62d0029
Fix transformations
...
This fixes #29
2020-04-09 11:50:48 +00:00
Andri Yngvason
58a181ccbc
Redesign update/rendering loop
...
Every change to the framebuffer is now copied into a single buffer
inside a single callback. This simplifies things a lot, and might even
perform better.
2020-04-07 23:37:31 +00:00
Greg V
d610076614
shm: support memfd and SHM_ANON
2020-04-06 02:07:25 +03:00
Greg V
720b127dee
keyboard: allocate shm with correct size
...
This was working on Linux because shm_open there returns a regular file,
but this is required on FreeBSD where shm_open returns a memory-backed fd.
2020-04-06 00:26:22 +03:00
Andri Yngvason
be401b5e4a
Report error when binding to address fails
...
This fixes #21
2020-04-04 22:38:23 +00:00
Andri Yngvason
6e521a07a0
Merge frames rather than dropping them when encoder is too slow
2020-04-04 21:03:49 +00:00
Andri Yngvason
238c196e6b
Capture a new frame immediately when a client requests a whole frame
2020-04-04 15:01:38 +00:00
Andri Yngvason
ee4917f200
Make sure that frames being written to are not in use by the encoder
2020-04-04 13:14:07 +00:00
Andri Yngvason
8ce312e9eb
renderer: Add dtrace probes
2020-04-02 00:55:18 +00:00
Andri Yngvason
075680994e
screencopy: Add dtrace probes
2020-04-02 00:34:00 +00:00
Andri Yngvason
dc7adf8f3b
renderer: Use ATTR_INDEX_ constants for glEnableVertex*
2020-03-29 14:05:33 +00:00
Andri Yngvason
e85f219aff
Make sure damage buffer is properly aligned
2020-03-29 13:09:28 +00:00
Andri Yngvason
b14a0b854b
Rotate NeatVNC framebuffers rather than allocating new ones
2020-03-28 19:23:03 +00:00
Andri Yngvason
2bb17c8215
Blit the whole frame when a new client connects
2020-03-28 15:20:59 +00:00
Andri Yngvason
e7586e8753
Only copy the damaged region from GPU
2020-03-28 15:05:04 +00:00
Andri Yngvason
1ebd9a7647
damage: Respect frame boundaries
2020-03-28 14:34:12 +00:00
Andri Yngvason
b6ca7aff8c
Join process_frame() and update_vnc()
2020-03-28 14:09:29 +00:00
Andri Yngvason
bfbc81bf04
Use GPU damage checker
2020-03-28 13:07:33 +00:00
Andri Yngvason
52c18ffe23
damage: Add asynchronous damage checking
2020-03-28 13:05:59 +00:00
Andri Yngvason
7f5431d922
Move rendering calls into frame-capture
2020-03-28 11:44:40 +00:00
Andri Yngvason
c91816f247
Implement damage buffer conversion
2020-03-28 10:59:21 +00:00
Andri Yngvason
b0a6b6bd2a
renderer: Swap FPOs rather than textures
2020-03-28 10:59:21 +00:00
Andri Yngvason
ae90348ece
renderer: Save previous rendered frame rather than previous imported frame
...
We can't keep dmabufs very long.
2020-03-26 21:43:35 +00:00
Andri Yngvason
b5f1ff0898
renderer: Render to texture
2020-03-26 18:49:37 +00:00
Andri Yngvason
7e709c23e9
renderer: Add damage renderer
2020-03-25 23:21:11 +00:00
Andri Yngvason
6536cbd56f
renderer: Add damage shaders
2020-03-25 23:21:11 +00:00
Andri Yngvason
557f0f365b
renderer: Set up texture bindings on render()
2020-03-25 21:27:57 +00:00
Andri Yngvason
a8fd0d6765
renderer: Show error when linking shaders fails
2020-03-25 21:07:36 +00:00
Andri Yngvason
996729f9bb
renderer: Show error message when shader compilation failse
2020-03-25 20:44:54 +00:00
Andri Yngvason
13216fa507
renderer: Add u_tex1 to shaders
2020-03-25 20:26:15 +00:00
Andri Yngvason
49c584f80d
renderer: Move shader setup into render()
2020-03-24 22:57:02 +00:00
Andri Yngvason
4da96d0dc1
renderer: Split buffer import and rendering
2020-03-24 22:48:13 +00:00
Andri Yngvason
9d058c85ce
Renderer: Keep last texture
2020-03-24 22:07:49 +00:00
Andri Yngvason
b39e7535ee
renderer: Use FBO instead of pbuffer
...
This is in preperation for damage checking on the GPU
2020-03-24 19:17:23 +00:00
Andri Yngvason
a12ce12ba6
Exit when compositor goes away
2020-03-22 20:29:13 +00:00
Andri Yngvason
26cef852b6
Replace libuv with aml
2020-03-21 16:46:10 +00:00
Andri Yngvason
7ea17d04aa
Apply output transformation to pointer coordinates
2020-03-07 14:19:02 +00:00
Andri Yngvason
e8279e57f5
Apply output transform to damage hint coordinates
2020-03-07 14:15:09 +00:00
Andri Yngvason
8ff7128714
output: Add coordinate transformations
2020-03-07 14:13:59 +00:00
Andri Yngvason
433ee722ec
render: Implement rest of transforms
2020-03-07 12:16:01 +00:00
Andri Yngvason
c32993d87d
Use transformed geometry for frame buffers
2020-03-05 22:05:14 +00:00
Andri Yngvason
9642e086d8
render: Set glViewport based on output transform
2020-03-05 22:05:14 +00:00
Andri Yngvason
e01f75bfbd
output: Add functions to get transformed geometry
2020-03-05 22:05:14 +00:00
Andri Yngvason
35ffc2dac7
output: Add transform
2020-03-05 22:05:14 +00:00
Andri Yngvason
a3d4189a0b
render: Add output transforms
2020-03-05 22:05:14 +00:00
Andri Yngvason
a327a2f6dd
render: Add 2D projections
2020-03-05 18:46:27 +00:00
Andri Yngvason
1bf618a098
render: Fetch uniform locations in one place
2020-03-05 18:20:54 +00:00
Andri Yngvason
6b3b448405
render: Move shader_program into shader struct
2020-03-05 18:14:50 +00:00
Andri Yngvason
1e6c89d9a9
output: Use non-scaled geometry
...
This fixes #16
2020-03-04 21:40:33 +00:00
Andri Yngvason
a70a2b1bc4
pointer: Remove output position from coordinates
...
This is no longer required as the input is mapped to the output in the
compositor.
2020-02-21 23:28:36 +00:00
Andri Yngvason
10e5c08752
Map input to the selected output
2020-02-21 23:28:33 +00:00
Dan Shick
4ad4c712b2
Fix shader path, meson doesn't include trailing slash in prefix
2020-02-11 18:41:59 -05:00