Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-07-11 | Use wl_container_of() instead of casts | Simon Ser | |
This slightly improves type safety. The culprits were found with: git grep -E '\([a-z0-9_ ]+ \*\)\W?[a-z]' | |||
2023-07-11 | render/gles2: drop unnecessary cast | Simon Ser | |
We can just refer to the struct field here. | |||
2023-07-07 | Use struct initializers instead of memset() | Simon Ser | |
This is a bit more type-safe. | |||
2023-06-21 | render/vulkan: Don't compute texture.has_alpha until first... | Alexander Orzechowski | |
...texture view is dynamically created | |||
2023-06-19 | render/vulkan: Initialize to fix compilation error | Alexander Orzechowski | |
2023-06-19 | allocator: only use DRM auth if we are master | Simon Ser | |
Legacy DRM auth will only work if we are DRM master. Keep using an unauthenticated DRM FD if we are not DRM master. This should be enough for GBM. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3674 | |||
2023-06-19 | render: Introduce wlr_render_texture_options.blend_mode | Alexander Orzechowski | |
2023-06-19 | pixman: Remove dead code | Alexander Orzechowski | |
2023-06-19 | renderer: Introduce wlr_scale_filter_mode | Alexander Orzechowski | |
2023-06-17 | render/vulkan: Dynamically create texture views | Alexander 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-17 | render/vulkan: Inline init_sampler | Alexander Orzechowski | |
2023-06-17 | render/vulkan: Dynamically create pipeline layouts | Alexander Orzechowski | |
These will happen lazily when pipelines get created. | |||
2023-06-16 | render/vulkan/pipeline_key: Add blending | Alexander 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-16 | render/vulkan: Handle quad pipeline through generic pipeline path | Alexander Orzechowski | |
2023-06-16 | render/vulkan: Dynamically handle pipeline creation for textures | Alexander 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-12 | render/vulkan: rename tex_usage to shm_tex_usage | Simon Ser | |
Same motivation as fdb199a43c44 ("render/vulkan: rename tex_features to shm_tex_features"). | |||
2023-06-07 | render/vulkan: reset scissor before post-blend subpass | Simon Ser | |
Otherwise only the last command's area will be copied over. | |||
2023-06-07 | render/vulkan: fix blend subpass matrix | Simon Ser | |
renderer->render_{width,height} are unused with the render pass API. | |||
2023-06-07 | render/vulkan: fix bound pipeline check for output_pipe | Simon Ser | |
renderer->bound_pipe is legacy, pass->bound_pipeline is used for the render pass API code-path. Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3657 | |||
2023-06-07 | render/vulkan: require format info for shm | Simon Ser | |
We use the format info to check the stride and need it to perform the texture upload. | |||
2023-06-07 | render/vulkan: de-duplicate texture VkImageView init | Simon Ser | |
The logic is the same for both shm and DMA-BUF. | |||
2023-06-07 | render/vulkan: split off YCbCr texture features | Simon Ser | |
Avoids repeating the common bits between dma_tex_features and dma_tex_ycbcr_features, and we will need just the YCbCr-related flags for shm YCbCr support soon. | |||
2023-06-07 | render/vulkan: rename tex_features to shm_tex_features | Simon Ser | |
These features are required for shm only: the TRANSFER stuff is for texture upload. We don't need these for DMA-BUFs. Make this clearer by changing the name. Also re-order the definitions to group all texture-related features together. | |||
2023-06-06 | render/gles2: Handle NULL timer | Alexander Orzechowski | |
2023-06-06 | renderer: Don't pass NULL options | Alexander Orzechowski | |
2023-06-05 | render/gles2: implement timer API | Rose Hudson | |
2023-06-05 | add render timer API | Rose Hudson | |
Based on five calls: wlr_render_timer_create - creates a timer which can be reused across frames on the same renderer wlr_renderer_begin_buffer_pass - now takes a timer so that backends can record when the rendering starts and finishes wlr_render_timer_get_time - should be called as late as possible so that queries can make their way back from the GPU wlr_render_timer_destroy - self-explanatory The timer is exposed as an opaque `struct wlr_render_timer` so that backends can store whatever they want in there. | |||
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 | render/vulkan: handle vulkan_record_stage_cb() failures | Simon Ser | |
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 | 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. |