Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-06-02 | cursor: unset wlr_output_cursor.texture on surface destroy | Simon Ser | |
When the surface is destroyed, its current wlr_texture is about to get destroyed as well. Reset wlr_output_cursor.texture to prevent use-after-free. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3652 | |||
2023-06-02 | cursor: ignore wlr_cursor_set_surface() with same surface | Simon Ser | |
Avoids damaging the output and rendering the cursor again if it hasn't changed. | |||
2023-06-02 | xwm: introduce associate/dissociate events | Kirill Primak | |
We'll soon introduce a unified wlr_surface map event. Up until now, compositors have been using wlr_xwayland_surface's map event to setup various wlr_surface related listeners (e.g. commit). This will no longer be possible when that event is moved over to wlr_surface. Introduce new events where the compositor can add/remove wlr_surface event listeners. | |||
2023-06-02 | Revert "xwm: emit new_surface/destroy on associate/dissociate" | Kirill Primak | |
Firing new_surface when a wlr_surface is associated to the X11 window is too late: the X11 client might've sent configure events before that. This reverts commit 039cca8a51ed0783d45fb7a5215e9ae83e4e02e2. Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3606 | |||
2023-06-01 | render/vulkan: improve error handling in vulkan_begin_render_pass() | Simon Ser | |
Release the command buffer if we end up not submitting it. | |||
2023-06-01 | render/vulkan: improve error handling in render_pass_submit() | Simon Ser | |
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644 | |||
2023-05-31 | backend/drm: introduce wlr_drm_mode_get_info() | Simon Ser | |
This allows compositors to get back the raw drmModeModeInfo and look at DRM-specific fields and flags. | |||
2023-05-31 | render/vulkan: handle vulkan_record_stage_cb() failures | Simon Ser | |
2023-05-31 | backend/drm: move forward decl up for drmModeModeInfo | Simon Ser | |
This allows doc generators to properly associate the doc comment with the function instead of the typedef. | |||
2023-05-30 | output/cursor: use new rendering API | Simon Ser | |
2023-05-30 | examples: convert to new rendering API | Simon Ser | |
Left out multi-pointer (will be removed) and quads (requires arbitrary rotation). | |||
2023-05-30 | backend/drm: use new rendering API | Simon Ser | |
2023-05-30 | output: add wlr_output_begin_render_pass() | Simon Ser | |
2023-05-30 | wlr_scene: Introduce wlr_scene_buffer_set_opacity | Alexander Orzechowski | |
2023-05-30 | wlr_scene: Make scene_rect_from_node public | Alexander Orzechowski | |
This is in an effort to be more consistent with both already public getters: wlr_scene_buffer_from_node and wlr_scene_tree_from_node | |||
2023-05-30 | wlr_scene: Make scene_tree_from_node public | Alexander Orzechowski | |
This is to allow for compositors that want to be more implicit about how their scene is organized. Such a compositor may want to walk up at a certain scene node to find something such as a surface to focus on. | |||
2023-05-30 | wlr_scene: Add documentation to wlr_scene_buffer_from_node | Alexander Orzechowski | |
2023-05-30 | render/vulkan: implement render pass API | Simon Ser | |
2023-05-28 | renderer/gles2: Implement render pass interface | Alexander Orzechowski | |
2023-05-28 | renderer/gles2: Compute texture coordinates based off of vertex positions | Alexander Orzechowski | |
2023-05-28 | renderer/gles2: Merge get_buffer and create_buffer | Alexander Orzechowski | |
2023-05-28 | renderer/gles2: Interpret matrix as column major in shader | Alexander Orzechowski | |
Avoids us needing to transpose. | |||
2023-05-28 | render/vulkan: add 10, 12, and 16-bit YCbCr formats | Simon Ser | |
2023-05-26 | output: use pending render format if any | Simon Ser | |
If a modeset contains a render format change, use that instead of the current one stored in wlr_output.render_format. This fixes render_bit_depth configuration not being applied without a second modeset in Sway. | |||
2023-05-26 | render/vulkan: document TEXTURE_TRANSFORM_* in shader | Simon Ser | |
2023-05-26 | render/vulkan: drop unused vulkan_has_extension() | Simon Ser | |
2023-05-26 | render/vulkan: drop unused vulkan_change_layout_queue() | Simon Ser | |
2023-05-24 | render/egl: check for EGL_EXT_device_query in get_egl_device_from_drm_fd() | Simon Ser | |
We use eglQueryDeviceStringEXT() later on, which is optional and requires support for the EGL_EXT_device_query extension. | |||
2023-05-24 | render/vulkan: de-dup pipeline layout initialization | Simon Ser | |
2023-05-24 | render/vulkan: add more YCbCr formats | Simon Ser | |
The Vulkan spec states: > For the purposes of range expansion and Y′CBCR model conversion, > the R and B components contain color difference (chroma) values > and the G component contains luma. The equations below that sentence also help understand the mapping. | |||
2023-05-24 | render/vulkan: require support for linear filter for YCbCr | Simon Ser | |
YCBCR_CONVERSION_LINEAR_FILTER is not enough: this one only covers chromaFilter. For magFilter/minFilter we need FILTER_LINEAR as well. | |||
2023-05-24 | render/vulkan: check format support before creating YCbCr sampler | Simon Ser | |
We need to check whether the format supports dma_tex_ycbcr_features before creating the YCbCr sampler. | |||
2023-05-24 | render/vulkan: generalize YCbCr format support | Simon Ser | |
2023-05-24 | render/vulkan: add init_{default,ycbcr}_pipeline_layout() | Simon Ser | |
2023-05-24 | render/vulkan: add vulkan_get_pipeline_layout() | Simon Ser | |
Will make it easier to add more pipeline layouts for other YCbCr formats. | |||
2023-05-24 | render/vulkan: introduce struct wlr_vk_pipeline_layout | Simon Ser | |
This will make it easier to create one pipeline layout (plus related objects) per YCbCr format. | |||
2023-05-24 | render/vulkan: use same sampler params for RGBA and NV12 | Simon Ser | |
2023-05-24 | render/vulkan: use VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE for default sampler | Simon Ser | |
We don't actually need the REPEAT mode, and this makes things more consistent with the YCbCr sampler (which requires CLAMP_TO_EDGE for spec compliance). Also drop borderColor which is unused for this mode. | |||
2023-05-24 | render/vulkan: use identity swizzle for YCbCr formats | Simon Ser | |
Fixes the following validation error: [ VUID-VkImageViewCreateInfo-pNext-01970 ] Object 0: handle = 0x62e00003c400, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xf378e14b | vkCreateImageView(): If there is a VkSamplerYcbcrConversion, the imageView must be created with the identity swizzle. | |||
2023-05-24 | render/vulkan: fix VkPipelineLayout when texturing NV12 | Simon Ser | |
The default pipeline layout was always passed. However, for NV12 we need to pass a different one. | |||
2023-05-24 | render/vulkan: extract quad pipeline init to separate function | Simon Ser | |
Makes it clearer that all of these structs are for the quad pipeline. | |||
2023-05-24 | util/box: transform empty boxes' origins | Kirill Primak | |
Not a huge fan of this, but changing this behavior would be a breaking change to a stable API. Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3650 | |||
2023-05-23 | render/vulkan: fix YCbCr format check in vulkan_texture_from_pixels() | Simon Ser | |
2023-05-23 | util/box: always treat NULL boxes as empty | Kirill Primak | |
2023-05-23 | util/box: simplify empty box case in wlr_box_intersection() | Kirill Primak | |
2023-05-23 | wlr_{box, fbox}_equal: Consider empty boxes NULL | Alexander Orzechowski | |
2023-05-23 | wlr_{box, fbox}_equal: Handle NULL | Alexander Orzechowski | |
2023-05-22 | render/vulkan: drop unnecessary comments | Simon Ser | |
Some comments in here are noise. | |||
2023-05-21 | render/pixel-format: add YVYU and VYUY | Simon Ser | |
2023-05-21 | render/pixel-format: add support for block-based formats | Simon Ser | |
Some formats like sub-sampled YCbCr use a block of bytes to store the color values for more than one pixel. Update our format table to be able to handle such formats. |