Geoffrey McRae
dcde981a17
[client] opengl: fix cursor location when the source is downsampled
2023-11-10 06:28:05 +11:00
Geoffrey McRae
c54a09ca25
[client] opengl: fix row alignment parameter bug
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
Geoffrey McRae
139e98ac3b
[client] OpenGL:fix RGB24 support for non 64-bit aligned pitches
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
bf8f4c17f0
[client] opengl: render cursor in spice mode
2022-09-19 14:58:47 +10: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
6cbfa6e734
[client] egl: add spice display support
2022-05-24 06:57:33 +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