Georg Lehmann
a9654d6cfb
rendervulkan: Only create useful pipelines.
2022-01-31 17:09:10 +00:00
Georg Lehmann
bf55e08712
rendervulkan: Remove swap channels pipeline variant.
2022-01-26 13:06:30 +00:00
Georg Lehmann
4f0f0065ad
rendervulkan: Remove swap channels.
...
Unused since 76292f01cb
, partially broken and
unnecessary because we should be able to always use the correct VkFormat.
2022-01-26 13:06:30 +00:00
Joshua Ashton
10943045ff
rendervulkan: Support modifiers on SRGB images
2022-01-25 05:13:20 +00:00
Georg Lehmann
5bfc27576d
build: preparations for more shaders
2022-01-23 05:10:41 +00:00
Georg Lehmann
edb77e2490
rendervulkan: Add missing barriers in vulkan_create_texture_from_bits.
2022-01-20 07:37:20 +00:00
Georg Lehmann
eff99fdf81
rendervulkan: Add acquire and release barriers for imported images.
2022-01-20 07:37:20 +00:00
Georg Lehmann
10ba9f3908
rendervulkan: Fix WAW hazard for screenshot image.
2022-01-20 07:37:20 +00:00
Georg Lehmann
ca09577632
rendervulkan: Stop using unnormalized ycbcr samplers.
...
This is not allowed for ycbcr samplers.
2022-01-20 07:37:20 +00:00
Georg Lehmann
73025b24e2
rendervulkan: Avoid writing rgb descriptors for ycbcr images.
2022-01-20 07:37:20 +00:00
Georg Lehmann
1bb24ded57
rendervulkan: Remove empty texture.
2022-01-20 07:37:20 +00:00
Georg Lehmann
dcc290725a
rendervulkan: Enable NULL descriptor feature.
2022-01-20 07:37:20 +00:00
Georg Lehmann
7d6ad29757
rendervulkan: Enable samplerYcbcrConversion.
2022-01-20 07:37:20 +00:00
Georg Lehmann
ca2c770d64
rendervulkan: Always account for push frameid even if it's unused.
2022-01-20 07:37:20 +00:00
Georg Lehmann
95d25290d3
rendervulkan: Switch to GL_ARB_shader_clock and enable shaderSubgroupClock.
...
shaderSubgroupClock is better supported than shaderDeviceClock (e.g. anv
and before radv < gfx8).
2022-01-20 07:37:20 +00:00
Georg Lehmann
e1397a26e3
rendervulkan: Transition present image to general before compositing.
2022-01-20 07:37:20 +00:00
Georg Lehmann
96fb7aeed0
rendervulkan: Transition present image to PRESENT_SRC in nested mode.
2022-01-20 07:37:20 +00:00
Georg Lehmann
2c5dae8439
rendervulkan: Wait for fence after acquire next image.
2022-01-20 07:37:20 +00:00
Georg Lehmann
78482d3f08
rendervulkan: Remove dead fence code.
...
This was already commented out when it was added 2 years ago, and it doesn't
seem useful.
2022-01-11 15:35:20 +01:00
Georg Lehmann
7c94fc3437
rendervulkan: Compact descriptor set bindings.
2022-01-05 05:02:10 +00:00
Georg Lehmann
7c5cc5e67e
rendervulkan: Rework sampler cache.
...
Less awkward to use and also fixes a texture leak because the shared_ptr
to the texture is no longer stored in the sampler cache.
2022-01-05 05:00:46 +00:00
Joshua Ashton
589fd61d58
rendervulkan: Refactor to use shared_ptr for VulkanTexture_t
2021-12-17 15:43:26 -08:00
Joshua Ashton
0e7ef385d5
steamcompmgr: Move commit refs to shared_ptr
...
This is the right thing to do given a vulkanTexture could refer to muliple commits.
2021-12-17 15:43:26 -08:00
Joshua Ashton
ec92dc75e5
rendervulkan: Fix release barrier
...
Need to use our queueFamilyIndex as the src.
2021-12-17 11:58:06 +01:00
Joshua Ashton
ced63bf255
rendervulkan: Clean up some stuff dependent on k_nMaxSamplers
2021-12-15 22:37:50 -08:00
Joshua Ashton
023948e22d
rendervulkan: Fix dangling YCbCr descriptors
2021-12-15 21:29:16 -08:00
Pierre-Loup A. Griffais
11a3bfb199
rendervulkan: change default YUV mode to limited color range
...
That's what Remote Play uses, we can add metadata to pick eventually but that'll
work for now.
2021-12-15 16:45:03 -08:00
Joshua Ashton
296a3d498d
steamcompmgr: Add framework for held commits
2021-12-13 23:47:29 -08:00
Joshua Ashton
23430084e2
rendervulkan: Blend in linear space
...
We must blend in linear space, not SRGB space or we get these horrible browns.
Gets us closer to how this looks with planes.
2021-11-22 21:48:58 -08:00
Bas Nieuwenhuizen
c0d745baac
Use atomics for CVulkanTexture refcounts.
...
Otherwise the double access on destruction could be very messy. The
default for all these operations is the cst memory order which is
certainly good enough though technically not the most optimal.
(Could do acq_rel for all of them).
2021-11-22 21:45:52 -08:00
Bas Nieuwenhuizen
3a1776f0f8
Properly lock the id->CVulkanTexture map.
...
Only locks the map itself, the lifetime of the texture itself has
still to be known to be valid.
2021-11-22 21:45:52 -08:00
Joshua Ashton
dbdf1095f8
rendervulkan: Add --composite-debug
...
Adds a --composite-debug flag for displaying frame markers on alternating corners of the screen or rotating in a localized square when compositing.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-11-22 21:40:10 -08:00
Simon Ser
e80e4393de
Add CVulkanTexture::{m_width,m_height}
2021-11-01 09:56:08 +01:00
Simon Ser
49fb59ac56
Don't use std::unique_ptr for screenshot textures
...
We need to keep the screneshot textures around if they are still
ref'ed when we re-make the swapchain. std::unique_ptr makes this
impossible. Switch to std::shared_ptr, and get rid of the nLockRefs
field.
2021-11-01 09:44:51 +01:00
Joshua Ashton
0aa6761157
Introduce screenshot saving thread
...
Fixes hangs/stutters when taking screenshots.
Should be trivial to extend to pipewire too.
2021-10-29 13:13:23 +02:00
Simon Ser
21b263768f
rendervulkan: order formats with alpha first
...
This allows the cursor to be exported as an ARGB8888 buffer suitable
for the cursor plane.
2021-09-29 19:02:18 +02:00
Joshua Ashton
50f695591d
rendervulkan: Force nearest filtering for non-scaled and integer offset things
...
No reason to do linear filtering otherwise.
2021-09-15 10:58:38 -07:00
Joshua Ashton
320a23220a
rendervulkan: Sample at texel centers
...
I missed adding this back in when I did the PR that was meant to fix this when I was debugging... Oops.
2021-09-15 10:58:38 -07:00
Simon Ser
a480fe81fe
Drop VulkanRenderer_t.parent
...
We don't need the wlroots parent GLES2 renderer anymore.
2021-09-15 13:35:42 +02:00
Simon Ser
2772a17f22
Implement wlr_renderer_impl.get_drm_fd
...
This depends on VK_EXT_physical_device_drm.
2021-09-15 13:35:42 +02:00
Simon Ser
0bbecd7e90
Extract fence from Vulkan texture if buffer is shm
2021-09-15 13:35:42 +02:00
Simon Ser
118d8213e4
rendervulkan: implement wlr_renderer_impl.texture_from_buffer
2021-09-15 13:35:42 +02:00
Simon Ser
db1ffbe2e4
rendervulkan: remove wlr_renderer_impl.init_wl_display
...
We don't need EGL_bind_wayland_display anymore.
2021-09-15 13:35:42 +02:00
Simon Ser
6fbabb94b3
rendervulkan: build list of supported wl_shm formats
2021-09-15 13:35:42 +02:00
Simon Ser
a325cf193b
Use wlroots' wl_drm implementation
...
wl_drm is not available on Vulkan.
References: https://github.com/swaywm/wlroots/pull/2708
2021-09-15 13:35:42 +02:00
Simon Ser
123df9006f
rendervulkan: implement wlr_renderer_impl.get_render_buffer_caps
2021-09-15 13:35:42 +02:00
Simon Ser
d13d19981b
rendervulkan: drop wlr_renderer_impl.render_ellipse_with_matrix stub
...
This has been removed from wlroots upstream.
2021-09-15 13:35:42 +02:00
Bas Nieuwenhuizen
83eae082fa
Warning fix
2021-09-14 17:29:51 -07:00
Bas Nieuwenhuizen
e510af1b7e
Add a proper release barrier for modifier based images when not nested.
...
RADV does retiling in that barrier. Still hinky overall but this fixes
using compositing with DCC compressed images on RADV.
2021-09-14 17:22:07 -07:00
Joshua Ashton
ce87bf1b76
Init format info after initializing DRM
...
Otherwise all our modifiers/formats and stuff are garbage.
Fixes : #269
2021-09-14 17:01:42 -07:00