aboutsummaryrefslogtreecommitdiff
path: root/include/render
AgeCommit message (Collapse)Author
2024-02-02allocator: remove backend parameter in allocator_autocreate_with_drm_fdAustin Shafer
Since we only use the backend capabilities here we can simply pass them in directly. This allows other locations to create an allocator even if they don't have a backend. They can simply specify the caps they want instead.
2024-01-31render/pixel-format: Move has_alpha into it's own arrayLeo Li
Some opaque pixel formats (nv12, p010) require per-plane bytes_per_block info. However, it doesn't make sense to store them in wlr_pixel_format_info, as they will never be useful (currently, this info is used for shm, which doesn't have a concept of multi-planar buffers.) Let's define a separate array and function for determining whether a pixel format has alpha.
2023-12-04render/vulkan: use _SRGB image view when possibleManuel Stoeckl
This is the last of a set of commits which ensures that both textures and render buffers can be accessed through _UNORM and _SRGB image views. While _UNORM image views are not yet used for 8-bpc image formats, they will be needed in the future to support color transforms for both textures and render buffers.
2023-12-04render/vulkan: constify vulkan_format_props_find_modifierManuel Stoeckl
2023-12-04render/vulkan: detect which _UNORM formats support _SRGB viewsManuel Stoeckl
2023-12-04render/vulkan: track and use _UNORM variants of _SRGB formatsManuel Stoeckl
Later commits will start using _SRGB image views again, where appropriate.
2023-11-30renderer: Drop buffer bindingAlexander Orzechowski
2023-11-30render/vulkan: Implement texture_read_pixelsAlexander Orzechowski
2023-11-30render/gles2: Implement texture_read_pixelsAlexander Orzechowski
Also get rid of gles2_texture.owns_texture. We only use the tex/fbo
2023-11-30render/gles2: save/restore context when creating/submitting a render passSimon Ser
This is useful for e.g. lazily blitting a texture for readback purposes while rendering.
2023-11-30render/gles2: reword wlr_gles2_texture commentsSimon Ser
These comments were a bit misleading: - "GL_TEXTURE_2D == mutable": not really, imported non-external-only DMA-BUFs would also use this target, but are not mutable. - "Only affects target == GL_TEXTURE_2D": same here. - "If imported from a wlr_buffer": not really, would be NULL if imported from a shm wlr_buffer. Adjust these comments to better reflect reality and adjust the check in gles2_texture_update_from_buffer().
2023-11-30render/gles2: Don't attach texture as buffer addonAlexander Orzechowski
Since wlr_gles2_buffer is now managing importing for us, there is no reason for us to continue doing this.
2023-11-30render/gles2: Don't track image in textureAlexander Orzechowski
We can get it from the buffer
2023-11-30render/gles2: Don't double import dmabufAlexander Orzechowski
We can double import a dmabuf if we use it as a texture target and a render target. Instead, let's unify render targets and texture dmabuf imports to use wlr_gles2_buffer which manages the EGLImageKHR
2023-11-30renderer/gles2: Bail rendering to external buffers when binding themAlexander Orzechowski
We can't do it while we're creating them because we'll want to use gles2 buffers for textures soon.
2023-11-30render/gles2: Lazily create buffer fboAlexander Orzechowski
2023-11-29render/gles2: Don't track has_alpha in pixel_formatAlexander Orzechowski
Why track the alpha here when we can already get that information elsewhere?
2023-11-28render/vulkan: drop current_command_bufferSimon Ser
This was used by the legacy rendering API. Since begin()/end() only need to set current_render_buffer and nothing else, we can drop all of these bits.
2023-11-22render: drop legacy render passSimon Ser
All built-in renderers now implement the new API.
2023-10-05render/vulkan: constrain blend to output subpass to redrawn regionManuel Stoeckl
This commit only applies to the render pass API.
2023-10-02docs: replace the less commonly used "::" with "."Kirill Primak
2023-09-09render/vulkan: de-duplicate VkImageUsageFlagsSimon Ser
The flags passed to vkCreateImage() must match the flags used when querying formats. Make this clearer by using the same variable.
2023-06-19renderer: Introduce wlr_scale_filter_modeAlexander Orzechowski
2023-06-17render/vulkan: Dynamically create texture viewsAlexander Orzechowski
Now that we are dynamically creating pipeline layouts, we need separate texture views for each pipeline layout we choose to use with a texture.
2023-06-17render/vulkan: Dynamically create pipeline layoutsAlexander Orzechowski
These will happen lazily when pipelines get created.
2023-06-16render/vulkan/pipeline_key: Add blendingAlexander Orzechowski
This will become necessary when we switch away from scissoring. For the time being, this cleans things up a bit and allows for a trivial blending implementation for textures when that comes.
2023-06-16render/vulkan: Handle quad pipeline through generic pipeline pathAlexander Orzechowski
2023-06-16render/vulkan: Dynamically handle pipeline creation for texturesAlexander Orzechowski
If we ever wanted to handle dynamic state that requires new pipelines such as using different texture filters those can be added here with more ease.
2023-06-05render/gles2: implement timer APIRose Hudson
2023-06-01render/vulkan: improve error handling in render_pass_submit()Simon Ser
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644
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-26render/vulkan: drop unused vulkan_has_extension()Simon Ser
2023-05-26render/vulkan: drop unused vulkan_change_layout_queue()Simon Ser
2023-05-24render/vulkan: generalize YCbCr format supportSimon 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-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.
2023-05-21render/pixel-format: add docsSimon Ser
2023-05-12render/vulkan: allow rendering to non-8-bit buffersManuel Stoeckl
This is implemented by a two-subpass rendering scheme; the first subpass draws (and blends) onto a linear R16G16B16A16_SFLOAT buffer, while the second subpass performs linear->srgb conversion, writing onto the actual output buffer.
2023-05-11wlr_drm_format: Rework wlr_drm_format_intersectAlexander Orzechowski
Now it takes a reference to a destination format
2023-05-11wlr_drm_format: Change wlr_drm_format_dup to copyAlexander Orzechowski
2023-05-11wlr_drm_format: Change wlr_drm_format_create to initAlexander Orzechowski
2023-05-11wlr_drm_format: Don't take double pointer in wlr_drm_format_addAlexander Orzechowski
2023-05-04render/vulkan: add support for NV12Simon Ser
2023-04-28render/vulkan: use VK_KHR_synchronization2Simon Ser
This simplifies the vkQueueSubmit call, removing the need to pass timeline semaphore point values as separate arrays.
2023-04-25render/pixman: implement render pass APISimon Ser
2023-04-25render/pixman: add begin_pixman_data_ptr_access()Simon Ser
This logic is used twice.
2023-04-25render/pass: add legacy render pass implementationSimon Ser
Add a render pass implementation which leverages the legacy rendering API. This is helpful during the migration.