aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-06-02cursor: unset wlr_output_cursor.texture on surface destroySimon 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-02cursor: ignore wlr_cursor_set_surface() with same surfaceSimon Ser
Avoids damaging the output and rendering the cursor again if it hasn't changed.
2023-06-02xwm: introduce associate/dissociate eventsKirill 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-02Revert "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-01render/vulkan: improve error handling in vulkan_begin_render_pass()Simon Ser
Release the command buffer if we end up not submitting it.
2023-06-01render/vulkan: improve error handling in render_pass_submit()Simon Ser
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644
2023-05-31backend/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-31render/vulkan: handle vulkan_record_stage_cb() failuresSimon Ser
2023-05-31backend/drm: move forward decl up for drmModeModeInfoSimon Ser
This allows doc generators to properly associate the doc comment with the function instead of the typedef.
2023-05-30output/cursor: use new rendering APISimon Ser
2023-05-30examples: convert to new rendering APISimon Ser
Left out multi-pointer (will be removed) and quads (requires arbitrary rotation).
2023-05-30backend/drm: use new rendering APISimon Ser
2023-05-30output: add wlr_output_begin_render_pass()Simon Ser
2023-05-30wlr_scene: Introduce wlr_scene_buffer_set_opacityAlexander Orzechowski
2023-05-30wlr_scene: Make scene_rect_from_node publicAlexander 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-30wlr_scene: Make scene_tree_from_node publicAlexander 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-30wlr_scene: Add documentation to wlr_scene_buffer_from_nodeAlexander Orzechowski
2023-05-30render/vulkan: implement render pass APISimon Ser
2023-05-28renderer/gles2: Implement render pass interfaceAlexander Orzechowski
2023-05-28renderer/gles2: Compute texture coordinates based off of vertex positionsAlexander Orzechowski
2023-05-28renderer/gles2: Merge get_buffer and create_bufferAlexander Orzechowski
2023-05-28renderer/gles2: Interpret matrix as column major in shaderAlexander Orzechowski
Avoids us needing to transpose.
2023-05-28render/vulkan: add 10, 12, and 16-bit YCbCr formatsSimon Ser
2023-05-26output: use pending render format if anySimon 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-26render/vulkan: document TEXTURE_TRANSFORM_* in shaderSimon Ser
2023-05-26render/vulkan: drop unused vulkan_has_extension()Simon Ser
2023-05-26render/vulkan: drop unused vulkan_change_layout_queue()Simon Ser
2023-05-24render/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-24render/vulkan: de-dup pipeline layout initializationSimon Ser
2023-05-24render/vulkan: add more YCbCr formatsSimon 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-24render/vulkan: require support for linear filter for YCbCrSimon Ser
YCBCR_CONVERSION_LINEAR_FILTER is not enough: this one only covers chromaFilter. For magFilter/minFilter we need FILTER_LINEAR as well.
2023-05-24render/vulkan: check format support before creating YCbCr samplerSimon Ser
We need to check whether the format supports dma_tex_ycbcr_features before creating the YCbCr sampler.
2023-05-24render/vulkan: generalize YCbCr format supportSimon Ser
2023-05-24render/vulkan: add init_{default,ycbcr}_pipeline_layout()Simon Ser
2023-05-24render/vulkan: add vulkan_get_pipeline_layout()Simon Ser
Will make it easier to add more pipeline layouts for other YCbCr formats.
2023-05-24render/vulkan: introduce struct wlr_vk_pipeline_layoutSimon Ser
This will make it easier to create one pipeline layout (plus related objects) per YCbCr format.
2023-05-24render/vulkan: use same sampler params for RGBA and NV12Simon Ser
2023-05-24render/vulkan: use VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE for default samplerSimon 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-24render/vulkan: use identity swizzle for YCbCr formatsSimon 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-24render/vulkan: fix VkPipelineLayout when texturing NV12Simon Ser
The default pipeline layout was always passed. However, for NV12 we need to pass a different one.
2023-05-24render/vulkan: extract quad pipeline init to separate functionSimon Ser
Makes it clearer that all of these structs are for the quad pipeline.
2023-05-24util/box: transform empty boxes' originsKirill 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-23render/vulkan: fix YCbCr format check in vulkan_texture_from_pixels()Simon Ser
2023-05-23util/box: always treat NULL boxes as emptyKirill Primak
2023-05-23util/box: simplify empty box case in wlr_box_intersection()Kirill Primak
2023-05-23wlr_{box, fbox}_equal: Consider empty boxes NULLAlexander Orzechowski
2023-05-23wlr_{box, fbox}_equal: Handle NULLAlexander Orzechowski
2023-05-22render/vulkan: drop unnecessary commentsSimon Ser
Some comments in here are noise.
2023-05-21render/pixel-format: add YVYU and VYUYSimon Ser
2023-05-21render/pixel-format: add support for block-based formatsSimon 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.