Manuel Stoeckl
ffdbfdbbbd
render/vulkan: add support for output color transforms
7 months ago
Manuel Stoeckl
e443434876
render/vulkan: create plain framebuffers on demand
...
This change makes it possible to support both the direct srgb-format
pipeline and indirect (color-managed, or non-srgb-format) pipeline
for the same render buffer.
7 months ago
Manuel Stoeckl
adbfd3c321
render/vulkan: add lut3d output shader option
...
While a corresponding pipeline is created, it is not yet used.
7 months ago
Manuel Stoeckl
c64144a39b
render/vulkan: add dummy 3d lookup table to output shader
...
Later commits will add shader options that use a real 3d
lookup table.
7 months ago
John Lindgren
b1b34cd665
vulkan: perform sRGB-to-linear conversion correctly for premultiplied values
...
Pre-multipled sRGB values need to be un-multiplied before conversion
to linear and then re-multiplied after. Compare shaders/texture.frag.
This fixes an issue in labwc where titlebar corners (rendered as
ARGB textures) did not match the rest of the titlebar (rendered as
a solid wlr_scene_rect).
Note: 0.17 has other instances in render/vulkan/renderer.c that need
the same fix.
8 months ago
Kirill Primak
3eb89e5325
render/vulkan: fix possible double free
10 months ago
Manuel Stoeckl
e0adaaffb6
render/vulkan: constrain blend to output subpass to redrawn region
...
This commit only applies to the render pass API.
1 year ago
Alexander Orzechowski
1b0694b794
treewide: Migrate from sizeof(struct) to sizeof(*pointer) where practical
1 year ago
Alexander Orzechowski
e9706e62f5
renderer: Use wlr_render_rect_options_get_box
...
Fixes : #3697
1 year ago
Alexander Orzechowski
5f6912595e
renderer/vulkan: Defer device lost signal until end of pass
...
If the compositor were to try to handle a GPU reset within the lost
signal (by recreating the renderer) we should avoid referencing renderer
resources after the lost signal. This prevents use after free for such
compositors.
1 year ago
Alexander Orzechowski
2044cc2311
render: Introduce wlr_render_texture_options.blend_mode
1 year ago
Alexander Orzechowski
6bd44c4fcd
renderer: Introduce wlr_scale_filter_mode
1 year ago
Alexander Orzechowski
3ee0f52e09
render/vulkan: Dynamically create texture views
...
Now that we are dynamically creating pipeline layouts, we need separate
texture views for each pipeline layout we choose to use with a texture.
1 year ago
Alexander Orzechowski
8a387b5558
render/vulkan: Dynamically create pipeline layouts
...
These will happen lazily when pipelines get created.
1 year ago
Alexander Orzechowski
9d31372930
render/vulkan: Handle quad pipeline through generic pipeline path
1 year ago
Alexander Orzechowski
97fdd57eb2
render/vulkan: Dynamically handle pipeline creation for textures
...
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.
1 year ago
Simon Ser
30616bcf0c
render/vulkan: reset scissor before post-blend subpass
...
Otherwise only the last command's area will be copied over.
1 year ago
Simon Ser
150a88bd03
render/vulkan: fix blend subpass matrix
...
renderer->render_{width,height} are unused with the render pass
API.
1 year ago
Simon Ser
fd9e4b860f
render/vulkan: fix bound pipeline check for output_pipe
...
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
1 year ago
Simon Ser
beb820b573
render/vulkan: improve error handling in vulkan_begin_render_pass()
...
Release the command buffer if we end up not submitting it.
2 years ago
Simon Ser
0ba3ea3bcd
render/vulkan: improve error handling in render_pass_submit()
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3644
2 years ago
Simon Ser
e07c77f846
render/vulkan: implement render pass API
2 years ago