Commit graph

5512 commits

Author SHA1 Message Date
Jakob Bornecrantz 2f586030be t/common: Fix Rift-S builder 2023-10-25 14:34:55 +01:00
Jakob Bornecrantz cbf26357d1 c/client: Add helpers to unwrap native swapchains and compositors 2023-10-24 14:07:43 +00:00
Jakob Bornecrantz d0617c04d5 c/render: Remove old layer render shaders 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz 2245811d1e c/main: Remove layer renderer 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz 3293def0cb c/main: Remove layer renderer integration in renderer 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz 958d62fcab c/main: Remove old graphics dispatch helpers 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz 3dcd555a6f c/main: Use new comp_render helpers to render frame 2023-10-24 12:33:05 +00:00
Jakob Bornecrantz c5f4f0ab7a xrt: Remove old roles
Also remove all fallbacks helpers now.
2023-10-24 09:24:49 +00:00
Jakob Bornecrantz 1d476d4e32 st/oxr: Update role debug printing 2023-10-24 09:24:49 +00:00
Nico Marniok 5e48d22ecd st/oxr: Add input device hot-switch support
Co-authored-by: Korcan Hussein <korcan.hussein@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-24 09:24:49 +00:00
Korcan Hussein f60ffe5af7 st/oxr: Clone profiles to session on action sets attachment.
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-24 09:24:49 +00:00
Korcan Hussein d033955678 st/steamvr_drv: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Korcan Hussein 60ae73f571 ipc: Add support for dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz 5a38cbc4f0 st/prober: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz f6b1cc140d t/cli: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz 9331c8bb0a t/common: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz 2c49c0f9a7 t/sdl_test: Add support for new dynamic device roles 2023-10-24 09:24:49 +00:00
Jakob Bornecrantz dcdf270d13 d/remote: Add support for new dynamic device roles
Currently static.
2023-10-24 09:24:49 +00:00
Jakob Bornecrantz ccf6a4c8e3 u/system_helpers: Add static system device helper
As compared to one that can handle dynamic devices.
2023-10-24 09:24:49 +00:00
Nico Marniok 2718f0506e xrt: Add dynamic roles to xrt_system_devices
Doesn't fully remove the old way yet.

Co-authored-by: Korcan Hussein <korcan.hussein@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-24 09:24:49 +00:00
Jakob Bornecrantz d266b8d65a c/util: Add cylinder and equirect2 in graphics layer squasher
Co-authored-by: Simon Zeni <simon.zeni@collabora.com>
Co-authored-by: Charlton Rodda <charlton.rodda@collabora.com>
2023-10-23 22:20:41 +01:00
Jakob Bornecrantz 669e37220c c/util: Add to_tangent for view state 2023-10-23 22:20:41 +01:00
Simon Zeni 0d0addca82 c/util: Add calc_mv_inv_full function
Co-authored-by: Charlton Rodda <charlton.rodda@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-23 22:20:41 +01:00
Simon Zeni 38f1b35ac0 c/util: Compute eye and world inverse view matrix
Co-authored-by: Charlton Rodda <charlton.rodda@collabora.com>
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2023-10-23 22:20:41 +01:00
Jakob Bornecrantz 2c2cacc8f1 c/util: Add mathinclude 2023-10-23 22:20:41 +01:00
Jakob Bornecrantz 3b174b0dab c/render: Add cylinder and equirect2 shaders
Co-authored-by: Simon Zeni <simon.zeni@collabora.com>
Co-authored-by: Charlton Rodda <charlton.rodda@collabora.com>
2023-10-23 22:20:41 +01:00
Jakob Bornecrantz 505a54bf8f c/render: Make UBO one shared layout available to fragment shader as well 2023-10-23 21:56:58 +01:00
Charlton Rodda f4980d35ea c/render: Fix typos [NFC] 2023-10-23 21:56:58 +01:00
Gabriele Boccone ce90c0a1c7 t/common: Fix creation on no driver available
Only say we can create a system if we have a driver in legacy builder.
2023-10-23 19:52:19 +01:00
Gabriele Boccone b500272c0b st/prober: Quit without crashing if no driver is available 2023-10-23 19:51:44 +01:00
Zhongwang Zhang 85fcbfaefe c/client: Make vulkan log configurable 2023-10-20 14:18:30 +01:00
Christoph Haag ef47498137 ipc: Fix session deactivation negative array index access
It is possible for s->global_state.active_client_index to be -1 when
update_server_state_locked is called:

ipc_server_activate_session is only called from
ipc_handle_compositor_predict_frame, which is only called from
ipc_compositor_wait_frame.

So it is possible to deactivate a session that was never activated.
2023-10-19 15:37:01 +02:00
Jakob Bornecrantz eee17ee2ff u/builders: Refactor space overseer creation helper 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz e805209fcd d/opengloves: Refactor creation 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 8b30819b35 t/common: Refactor WinMR builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 0a8fa312d6 t/common: Refactor SimulaVR builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 201ea799ac t/common: Refactor Simulated builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz fb8c941257 t/common: Refactor Rift-S builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 09c75b6aaf t/common: Refactor RGB builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 841fc7c644 t/common: Refactor QWERTY builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz d9329d1c7c t/common: Refactor Nreal Air builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 9a27a32b9c t/common: Refactor North Star builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 1d8bfc7532 t/common: Refactor Lighthouse builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz d2ceb81070 t/common: Refactor Legacy builder [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz e58926662f t/common: Don't destroy frame context on failure
This is handled later in the builder.
2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 0b9a8ea860 t/common: Return error message proper failure in legacy builder 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 08ec4e0259 u/system_helpers: Refactor hand-tracker helper getters 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 464a95abed u/system_helpers: Tidy functions [NFC] 2023-10-19 11:28:22 +01:00
Jakob Bornecrantz 3184941c09 d/rs: Fix warnings [NFC] 2023-10-18 17:30:00 +01:00
Jakob Bornecrantz f5021dcf5a d/nreal_air: Silence warning [NFC] 2023-10-18 17:30:00 +01:00
Jakob Bornecrantz 8110fceb39 d/nreal_air: Tidy [NFC] 2023-10-18 17:28:24 +01:00
Jiali Zhang 8f70291cad c/client: Expose size limit for swapchains 2023-10-18 15:20:26 +01:00
Jiali Zhang 900c43a6e2 st/oxr: Verify max swapchain size 2023-10-18 15:14:21 +01:00
Jiali Zhang bbb1de1b0f xrt: Add size limit for swapchain 2023-10-18 15:14:21 +01:00
Jakob Bornecrantz 93f1c0e288 st/oxr: Refactor device role getters 2023-10-13 17:12:23 +01:00
Korcan Hussein 44a2562acd st/oxr: Increase use of action ref in binding code
Make `oxr_action_attachment_bind` only use `oxr_action_ref` params.
2023-10-13 17:12:23 +01:00
Jakob Bornecrantz 1a720c4814 c/util: Add graphics render helpers 2023-10-13 01:15:20 +01:00
Jakob Bornecrantz 8427a33196 c/util: Rename render compute file 2023-10-13 00:45:20 +01:00
Jakob Bornecrantz 0bbbd1b507 c/util: Refactor out render helpers to header 2023-10-13 00:45:20 +01:00
Jakob Bornecrantz b97ca79b5e c/util: Prefix compute helpers with cs 2023-10-13 00:45:20 +01:00
Jakob Bornecrantz 8f7c58e70a c/render: Add graphics layer rendering code 2023-10-13 00:45:20 +01:00
Jakob Bornecrantz 73639f7b37 c/render: Add graphics layer shaders 2023-10-13 00:45:20 +01:00
Jakob Bornecrantz bcccfc2f21 c/render: Make it possible to set clear colour when starting render pass 2023-10-13 00:45:20 +01:00
Jakob Bornecrantz a9cdba2ce5 c/main: Enable timewarp for gfx fast path 2023-10-10 15:33:57 +01:00
Jakob Bornecrantz 4a8a36f620 c/render: Enable timewarp to be used on mesh shader 2023-10-10 15:33:57 +01:00
Jakob Bornecrantz 899f02e17c c/render: Add timewarp to mesh shader
Currently disabled.
2023-10-10 15:33:57 +01:00
Jakob Bornecrantz 52b93a5a29 c/render: Make ubo upload and descriptor setting shareable 2023-10-10 14:33:07 +00:00
Jakob Bornecrantz 8ce3971fe9 c/render: Make descriptor layout creation function shareable 2023-10-10 14:33:07 +00:00
Jakob Bornecrantz 5bc9ff8f13 c/render: Make gfx descriptor pool shareable 2023-10-10 14:33:07 +00:00
Jakob Bornecrantz 89c99de598 c/render: Remove unused render_gfx_view and other fields on render_gfx 2023-10-10 14:33:07 +00:00
Jakob Bornecrantz ff51653ffd c/render: Refactor gfx mesh shader allocation and dispatch 2023-10-10 14:33:07 +00:00
Jakob Bornecrantz 93272b684c a/math: Add projection matrix making function 2023-10-10 14:30:48 +00:00
Jakob Bornecrantz 11fba8d79f a/math: Add missing files to CMakeLists.txt [NFC] 2023-10-10 14:30:48 +00:00
Jakob Bornecrantz ae31778032 a/math: Add missing C declaration specifier [NFC] 2023-10-10 14:30:48 +00:00
Jakob Bornecrantz 50b5e6445e a/math: Organize base and api file [NFC] 2023-10-10 14:30:48 +00:00
BabbleBones 238647d7e1 d/steamvr_lh: Add tundra as generic tracker 2023-10-09 22:03:17 -04:00
Jakob Bornecrantz d1ce6c15ac c/render: Use sub-allocation for mesh shader UBOs 2023-10-06 15:21:12 +01:00
Jakob Bornecrantz 06ddfe32df c/render: Add scaffolding for sub-allocating UBOs 2023-10-06 15:21:12 +01:00
Jakob Bornecrantz 00891b3452 c/render: Add simple sub-allocation code 2023-10-06 15:21:12 +01:00
Jakob Bornecrantz 0b7deed16f u/system_helpers: Make system devices easier to embed 2023-10-06 14:51:48 +01:00
Jakob Bornecrantz 77efa57e0a c/render: Make library usable on it's own in cmake 2023-10-05 12:47:51 +01:00
Jakob Bornecrantz ace0ca62c6 c/render: Expose uv to tangent lengths function
Also document it better.
2023-10-05 12:47:51 +01:00
Jakob Bornecrantz 975ca891c3 c/render: Refactor gfx distortion dispatch 2023-10-05 12:47:51 +01:00
Jakob Bornecrantz 996195f544 c/main: Refactor gfx dispatch 2023-10-05 12:47:51 +01:00
Jakob Bornecrantz b7dbdae304 c/main: Refactor vertex rot getting in renderer 2023-10-05 12:47:51 +01:00
Jakob Bornecrantz c81356e0c8 c/main: Refactor view poses getting in renderer 2023-10-05 12:47:51 +01:00
Jakob Bornecrantz 0362834904 c/main: Tidy layer headers 2023-10-05 12:47:51 +01:00
Jakob Bornecrantz 05a9617874 c/util: Fix timewarp logic being inverted for fast path 2023-10-04 16:28:38 +01:00
Jakob Bornecrantz 87b3b2ea5a c/render: Constify arguments [NFC] 2023-10-04 01:04:03 +01:00
Jakob Bornecrantz b5a9300479 c/render: Tidy header includes in shaders [NFC] 2023-10-04 01:04:03 +01:00
Jakob Bornecrantz ae3cf44263 c/render: Refactor shader loading define [NFC] 2023-10-04 01:04:03 +01:00
Jakob Bornecrantz 6e7a0a621c c/render: Use define helpers in gfx code 2023-10-04 01:04:03 +01:00
Jakob Bornecrantz b8a226bf7b c/render: Use define helpers in buffer code 2023-10-04 01:04:03 +01:00
Jakob Bornecrantz 78a638a6cd c/render: Use define helpers in shaders code 2023-10-04 01:04:03 +01:00
Jakob Bornecrantz f468e124c2 c/render: Use define helpers in compute code 2023-10-03 21:51:03 +00:00
Jakob Bornecrantz c93f0d75d8 c/render: Use define helpers in resources code 2023-10-03 21:51:03 +00:00
Jakob Bornecrantz 19da398713 c/render: Use define helpers in distortion code 2023-10-03 21:51:03 +00:00
Jakob Bornecrantz d72627ceb7 a/vk: Fix leak in extension checking code 2023-10-03 20:57:11 +00:00
Jakob Bornecrantz cf1f03b175 a/vk: Remove unused vk_has_error 2023-10-03 01:11:14 +01:00
Jakob Bornecrantz 6d43e3e4b7 a/vk: Remove unused vk_check_error define 2023-10-03 01:11:14 +01:00
Jakob Bornecrantz f4455271c9 a/vk: Remove unused vk_check_error_with_free define 2023-10-03 01:11:14 +01:00
Jakob Bornecrantz e10c0e5d40 c/main: Use VK_CHK_WITH_RET instead of vk_check_error 2023-10-03 01:11:14 +01:00
Jakob Bornecrantz f75eabea29 a/vk: Use VK_CHK_WITH_RET instead of vk_check_error 2023-10-03 01:11:14 +01:00
Jakob Bornecrantz 8c512f9890 a/vk: Introduce VK_CHK_* helpers 2023-10-03 01:11:14 +01:00
Jakob Bornecrantz 42080b068c a/vk: Add mini defines helpers 2023-10-03 01:11:14 +01:00
Jakob Bornecrantz 0fb3e9a943 a/vk: Use vk_print_result instead of vk_has_error 2023-10-03 01:11:14 +01:00
Jakob Bornecrantz 6316bf39a9 a/vk: Add vk_print_result helper 2023-10-03 01:11:14 +01:00
Jakob Bornecrantz 0fa30c0fbe c/main: Print error on bad fast path state 2023-10-02 21:48:50 +01:00
Jakob Bornecrantz 3c82beb1a1 c/main: Fix mistake in dispatch_graphics
Closes #290
2023-10-02 21:48:43 +01:00
BabbleBones 4c1c593bf4 steamvr_lh: add frame mutex to prevent double free 2023-09-30 16:19:40 +00:00
Jakob Bornecrantz e33418de56 c/main: Refactor dispatch_graphics function 2023-09-29 12:00:03 +01:00
Jakob Bornecrantz 4893638ccd c/main: Remove the command buffer in layer renderer
This makes it so that we only use one command buffer
for the entire frame, which gives us a nice speed up.
2023-09-29 12:00:03 +01:00
Jakob Bornecrantz ce4e11686e c/main: Use scratch image for layer renderer 2023-09-29 12:00:03 +01:00
Jakob Bornecrantz 7e5615fee1 c/main: Use render's render pass in layer renderer 2023-09-29 12:00:03 +01:00
Jakob Bornecrantz d46e619d3c c/main: Create render pass and targets for scratch images 2023-09-29 12:00:03 +01:00
Jakob Bornecrantz 7a9aa05d46 c/main: Let main compositor decide size of scratch image 2023-09-29 12:00:03 +01:00
Jakob Bornecrantz 84a0277ee7 c/render: Make srgb_view renderable for scratch images 2023-09-29 10:43:18 +01:00
Jakob Bornecrantz 29574dfea3 c/render: Refactor out a render pass object 2023-09-29 10:43:18 +01:00
Jakob Bornecrantz 7c512b2fc5 c/render: Refactor external render pass into a implicit one 2023-09-29 10:43:18 +01:00
Jakob Bornecrantz d4f3c794df c/render: Don't enable depth testing and writing for mesh shader
It's not used, so don't leave it on.
2023-09-29 10:43:18 +01:00
Jakob Bornecrantz b6e5a89c97 u/pacing: Add minimum app margin 2023-09-28 15:23:46 +01:00
Jakob Bornecrantz 560265357b u/pacing: Rename wait time to gpu time [NFC] 2023-09-28 15:23:46 +01:00
Jakob Bornecrantz 6a007b2986 c/util: Fix subimage flipping 2023-09-26 19:57:28 +01:00
Ryan Pavlik e1bb2221cc a/gstreamer: Trim includes in header 2023-09-26 11:37:41 -05:00
Fernando Velazquez Innella 151e1aaf14 a/vk: Init vk bundle with shaderImageGatherExtended enabled if supported 2023-09-24 20:59:07 +00:00
Jakob Bornecrantz ba08985126 a/vive: Fix use after free 2023-09-23 18:33:00 +01:00
Jakob Bornecrantz 82192a43f9 ipc: Generate limited unique ids for native swapchains 2023-09-21 22:34:06 +01:00
Jakob Bornecrantz 151b3005d5 c/util: Generate limited unique ids for native swapchains 2023-09-21 22:34:06 +01:00
Jakob Bornecrantz f27cb14669 u/limited_unique_id: Add process unique id generator 2023-09-21 22:34:06 +01:00
Jakob Bornecrantz 22770320f2 xrt: Add limited unique id to native swapchains 2023-09-21 22:34:06 +01:00
Jakob Bornecrantz b6a80f0fd9 xrt: Add xrt_limited_unique_id 2023-09-21 22:34:06 +01:00
Jakob Bornecrantz e501116d87 c/main: Trace mirror blit function 2023-09-21 22:34:06 +01:00
Jakob Bornecrantz 15743d822b st/gui: Refactor a few OpenGL drawing code into helper 2023-09-21 22:34:06 +01:00
Jakob Bornecrantz bde2dce2b6 st/gui: Improve thread safety, improve comments and spelling 2023-09-21 22:00:07 +01:00
Jakob Bornecrantz 53f510e6b9 st/gui: Rename file with OpenGL sink functions [NFC] 2023-09-21 00:39:03 +01:00
Jakob Bornecrantz d2d505d9e3 ext/imgui: Add function to draw image with background color 2023-09-21 00:39:03 +01:00
Jakob Bornecrantz 05a3f3e055 ext/imgui: Remove unnecessary braces [NFC] 2023-09-20 16:57:10 +01:00
Jakob Bornecrantz fe8c4116ec t/sdl_test: Use helper to import images 2023-09-20 16:50:58 +01:00
Jakob Bornecrantz 95e1c9c8dd a/ogl: Add helper to import native images 2023-09-20 16:50:58 +01:00
Jakob Bornecrantz 1a543cb0c0 a/ogl: Add Vulkan to OpenGL conversion function 2023-09-20 16:50:58 +01:00
Jakob Bornecrantz 3c1d8dafaa a/ogl: Put comment in group [NFC] 2023-09-20 16:50:58 +01:00
Jakob Bornecrantz 141e598295 c/render: Optimize layer shader 2023-09-20 16:41:30 +01:00
Jakob Bornecrantz bd38e90b51 c/main: Use new helpers to dispatch compute 2023-09-20 16:41:30 +01:00
Jakob Bornecrantz a5792222a4 c/util: Add helpers to fully dispatch compute pipeline 2023-09-20 16:41:30 +01:00
Jakob Bornecrantz ee2fe9fd40 c/[render|main]: Refactor scratch images
This commit does a few things:

* Makes the scratch images per view
* Introduces a new struct that is managed by the renderer
2023-09-20 16:41:30 +01:00
Jakob Bornecrantz fed360e98b c/[render|util|main]: Refactor layer squasher code
This commit does a couple of things in one go.

* The layer squasher now dispatches once per view.
  * Reducing the number of samplers needed.
  * Allows for per view target.
* Refactor the setup code to comp_util.
* The layout transition part now happens in new helper code.

On my system this change is very marginally slower,
around 0.05ms and 0.1ms slower on average.
2023-09-20 16:41:30 +01:00
Jakob Bornecrantz dd21f3c7ec c/render: Explain how we get the direction [NFC] 2023-09-20 16:41:30 +01:00
Jakob Bornecrantz 7996013e4d c/render: Rename defines to proper prefix [NFC] 2023-09-20 16:41:30 +01:00
Jakob Bornecrantz 7441a9bda6 c/render: Better names for descriptor sets [NFC] 2023-09-20 16:41:30 +01:00
Jakob Bornecrantz 50adb87d79 c/util: Tweak cmake [NFC] 2023-09-20 16:41:30 +01:00