Geoffrey McRae
117e88c240
[client] egl: add new downscale filter
2021-08-12 15:54:16 +10:00
Geoffrey McRae
6387bf2d2e
[client] rework the configuration overlay to allow for tabs
2021-08-12 09:04:45 +10:00
Geoffrey McRae
fe6339fc77
[client] egl: re-order CAS to before FSR for better results
2021-08-12 06:56:16 +10:00
Geoffrey McRae
f0ea882165
[client] egl: cleanup texture filtering/post-processing
2021-08-11 18:53:36 +10:00
Geoffrey McRae
f78154d282
[client] egl: fixes to shader post-process pipeline
2021-08-11 06:31:01 +10:00
Geoffrey McRae
c3a143732c
[client] egl: cosmetics
2021-08-10 13:46:48 +10:00
Geoffrey McRae
dc0b3a8d45
[client] egl: rework post process filters and add AMD FXR
2021-08-10 13:46:48 +10:00
Geoffrey McRae
e707f9d933
[client] egl: enable ffxCAS if disabled and the sharpness is changed
2021-08-10 07:56:24 +10:00
Geoffrey McRae
64ed383128
[client] egl: re-process the texture and invalidate if a setting changed
2021-08-10 07:51:23 +10:00
Geoffrey McRae
cc3494437a
[client] egl: add ffx cas configuration options
2021-08-10 01:10:08 +10:00
Geoffrey McRae
37faccd014
[client] egl: allow ffxCAS sharpness configuration
2021-08-10 00:54:54 +10:00
Geoffrey McRae
30e6a258ad
[client] egl: cleanup pointer mess in egl_desktopInit
2021-08-10 00:48:41 +10:00
Geoffrey McRae
92de467edc
[client] egl: add ffx_cas post process filter
2021-08-09 23:12:58 +10:00
Geoffrey McRae
79dcc6d4f1
Revert "[client] egl: set a default scale for textures without filters"
...
This reverts commit 57a74c156b
.
Pushed a ton of changes that should not have been pushed
2021-08-09 18:26:30 +10:00
Geoffrey McRae
57a74c156b
[client] egl: set a default scale for textures without filters
2021-08-09 18:24:33 +10:00
Geoffrey McRae
6882e5c59f
[client] egl: provide the texture scale to the desktop shader
...
If the texture has a post-processing filter that has scaled the texture,
the desktop fragment shader needs to know this if it's doing linear
scaling.
2021-08-09 18:22:28 +10:00
Geoffrey McRae
f50ef4c23c
[client] egl: remove includes from testing
2021-08-09 14:13:03 +10:00
Geoffrey McRae
86d6b67337
[client] egl: rework egl to accomodate post-processing filtering
2021-08-09 14:08:10 +10:00
Geoffrey McRae
91d1b8d2cd
[client] egl: refactor egl_texture_free to use project naming standards
2021-08-08 17:52:13 +10:00
Geoffrey McRae
266ad27998
[client] egl: refactor to use project naming standard
2021-08-08 17:16:10 +10:00
Quantum
b822e255d8
[client] egl: attempt DMABUF import and fallback if it fails
...
This should deal with drivers not supporting our DMABUF without attempting
to identify the drivers and blacklist them.
2021-08-08 09:53:47 +10:00
Geoffrey McRae
12d256c7c8
[client] egl: do a full redraw if nightvision is toggled
2021-08-08 08:42:08 +10:00
Quantum
3e32e01c30
[client] egl/imgui: use imgui for night vision gain configuration
2021-08-08 08:42:01 +10:00
Quantum
ac3677d9ae
[client] egl: implement partial copies for framebuffer textures
...
This uses the same line sweep algorithm originally created to copy DXGI
textures to IVSHMEM to implement the copy from IVSHMEM to memory-mapped
pixel buffer objects.
2021-08-08 08:30:11 +10:00
Quantum
5d3c00717a
[client] egl/imgui: use imgui for scaling algorithm selection
2021-08-06 22:49:49 +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
f9977332a6
[client] egl: convert desktop to use desktop_rects
2021-08-03 21:37:31 +10:00
Geoffrey McRae
13d9c84dc9
[client] egl: replace monolithic EGLTexture with modular version
...
The way things were handled in EGLTexture is not only very hard to
follow, but broken. This change set breaks up EGLTexture into a modular
design making it easier to implement the various versions.
Note that DMABUF is currently broken and needs to be re-implemented.
2021-08-02 23:37:33 +10:00
Quantum
c6a6230a56
[client] egl: revert "only copy damaged areas when using dmabuf"
...
This reverts commit a14de25661
.
Frame is sometimes incorrect.
2021-07-18 18:48:35 +10:00
Quantum
a14de25661
[client] egl: only copy damaged areas when using dmabuf
...
This speeds up the copy significantly when the frame only has small
amount of damage.
2021-07-18 17:41:29 +10:00
Quantum
24d0aa0c18
[all] normalize copyright on all source files
2021-06-06 11:53:05 +10:00
Quantum
30b5287c38
[client] egl: add option to set initial scale algorithm
...
The option is egl:scale. The scale algorithm number is displayed on the
alert to make it easier to specify the number for the option.
2021-02-22 17:25:06 +11:00
Quantum
0512c88ea8
[client] egl: make scale algorithms toggleable
...
The $escape+S keybinding now cycles through the available scale algorithms.
This allows the user to switch between algorithms if the automatic detection
turns out to be problematic.
The algorithms are renumbered so that 0 can be LG_SCALE_AUTO.
2021-02-22 17:25:06 +11:00
Geoffrey McRae
28024de314
[client] egl: fix gcc false maybe-uninitialized
positives
2021-02-22 01:38:26 +11:00
Quantum
e46cadb211
[client] egl: generate header file with #define for desktop shader
...
Instead of duplicating the #defines from the shader into the C code,
this commit adds a custom CMake rule that exports all the #defines
from a shader into a C header.
2021-02-21 14:20:41 +11:00
Quantum
ba6f26393f
[client] egl: add framework for multiple scaling algorithms
...
This commit fixes the issues with the meaning of useNearest being flipped
by removing the variable and use enumerations.
We define an enumeration EGL_DesktopScaleType to express the type of scaling
needed to be performed: no scaling, upscaling, or downscaling. This is
updated when either the frame size or the viewport size changes.
Previously, we only updated the useNearest when the frame size changes.
The desktop shader can now support an enumeration of scaling algorithms,
although only nearest and linear are currently implemented.
Like before, nearest is used when not scaling or upscaling, and linear is
used when downscaling.
2021-02-21 14:20:41 +11:00
Quantum
ead8069dae
[client] keybind: add descriptions for all keybindings
2021-02-21 10:31:48 +11:00
Geoffrey McRae
37b3a26b9c
[client] all: refactor keybind code & functions
2021-02-21 10:31:48 +11:00
Geoffrey McRae
3d03699cc8
[client] all: move keybind implementation into app.c/h
2021-02-21 10:31:48 +11:00
Geoffrey McRae
819562d906
[client] fix keybind regression for EGL
2021-01-19 21:12:20 +11:00
Geoffrey McRae
b92e547d91
[client] egl: force the use of nearest if needed
...
As the screen output rotation can be changed on the fly, if it has been
rotated to 90 or 270 the nearest flag will be incorrect, so we perform
this check here and override the provided value.
2021-01-19 04:26:59 +11:00
Geoffrey McRae
8a1578230f
[client] all: properly support guest rotation
...
If the guest has it's output rotated (ie, landscape) we must rotate and
translate the pointer draw location, as well as all the translations of
cursor coordinate spaces based on the rotation, along with any local
rotations that may also be applied.
2021-01-19 02:54:56 +11:00
Geoffrey McRae
72c86d7125
[client] all: add screen rotation support win:rotate
...
Currently only supports EGL, if there is enough demand for OpenGL
support this can be added later.
Closes #231
2021-01-15 12:42:16 +11:00
Geoffrey McRae
c40a81ddf4
[client] egl: remove no longer used yuv shader
2021-01-15 12:42:16 +11:00
Geoffrey McRae
dd7e0ea8c6
[client] egl: added colorblind support (egl:cbMode=0/1/2/3)
...
Based on http://www.daltonize.org/search/label/Daltonize
0 = Off
1 = Protanope
2 = Deuteranope
3 = Tritanope
2020-11-09 07:08:15 +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
58ba76a27f
[client] seperate frame setup and data events
2020-10-12 19:43:29 +11:00
Geoffrey McRae
9c6bd888fd
[host/client] added experimental RGBA16 float support (EGL only)
2020-10-11 19:22:31 +11:00
Geoffrey McRae
075c82b32c
[client] egl: fix context binding enabling a lock free implementation
2020-05-22 17:47:19 +10:00
Geoffrey McRae
01bfd2e090
[client] egl: make better use of the second thread for streaming
2020-05-21 11:44:56 +10:00