···11+Add: Expose a `comp_render_gfx_layers` (formerly called `do_layers`) to match the `comp_render_cs_layers` function, which squashes layers.
+33
src/xrt/compositor/util/comp_render.h
···317317}
318318319319/*!
320320+ * Dispatch the (graphics pipeline) layer squasher, on any number of views.
321321+ *
322322+ * All source layer images needs to be in the correct image layout, no barrier
323323+ * is inserted for them. The target images are barriered from undefined to general
324324+ * so they can be written to, then to the layout defined by @p transition_to.
325325+ *
326326+ * Expected layouts:
327327+ *
328328+ * - Layer images: `VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL`
329329+ * - Target images: Any
330330+ *
331331+ * After call layouts:
332332+ *
333333+ * - Layer images: `VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL`
334334+ * - Target images: @p transition_to
335335+ *
336336+ * @note Swapchains in the @p layers must implement @ref comp_swapchain in
337337+ * addition to just @ref xrt_swapchain, as this function downcasts to @ref comp_swapchain !
338338+ *
339339+ * @param render Graphics renderer object
340340+ * @param[in] layers Layers to render, see note.
341341+ * @param[in] layer_count Number of elements in @p layers array.
342342+ * @param[in] d Common render dispatch data
343343+ * @param[in] transition_to Desired image layout for target images
344344+ */
345345+void
346346+comp_render_gfx_layers(struct render_gfx *render,
347347+ const struct comp_layer *layers,
348348+ uint32_t layer_count,
349349+ const struct comp_render_dispatch_data *d,
350350+ VkImageLayout transition_to);
351351+352352+/*!
320353 * Writes the needed commands to the @ref render_gfx to do a full composition with distortion.
321354 *
322355 * Takes a set of layers, new device poses, scratch