Geoffrey McRae
91b0cba145
[client] egl: switch from mediump
to highp
...
This fixes a rounding issue on certain hardware (NVidia) which actually
implement mediump as half precision (16-bit) float. It's safe to assume
`highp` is available as if the GPU does not support it, then the shader
compiler will try to find a lower precision that is supported by the GPU
2023-03-05 14:10:21 +11:00
Quantum
0f261abb07
[client] egl: recalculate mouse position when toggling spice
...
Without this step, the cursor with be transformed for rendering the
spice cursor, not the IVSHMEM cursor.
2022-09-19 11:43:25 +10:00
Quantum
f14d135266
[client] egl: support rendering cursors in spice display mode
2022-09-19 11:13:53 +10:00
Geoffrey McRae
0149549251
[client] egl: fix usage `destRect, 0x0 is top left
...
This fixes the letterbox clip being incorrect when rounding is occuring
due to the inverted coordinate space.
2022-09-17 16:02:11 +10:00
Geoffrey McRae
d376dc4b5a
[client] egl: fix the incorrect mask for dmabuf plane0 modifier
2022-07-30 22:08:47 +10:00
Geoffrey McRae
af51ea6d0b
[client] egl: add support for EGL_EXT_image_dma_buf_import_modifiers
2022-07-30 15:55:20 +10:00
Geoffrey McRae
da04a6dd54
[client] all: use the defined keyboard mapping for keybinds
...
Fixes #1007
2022-06-29 18:26:40 +10:00
Quantum
a8521b821e
[all] cmake: standardize indentation to 2 spaces
2022-05-29 11:16:16 +10:00
Geoffrey McRae
fba7c80b2f
[client] interface: remove needsRender from renderers
2022-05-27 14:38:42 +10:00
Geoffrey McRae
56ec98524c
[client] egl: perform full damage if a post processing option is changed
2022-05-27 11:40:20 +10:00
Geoffrey McRae
a9e3ab9d18
[client] egl: remove no longer used drawing functions
2022-05-27 02:13:07 +10:00
Geoffrey McRae
fec45dfe9c
[client] egl: remove unused splash shaders
2022-05-27 02:10:38 +10:00
Geoffrey McRae
5de175c1f3
[client] all: unify the LG splash screen into an overlay
2022-05-27 02:07:20 +10:00
Geoffrey McRae
8974ae4fb5
[client] add SVG loading support and use icons for status display
...
This brings nanosvg into the project for SVG loading and rendering.
Unfortunatly we can not at this time use a submodule for this project
until https://github.com/memononen/nanosvg/pull/214 is merged.
2022-05-26 04:11:31 +10:00
Geoffrey McRae
8aa36144dc
overlay: move init/free to the context of the render thread
...
This is done to allow overlays to make use of the renderer during
init/free.
2022-05-26 00:46:13 +10:00
Geoffrey McRae
faae785c44
[client] spice: initialize new surfaces to black
2022-05-24 00:17:08 +10:00
Geoffrey McRae
b5dfbcb5a2
[client] egl: added missing case from texture init
2022-05-23 20:55:02 +10:00
Geoffrey McRae
247e867f18
[client] egl: implemented SPICE display support
2022-05-22 18:19:58 +10:00
Geoffrey McRae
6699018ed1
[client] egl: check for null before free
2022-05-22 12:05:02 +10:00
Geoffrey McRae
947db38bc9
[client] egl: fix mistake in rect clamping
2022-05-22 11:53:46 +10:00
Geoffrey McRae
1fcdcc8725
[client] egl: allow for partial texture updates
2022-05-21 21:21:16 +10:00
Geoffrey McRae
2901e7aec5
[client] egl: only upload the damage rects if they actually changed
...
Profiling shows that a considerable amount of time is spent in
glBindBuffer and glBufferSubData when the damage rects are updated.
Since the amount of data here is quite small it's far faster to check if
it's different then to just blindly overwrite the buffer on each call.
Profiled on an Intel CPU with UHD P630 Graphics using magic-trace
2022-05-17 00:51:13 +10:00
Geoffrey McRae
6afd262a27
[client] egl: update AMD FSR to 1.0.2
2022-05-04 15:29:21 +10:00
Geoffrey McRae
eae559b4c9
[client/obs] update to support downscaled frames coming from the host
2022-05-01 19:51:25 +10:00
Geoffrey McRae
3a8cb6a613
[client/common] fixes for issues detected through static analysis.
2022-03-07 10:14:52 +11:00
Paul Hollinsky
3890c72159
[client] egl: use texture sampler for desktop
...
The desktop doesn't need its own sampler, there is already an identically
configured one in the `desktop->texture`.
For some reason, using the texture sampler fixes a black screen issue
with my GTX 660 using the 470.86 driver. Maybe hitting some limit
for how many samplers can be allocated?
2022-02-08 15:34:54 +11:00
Paul Hollinsky
4223a5e38f
[client] egl: remove extra sampler from TextureBuffer
...
It was unused, there is a sampler in EGL_Texture (base).
2022-02-08 15:34:54 +11:00
Geoffrey McRae
b0568ca404
[client] egl: use a sigmoid curve for nv
2022-01-26 23:03:35 +11:00
Geoffrey McRae
fb4bdaee2b
[client] egl: set the active preset if specified at launch
2022-01-26 16:07:17 +11:00
Geoffrey McRae
c7389285f9
[client] egl: fix null pointer access when no preset is set
2022-01-26 16:04:15 +11:00
Geoffrey McRae
aa426d13a7
[client] egl: added egl:preset
to load a default preset at startup
2022-01-26 16:00:07 +11:00
Geoffrey McRae
89c83dafc1
[client] egl: make egl less noisy unless debug is specified
2022-01-26 15:42:33 +11:00
Geoffrey McRae
22f3cf5ba6
[client] egl: fix masked color cursor blend operation for xor drawing
2022-01-26 12:23:05 +11:00
Geoffrey McRae
3067bdaa15
[client] egl: properly apply xor mask to masked color cursors
2022-01-26 12:11:43 +11:00
Geoffrey McRae
96fa8891c8
[client] egl: fixed incorrect drawing of masked color cursors
2022-01-24 06:56:32 +11:00
Quantum
9a6aa3ce66
[client] egl: remove duplicate #include "app.h"
2022-01-23 08:49:15 +11:00
Geoffrey McRae
464fee3e20
[client] overlay/graphs: allow the graph to have a custom title format
2022-01-17 22:08:56 +11:00
Chris Spencer
f635077a2c
[client] egl: increase texture processing timeout
...
On my machine (Intel UHD Graphics 770), texture processing occasionally
(about 5% of the time) takes more than 20ms (the highest I have seen is
around 32ms) when the host resolution is 2560x1440. This results in the
frame being discarded and the client displays a stale image. Increase the
timeout to 40ms.
2022-01-14 12:31:02 +11:00
Geoffrey McRae
6bba9bc25d
[client/common] move ll from the client into the common code module
2022-01-12 12:22:18 +11:00
Geoffrey McRae
1851002fc1
[client] all: remove ll_walk
and migrate over to ll_forEachNL
2022-01-12 12:17:29 +11:00
Geoffrey McRae
ec0bd6adc8
[client] imgui: update to cimgui 1.86
2022-01-08 00:26:12 +11:00
Geoffrey McRae
952ebea2c5
[all] refresh copyright dates
2022-01-05 19:42:46 +11:00
Geoffrey McRae
d708651c53
[client] egl: check for null gl strings
2022-01-05 12:38:38 +11:00
Geoffrey McRae
35efa551ef
[client] egl: determine mouse scale using both horiz and vert size
2021-12-28 19:04:24 +11:00
Quantum
136737f25b
[client] egl: simplify EGL torus code
2021-12-28 10:19:36 +11:00
Geoffrey McRae
d69069fb09
[client] egl: keep the mouse cursor 1:1 when downscaling
...
This keeps the cursor a usable size when the guest is running a high
resolution and downscaling (ie, 4K -> FHD).
2021-12-26 11:08:42 +11:00
Geoffrey McRae
adbe333414
[client] egl: dmabuf can be used without GL_EXT_buffer_storage support
2021-12-15 06:10:30 +11:00
Quantum
15066c7345
[client] egl: handle eglQuerySurface(EGL_BUFFER_AGE_EXT) error
2021-12-14 14:35:30 +11:00
Quantum
58f83da7bb
[client] egl: increase the damage box for the cursor
2021-12-02 22:07:37 +11:00
Quantum
3e9a21d3b9
[client] egl: use linear filter when not scaling
...
This appears to eliminate artifacts related to non-full screen paints
due to precision errors with the nearest filter.
2021-12-02 22:07:24 +11:00