Commit graph

631 commits

Author SHA1 Message Date
Jakob Bornecrantz 0ee1127431 aux/vk: Rename barrier functions and introduce new variant 2022-04-08 19:17:41 +01:00
Jakob Bornecrantz 6e13a0a21b aux/vk: Use correct aspect for image barrier 2022-04-08 17:34:30 +00:00
Jakob Bornecrantz 0d152381a8 c/client: Move NOOP begin/end to EGL client 2022-04-08 11:32:40 +01:00
Jakob Bornecrantz 46debec4fd c/client: Use begin and end in layer commit 2022-04-08 11:21:06 +01:00
Jakob Bornecrantz 7996457f3e c/client: Tidy 2022-04-08 11:21:06 +01:00
Christoph Haag cb7855b8bd c/client: Ensure the correct GL context is current
when running OpenGL functions.

Co-authored-by: James Hogan <james@albanarts.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2022-04-07 20:17:29 +02:00
Ryan Pavlik 16c016c4ca comp/render: Use a helper 2022-04-05 22:48:24 +00:00
Jakob Bornecrantz 48fd3e626c c/client: Tidy VK compositor 2022-04-05 23:22:26 +01:00
Jakob Bornecrantz 3bff3827d9 c/client: Remove acquire_release_fence completely
The barriers are a completely GPU affair no need to syncronize with the host.
2022-04-05 23:22:26 +01:00
Jakob Bornecrantz e7713bf1e4 c/multi: Be slightly smarter about late frames 2022-04-05 23:22:26 +01:00
Jakob Bornecrantz cf413a445f c/multi: Add per client thread that waits for sync objects 2022-04-05 23:22:26 +01:00
Jakob Bornecrantz 47649f56b6 u/pacing: Track when the app wants the frame to be displayed 2022-04-05 22:01:17 +00:00
Jakob Bornecrantz 8e8a0b38c6 u/pacing: Add gpu done time tracking to app pacer 2022-04-05 22:01:17 +00:00
Jakob Bornecrantz cfb8d36b46 c/render: Rename files 2022-04-05 22:45:45 +01:00
Jakob Bornecrantz ee09070608 c/render: Rename all functions and structs with new prefix 2022-04-05 22:45:12 +01:00
Jakob Bornecrantz d93c2dc4d8 c/render: Remove unused comp_rendering_compute_data 2022-04-05 22:45:12 +01:00
Jakob Bornecrantz 2f24353556 c/render: Remove main/comp_compositor include 2022-04-05 22:45:10 +01:00
Jakob Bornecrantz aaa2d4e8e6 aux/vk: Move compositor image format list here 2022-04-01 19:44:07 +01:00
Jakob Bornecrantz dea7bc847e c/util: Make COMP_VULKAN_FORMATS differentiate between depth-stencil, depth and stencil formats 2022-04-01 18:53:47 +01:00
Christoph Haag 5aa7ef25b8 c/util: Remove old format checking code
It's not the compositors job to check the format.
2022-04-01 18:53:47 +01:00
Christoph Haag 322ce27163 c/util: Print warning when attempting to create protected content swapchain 2022-04-01 18:53:47 +01:00
Jakob Bornecrantz 4f0b425da7 c/client: Tidy error messages in GL compositor 2022-03-31 01:14:04 +01:00
Jakob Bornecrantz d53659a476 c/client: Add a littel bit of tracing to GL compositor 2022-03-31 01:09:25 +01:00
Jakob Bornecrantz 38e7a0a1e6 c/client: Format format list 2022-03-31 00:45:51 +01:00
Jakob Bornecrantz 4fe8e89be9 c/client: Add new formats to GL 2022-03-31 00:43:53 +01:00
Jakob Bornecrantz 4f1dfa7ae4 aux/vk: Refactor out some printing functions 2022-03-30 20:14:38 +01:00
Jakob Bornecrantz 922fdff62d c/main: Use new format checking helpers 2022-03-29 16:26:34 +01:00
Jakob Bornecrantz c3eb8cd014 c/util: s/colour/color/g 2022-03-29 16:26:34 +01:00
Jakob Bornecrantz 08e025522f c/util: Add missing AHardwareBuffer formats 2022-03-29 16:26:34 +01:00
Jakob Bornecrantz 658c67b0fc c/util: Add vulkan format checking code 2022-03-29 16:26:34 +01:00
Jakob Bornecrantz 8cfe941c01 aux/vk: Rename vk_[color_]format_string 2022-03-29 16:26:34 +01:00
Antonio Ospite 28b53689f4 c/render: add comp_buffer_init_exportable helper to create exportable buffers
Some downstream user might want to use the very handy comp_buffer_init()
helper to create buffers, but the latter does not cover the case when
the buffer needs to be exportable for API interoperability.

Add a new comp_buffer_init_exportable() helper to cover that case, this
is done in a way that is not particularly invasive for existing users of
comp_buffer_init(), as all the logic about the exportability is handled
by the new function.
2022-03-23 21:38:22 +00:00
Jakob Bornecrantz 074a0afc32 c/vk: Make it possible to request higher Vulkan version 2022-03-22 15:19:48 +00:00
Jakob Bornecrantz 8d660b6994 cmake: Make it possible to select SPIR-V version to target 2022-03-22 15:19:48 +00:00
Jakob Bornecrantz 170fe0e5d9 aux/vk: Refactor out semaphore and native creation into a helper 2022-03-19 00:41:29 +00:00
Moses Turner b6e5c296f5 comp: Factor frame-timing helper out of comp_compositor
So that we can use it for readback and anything else
2022-03-18 19:00:28 -05:00
Jakob Bornecrantz c766411b50 c/client: Impelement xrt_compositor_semaphore interfaces 2022-03-14 19:53:05 +00:00
Jakob Bornecrantz ca7526a3e2 c/multi: Impelement xrt_compositor_semaphore interfaces 2022-03-14 19:53:05 +00:00
Jakob Bornecrantz 8a9a8aeeba c/util: Impelement xrt_compositor_semaphore interfaces 2022-03-14 19:53:05 +00:00
Jakob Bornecrantz 16bae922e2 c/main: Enable timeline semaphores where available 2022-03-14 18:58:35 +00:00
Jakob Bornecrantz f4f2196e34 xrt: Add a way to say that timeline semaphores have been enabled 2022-03-14 18:58:35 +00:00
Antonio Ospite beda8f35b2 xrt: fix -Wmissing-field-initializers warning in comp_window_wayland.c
Newer wayland protocols have a new filed in xdg_toplevel_listener which
is not initialized:

-----------------------------------------------------------------------
[215/315] Building C object src/xrt/compositor/CMakeFiles/comp_main.dir/main/comp_window_wayland.c.o
.../src/xrt/compositor/main/comp_window_wayland.c:182:1: warning: missing field 'configure_bounds' initializer [-Wmissing-field-initializers]
};
^
1 warning generated.
-----------------------------------------------------------------------

Detect the version when this is needed and initialize the field to
silence the warning.
2022-03-09 14:53:06 +01:00
Antonio Ospite e8c9d8f575 xrt: fix -Wunused-variable warnings
Some variables are only used in asserts, so they may be unused
depending on the build type:

-----------------------------------------------------------------------
[68/315] Building C object src/xrt/auxiliary/CMakeFiles/aux_util.dir/util/u_sink_combiner.c.o
.../src/xrt/auxiliary/util/u_sink_combiner.c:188:11: warning: unused variable 'diff_ns' [-Wunused-variable]
                int64_t diff_ns = frames[0]->timestamp - frames[1]->timestamp;
                        ^
1 warning generated.
[205/315] Building C object src/xrt/compositor/CMakeFiles/comp_main.dir/main/comp_renderer.c.o
.../src/xrt/compositor/main/comp_renderer.c:872:17: warning: unused variable 'layer_count' [-Wunused-variable]
        const uint32_t layer_count = c->base.slot.layer_count;
                       ^
1 warning generated.
-----------------------------------------------------------------------

Mark them as XRT_MAYBE_UNUSED to fix the build warnings.
2022-03-09 14:53:06 +01:00
Jakob Bornecrantz c0bd8ce3ba aux/vk: Let vk_init_from_given enable timeline semaphores 2022-03-08 21:04:56 +00:00
Jakob Bornecrantz 3c8378631f aux/vk: Properly set log_level in given vk_bundles 2022-03-08 21:04:56 +00:00
Antonio Ospite 031a53d6fd c/render: assign comp_buffer.size when creating a buffer
The size field in comp_buffer was never assigned, and also never used as
all comp_buffer users rely on the allocation_size field.

Use the size field to store the size originally requested when creating
the buffer which could be different from the value returned in the
allocation_size field.

Having both sizes available allows a user to check if allocation_size is
in fact different from the requested size.
2022-03-02 16:41:00 +00:00
Jakob Bornecrantz eca2e2535f c/util: Return timeout on fence timeout 2022-03-02 11:01:07 +00:00
Jakob Bornecrantz 772b6256d6 c/multi: Handle fence timeouts 2022-03-02 11:01:07 +00:00
Jakob Bornecrantz e13cfd2fec c/shader: Fix color values in compute clear shader 2022-03-01 13:58:07 +00:00
Jakob Bornecrantz 8229905233 c/client: Set default logging level for vk_bundle in vk compositor 2022-02-25 17:11:38 -06:00