Geoffrey McRae
43a3fb0db3
[client] egl: RGB24 improvements
...
This patch performs several changes.
* Alters the fourcc codes to types that ignore the alpha channel where
possible to allow the gpu to internally use 24-bit formats.
* Attempts to use DRM_FORMAT_RGB888 first as some GPUs may support this
* If DMABUF is not in use the data is now imported directly as RGB24
without the post-processing shader
2023-11-21 12:01:45 +11:00
Geoffrey McRae
0ce4c34c37
[client] egl: fix non-dma RGB24 import path
2023-11-19 09:42:37 +11:00
Geoffrey McRae
6357df1a7a
[client] egl: fix non-dma texture stride issue
2023-11-15 17:40:57 +11:00
Geoffrey McRae
929e88b9d3
[all] provide conditional path optimization hints to the compiler
2023-11-12 18:26:08 +11:00
Geoffrey McRae
cce12508cc
[egl] shader: fix reliance on null terminated strings
...
Compiled in resources often will not contain a null terminator, as such
we must not use functions that rely on it. This implements a memsearch
function that performs like strstr on a buffer instead of a null
terminated string.
2023-11-11 13:48:41 +11:00
Geoffrey McRae
43f9a4c0e1
[client] egl: fix potential integer underflow
2023-11-11 13:48:41 +11:00
Geoffrey McRae
ee5c02f72a
[client] egl: fix potential resource leak
2023-11-11 13:48:41 +11:00
Geoffrey McRae
55fa5cc851
[client] egl: fix integer division into float
2023-11-11 13:48:41 +11:00
Geoffrey McRae
138a0aee53
[all] update cmake minimum version
2023-11-10 06:28:05 +11:00
Geoffrey McRae
3a6afd04d2
[client] egl: use the pitch to calculate the new width for rgb24
2023-11-10 06:28:05 +11:00
Geoffrey McRae
c0e09e13a5
[client] egl: make the bgr_bgra filter generic for 24-bit formats
2023-11-10 06:28:05 +11:00
Geoffrey McRae
3843afa927
[client] egl: fix texture import for RGB_24
2023-11-10 06:28:05 +11:00
Geoffrey McRae
49bdf046fe
[client] egl: partially fix RGB_24 support
2023-11-10 06:28:05 +11:00
Geoffrey McRae
6492c47e1e
[client] egl: fix typo
2023-11-10 06:28:05 +11:00
Geoffrey McRae
86e8e99107
[all] add initial support for RGB24-bpp support
2023-11-10 06:28:05 +11:00
Geoffrey McRae
3af2cf54d6
[client] egl: remove deprecated BGR members and logic
2023-11-10 06:28:05 +11:00
Geoffrey McRae
4aba15f31c
[client] egl: only scale damage rects if it's packed BGR
2023-11-10 06:28:05 +11:00
Geoffrey McRae
ad13928c73
[client] egl: fix bgr filter re-init if DMA mode changes
2023-11-10 06:28:05 +11:00
Tudor Brindus
d02e3730b2
[client] EGL: implement damage-aware RGB24 copy
2023-11-10 06:28:05 +11:00
Tudor Brindus
1da50d220e
[client] EGL: stop unpacking data across rows
2023-11-10 06:28:05 +11:00
Geoffrey McRae
c665044bfa
[client] implement support for RGB24 packed data
2023-11-10 06:28:05 +11:00
Geoffrey McRae
2f36aaff5c
[client] egl: prepare for DXGI HDR10 support
2023-10-27 01:03:22 +11:00
Geoffrey McRae
eeea24ebfb
[client] egl: invalidate the window when HDR settings are changed
2023-10-24 13:46:51 +11:00
Geoffrey McRae
e0bdd869d6
[all] fix client build on linux
2023-10-22 04:00:44 +11:00
Geoffrey McRae
2e515657dd
[all] update/add license headers
2023-10-20 15:36:34 +11:00
Geoffrey McRae
df5c648377
[client] egl: remove unit qualifier from label
2023-10-20 15:30:36 +11:00
Geoffrey McRae
78df2073ff
[client] egl: make it possible to configure HDR to SDR mapping
2023-10-20 15:26:27 +11:00
Geoffrey McRae
ad43969c1a
[client] egl: add support to map HDR to SDR
2023-04-26 16:26:54 +10:00
Geoffrey McRae
880d8042a4
[client] egl: fix support for deep color modes (30bpp)
2023-04-19 18:02:14 +10:00
Geoffrey McRae
a629d24dc3
[client] egl: fix fourcc for RGBA10 dmabuf
2023-04-19 17:30:40 +10:00
Geoffrey McRae
0ee5751b3a
[client] egl: fix buffer overflow
2023-03-30 14:16:51 +11:00
Geoffrey McRae
b4b4a37b2b
[client] egl: switch to using GL_TEXTURE_EXTERNAL_OES for DMABUF
...
According to Erik @ NVidia the open source NVidia driver will not
create a EGLImage from a DMABUF if the target is not
GL_TEXTURE_EXTERNAL_OES. This change set converts the dmabuf texture
from GL_TEXTURE_2D to GL_TEXTURE_EXTERNAL_OES and at runtime performs a
global search & replace on fragment shaders as needed to remain
compatible, replacing `sampler2D` with `samplerExternalOES`.
Ref: https://github.com/NVIDIA/open-gpu-kernel-modules/discussions/243#discussioncomment-3283415
2023-03-09 09:20:01 +11:00
Geoffrey McRae
bbc9204bfe
[client] egl: ensure the preprocessed files have a null terminator
2023-03-09 09:15:39 +11:00
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