Ryan Pavlik
1203cf38f0
cmake: Fix build when we have EGL but not GLES headers.
2021-12-13 15:00:24 -06:00
Ryan Pavlik
cc4007a69e
cmake: Substantial cleanups and simplifications
...
We now have a cmake-format config file.
We no longer use list variables for sources, instead using
target_sources when we need to add, in accordance with current
best practice. (This makes it a lot easier to edit too.) There's no more
include_directories(), add_definitions(), or other gently-deprecated
directory-scoped commands, nor any CMake scripts that include
a parent directory reference (named targets instead)
2021-11-12 09:48:37 -06:00
Jakob Bornecrantz
a97523591f
c/util: Add Vulkan helper
2021-11-06 10:51:19 +00:00
Jakob Bornecrantz
6e28533bdc
c/render: Break out into own library
2021-11-04 20:56:21 +00:00
Jakob Bornecrantz
e08c1b1f04
c/util: Add comp_base native compositor helper base class
2021-11-04 20:56:21 +00:00
Jakob Bornecrantz
029031cfd3
c/util: Break out swapchain and sync into own library
2021-11-04 20:55:48 +00:00
Ryan Pavlik
3bd0a07aa2
cmake: Split out finding GLX from the rest of OpenGL on Linux.
...
Fixes #132 .
2021-11-04 15:36:58 +00:00
Jakob Bornecrantz
56f4466ffa
c/render: Move shaders to render
2021-11-03 13:25:15 +00:00
Jakob Bornecrantz
8c8d72647b
c/render: Refactor out timewarp matrix into util file
2021-11-03 13:25:15 +00:00
Ryan Pavlik
884a312011
build: Fix build with CMake before 3.14
2021-10-01 11:21:35 -05:00
Jakob Bornecrantz
a58b8df4a9
cmake: Link with WAYLAND_LIBRARIES or SDL gets sad
2021-09-17 11:54:57 +00:00
Simon Zeni
47be806428
c/main: Implement WINDOW_DIRECT_WAYLAND
2021-09-15 18:44:18 +00:00
Jakob Bornecrantz
5bff6f3c9b
c/render: Add ATW support for compute rendering
2021-09-14 16:15:27 +00:00
Jakob Bornecrantz
3795004208
c/main: Add compute distortion rendering backend
2021-09-14 16:15:27 +00:00
Jakob Bornecrantz
f9b5097134
c/client: Use the EGL compositor's display in swapchain
2021-06-02 14:26:59 +00:00
Jakob Bornecrantz
c1ac7fc679
c/client: s/comp_egl_glue.c/comp_egl_client.c (NFC)
2021-05-05 16:14:00 +00:00
Ryan Pavlik
1ce306cb55
cmake: Fix include dir scope for comp_multi
2021-04-09 18:11:46 -05:00
Jakob Bornecrantz
2035da1ec9
c/main: Implement fence functions
2021-04-07 00:50:10 +01:00
Jakob Bornecrantz
086bef8545
c/multi: Add new multi-client helper
2021-04-07 00:50:10 +01:00
Christoph Haag
cc81174b70
comp: Fix VkDisplayKHR direct mode build without libx11-xcb
2021-02-10 22:02:30 +01:00
Christoph Haag
9481013081
comp: add VkDisplayKHR window backend
...
Must be activated/selected with an env var for now: XRT_COMPOSITOR_FORCE_VK_DISPLAY=2
2021-01-19 17:00:46 +00:00
Lubosz Sarnecki
4995854d06
c/layers: Implement equirect1 rendering.
...
Add equirect1 boilerplate, shader files, ubo and pipeline.
2020-12-14 18:59:28 +00:00
Lubosz Sarnecki
f334b8b6c7
src: Consistently append 2 to equirect2 code.
...
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT to XRT_FEATURE_OPENXR_LAYER_EQUIRECT2.
Rename equirect to equirect2.
Rename shader files.
2020-12-14 18:59:28 +00:00
Ryan Pavlik
0cb64ce5bd
comp/main: Windows work - got a window to appear!
2020-12-06 23:07:05 +00:00
Jakob Bornecrantz
e8360c013d
c/main: Refactor vk_swapchain into comp_target_swapchain
2020-11-20 03:20:33 +00:00
Jakob Bornecrantz
6260248d20
c/main: Introduce comp_target struct
2020-11-20 03:20:33 +00:00
Ryan Pavlik
a0bbca572d
comp: Basic Android compositor window.
...
Also makes the service feature not depend on other options:
it can be used without those other parts.
comp/window_android: Remove unused EGL code for now, as it is crashing.
comp/window_android: Use MonadoView async method to create surface.
comp/window_android: Use custom surface as intended
Co-authored-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
2020-10-28 09:41:30 -05:00
Lubosz Sarnecki
9738b4fe93
c/shaders: Add equirect shader.
2020-10-26 01:34:10 +00:00
Jakob Bornecrantz
54739aff8d
c/render: Refactor out distortion rendering
2020-10-13 19:51:13 +01:00
Jakob Bornecrantz
32fd9398fe
c/main: Refactor shader loading to own file
2020-10-13 19:17:50 +01:00
Jakob Bornecrantz
1750bb672f
c/main: Remove none shaders
2020-10-08 15:02:52 +01:00
Christoph Haag
f82f247c19
comp: Rename distortion.vert to none.vert
...
After removing the other shaders, it is only used for no distortion anymore.
2020-09-30 02:05:05 +02:00
Christoph Haag
2e7451ca5e
comp: Support only mesh and no istortion, remove pano and vive shaders
...
Also changes hardcoded binding indices into variables to make following the code easier
e.g. when adding new UBOs.
2020-09-30 02:05:04 +02:00
Ryan Pavlik
fc73ba0401
comp: Split OpenGL[ES] swapchain types
2020-08-13 17:34:05 -05:00
Ryan Pavlik
6f56d91c05
xrt: Add separate build config for OpenGL ES
2020-07-17 15:17:42 -05:00
Lubosz Sarnecki
6222de38c9
comp/shaders: Rename quad shaders to layer.
...
As the shader is used for all layers we have, the generic name fits
better.
2020-07-16 19:08:10 +02:00
Ryan Pavlik
1aa2cdb89a
build: Move determination of Vulkan usage to build system.
...
Vulkan is still required for most actual uses of Monado, but this
makes the coupling weaker.
2020-07-16 10:17:30 +00:00
Lubosz Sarnecki
435d5a9b9e
c/comp: Remove internal Vulkan validation init.
...
Instead of maintaining this chunk of code and build options, the Vulkan
loader can be used to load up validation. This has the advantage that no
layer name needs to be hard coded inside Monado, which was subject of
change recently.
Instead of using our own environment variable we can easily set the one
from the loader, e.g. `VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation`.
2020-06-03 11:17:51 +00:00
Lubosz Sarnecki
aedd4d9ff8
c/layers: Implement layer renderer.
...
Implements a layer renderer capable of handling multiple quad
and projection layers rendered in it's own Vulkan pipeline.
2020-05-28 22:16:57 +00:00
Ryan Pavlik
4638b0af7b
build: Switch all CMake options to XRT_... to match what's used in source.
...
Also revise other small related parts of the build to make them more clear and consistent.
2020-05-12 11:52:51 -05:00
Lubosz Sarnecki
29b771818e
c/direct: Move common direct mode code to comp_window_direct.
...
Create code file for common direct mode code.
Make common functions take generic parameters.
Use common code in randr and nvidia back ends.
Remove redunant includes.
2020-04-09 16:15:17 +00:00
Lubosz Sarnecki
94bc4cba28
c/direct: Split NVIDIA and RandR backends.
...
Rename functions and structs.
Define unused function overrides separatelty.
c/window: Define new backend init methods.
2020-04-09 16:15:17 +00:00
Lubosz Sarnecki
6158a23dd9
c/direct_mode: Port to plain C.
2020-04-07 15:00:16 +02:00
Lubosz Sarnecki
865b668ee7
c/xcb: Port to plain C.
...
The code was already essentialy C, just needed to replace the pairs with
structs and the vector with an array, it was fixed length anyway.
The code feels more natural in C.
2020-04-07 15:00:16 +02:00
Ryan Pavlik
71c29425d4
build: Fix linking issues preventing the OpenXR runtime from working.
2020-03-04 09:54:47 -06:00
Ryan Pavlik
92205ab5be
build: Refactor CMake build to use static libraries instead of object bundles.
...
This allows transitive dependencies to work easier and improves compatibility.
It takes a little bit more storage at build time, and possibly a little extra time.
2020-03-04 11:15:35 +00:00
Ryan Pavlik
fdaede836c
build: Make it possible to turn off the main compositor lib and runtime target.
2020-03-03 10:33:14 +00:00
Jakob Bornecrantz
ca3c266dc1
comp: Split client and main in the build system as well
2020-03-02 12:01:04 +00:00
Jakob Bornecrantz
b308facf90
comp: Move all glue code into client folder
2020-03-02 12:00:22 +00:00
Jakob Bornecrantz
3ca7fbf2f0
comp: Remove common directory
2020-03-02 12:00:22 +00:00