Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							c7259f3a5b 
							
						 
					 
					
						
						
							
							vulkan: remove beta extensions guard for encode operations  
						
						... 
						
						
						
						This is not needed anymore since encoder operations are not beta anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7179 > 
						
						
					 
					
						2024-07-16 15:08:39 +00:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							0f8f2d0057 
							
						 
					 
					
						
						
							
							vkformat: add gst_vulkan_format_get_map function  
						
						... 
						
						
						
						This will be used later to compare the format selected by
gst_vulkan_format_from_video_info_2(), to verify if it's multiple memory buffer
or not.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6798 > 
						
						
					 
					
						2024-07-11 20:28:04 +02:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							b1eebec485 
							
						 
					 
					
						
						
							
							vkformat: unward G8_B8R8_2PLANE_420_UNORM  
						
						... 
						
						
						
						Since it exists since VK_VERSION_1_1. It should be ignored by usage flags or the
no_multiplane parameter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6798 > 
						
						
					 
					
						2024-07-11 10:52:19 +02:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							e913b4870a 
							
						 
					 
					
						
						
							
							vkformat: try UNORM format first and decouple them from colorimetry  
						
						... 
						
						
						
						From the spec (chapter 34, v1.3.283):
````
UNORM: the components are unsigned normalized values in the range [0, 1]
SRGB: the R, G and B components are unsigned normalized value that represent
      values using sRGB nonlinear encoding, while the A component (if one
      exists) is a regular unsigned normalized value
```
The difference is the storage encoding, the first one is aimed for image
transfers, while the second is for shaders, mostly in the swapchain stage in the
pipeline, and it's done automatically if needed [1].
As far as I have checked, other frameworks (FFmpeg, GTK+), when import or export
images from/to Vulkan, use exclusively UNORM formats, while SRGB formats are
ignored.
My conclusion is that Vulkan formats are related on how bits are stored in
memory rather their transfer functions (colorimetry).
This patch does two interrelated changes:
1. It swaps certain color format maps to try first, in both
gst_vulkan_format_from_video_info() and gst_vulkan_format_from_video_info_2(),
the UNORM formats, when comparing its usage, and later check for SRGB.
2. It removes the code that check for colorimetry in
gst_vulkan_format_from_video_info_2(), since it not storage related.
1. https://community.khronos.org/t/noob-difference-between-unorm-and-srgb/106132/7 
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6797 > 
						
						
					 
					
						2024-05-23 17:41:30 +00:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							c760c72f7a 
							
						 
					 
					
						
						
							
							vkformat: fetch correctly feature flags2  
						
						... 
						
						
						
						Feature flags2 are fetch through VkFormatProperties3KHR and needs more guards
checking.
Moved out all the feature flags fetching to another function for clarity.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6014 > 
						
						
					 
					
						2024-01-30 12:57:41 +00:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							c24b47ecee 
							
						 
					 
					
						
						
							
							vkformat: use VK_KHR_get_physical_device_properties2 to guard  
						
						... 
						
						
						
						and VK_KHR_format_feature_flags2 rather than a meaningless version handling.
Also the patch brings back the usage of features2 for video extensions, use KHR
version to support the guarded symbols.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6014 > 
						
						
					 
					
						2024-01-30 12:57:41 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							f50b43c83b 
							
						 
					 
					
						
						
							
							vulkan/format: also get features in the fallback case  
						
						... 
						
						
						
						Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5576 > 
						
						
					 
					
						2024-01-24 13:54:41 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							634fc913a6 
							
						 
					 
					
						
						
							
							vulkan/format: don't assign an uneeded boolean  
						
						... 
						
						
						
						We don't actually need the basics_primary/secondary boolean.  The
returned format is decided by the requested usage with fallbacks as
necessary.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5576 > 
						
						
					 
					
						2024-01-24 13:54:41 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							420548a6c6 
							
						 
					 
					
						
						
							
							vulkan/format: there is no current need to use the 64-bit feature flags  
						
						... 
						
						
						
						All of our feature flags are currently covered by the first
VkFormatFeatureFlag enum so far.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5576 > 
						
						
					 
					
						2024-01-24 13:54:41 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							080b25cbfe 
							
						 
					 
					
						
						
							
							vulkan/format: correct fallback features in from_video_info_2  
						
						... 
						
						
						
						The features were not actually used and were written into a boolean
value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5576 > 
						
						
					 
					
						2024-01-24 13:54:41 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							d20d94cc48 
							
						 
					 
					
						
						
							
							vkformat: also use the correct srgb vs unorm when using older  
						
						... 
						
						
						
						gst_video_info_from_video_info()
Fixes sRGB colorspace chosen by GstVulkanSwapper and therefore used for
display.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5316 > 
						
						
					 
					
						2023-10-27 09:13:18 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							9d79852890 
							
						 
					 
					
						
						
							
							vkformat: assume that unknown rgb transfer is sRGB  
						
						... 
						
						
						
						Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 > 
						
						
					 
					
						2023-09-08 16:09:33 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							b82a402bf1 
							
						 
					 
					
						
						
							
							vkformat: also check configured usage flags  
						
						... 
						
						
						
						This does also mean that if the primary format fails this check, we need
to try the secondary format before returning an error
Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2957 
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 > 
						
						
					 
					
						2023-09-08 16:09:33 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							4d3b03e8e8 
							
						 
					 
					
						
						
							
							vkformat: invert srgb and multiplane && planes > 1 checks  
						
						... 
						
						
						
						The primary format for RGB includes sRGB transfer but was not actually
being used.
The !(no_multiplane && planes > 1) check for YUV resulted in those
formats never being used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 > 
						
						
					 
					
						2023-09-08 16:09:33 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							8a9d630e3b 
							
						 
					 
					
						
						
							
							vkformat: FORMAT_FEATURE_COLOR_ATTACHMENT also includes INPUT_ATTACHMENT  
						
						... 
						
						
						
						Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 > 
						
						
					 
					
						2023-09-08 16:09:33 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							6c534655d4 
							
						 
					 
					
						
						
							
							vkformat: reorder RGBA formats before RGBx formats  
						
						... 
						
						
						
						Fixes gst_vulkan_format_to_video_format to use the RGBA formats instead
of RGBx formats.
Fixes vulkansink exposing a RGBx/BGRx format instead of the more
relevant RGBA/BGRA formats
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5288 > 
						
						
					 
					
						2023-09-08 16:09:33 +00:00 
						 
				 
			
				
					
						
							
							
								Stéphane Cerveau 
							
						 
					 
					
						
						
						
						
							
						
						
							6920166af4 
							
						 
					 
					
						
						
							
							vulkan: fix C2099 error with VS2019  
						
						... 
						
						
						
						As VK_FORMAT_FEATURE_2_xxx are defined as static const variable, the
vscoce C compiler prevents the initialization of the  vk_usage_map
structure with error "C2099: initializer is not a constant".
Init the structure separately.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4904 > 
						
						
					 
					
						2023-06-22 04:42:58 +00:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							06d793033d 
							
						 
					 
					
						
						
							
							vulkan/format: use basic features (v1) as fallback  
						
						... 
						
						
						
						if vkGetPhysicalDeviceFormatProperties2 isn't available.
This approach assumes that, for basic features flags symbols,
VkFormatFeatureFlagBits and VkFormatFeatureFlagBits2 are binary equivalent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4746 > 
						
						
					 
					
						2023-06-01 13:58:47 +00:00 
						 
				 
			
				
					
						
							
							
								Matthew Waters 
							
						 
					 
					
						
						
						
						
							
						
						
							0a74a967e3 
							
						 
					 
					
						
						
							
							vulkan/format: don't rely on vulkan header version for function availability  
						
						... 
						
						
						
						e.g. android will have update vulkan.h headers but old platforms will
not contain the function and will result in a link error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4746 > 
						
						
					 
					
						2023-06-01 13:58:47 +00:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							d7bbcffe14 
							
						 
					 
					
						
						
							
							vkformat: add VK_FORMAT_G8_B8R8_2PLANE_420_UNORM  
						
						... 
						
						
						
						Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 > 
						
						
					 
					
						2023-05-19 04:26:29 +00:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							d84926b60f 
							
						 
					 
					
						
						
							
							vkformat: add gst_vulkan_format_to_video_format()  
						
						... 
						
						
						
						Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 > 
						
						
					 
					
						2023-05-19 04:26:29 +00:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							b8e908131d 
							
						 
					 
					
						
						
							
							vkformat: add gst_vulkan_format_get_aspect()  
						
						... 
						
						
						
						Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 > 
						
						
					 
					
						2023-05-19 04:26:29 +00:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							35dbd9f92c 
							
						 
					 
					
						
						
							
							vkformat: add gst_vulkan_format_from_video_info_2()  
						
						... 
						
						
						
						The purpose of this function is to get more info about the mapped Vulkan format
from the GStreamer format, since they can be multiple Vulkan formats for one
GStreamer format.
Also a Vulkan format may have certain usage and aspects that must be verified.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 > 
						
						
					 
					
						2023-05-19 04:26:29 +00:00 
						 
				 
			
				
					
						
							
							
								Víctor Manuel Jáquez Leal 
							
						 
					 
					
						
						
						
						
							
						
						
							14dd6aac16 
							
						 
					 
					
						
						
							
							vkformat: move gst_vulkan_format_from_video_info()  
						
						... 
						
						
						
						Moved gst_vulkan_format_from_video_info() from gstvkimagememory to gstvkformat
in order to centralize the video format operations in a single source file.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4351 > 
						
						
					 
					
						2023-05-19 04:26:29 +00:00 
						 
				 
			
				
					
						
							
							
								Sebastian Dröge 
							
						 
					 
					
						
						
						
						
							
						
						
							2f0e195709 
							
						 
					 
					
						
						
							
							vulkan: Add/fix various annotations  
						
						... 
						
						
						
						And fix a memory leak in gst_vulkan_display_wayland_new() in error
cases.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3194 > 
						
						
					 
					
						2022-10-18 13:51:17 +03:00 
						 
				 
			
				
					
						
							
							
								Thibault Saunier 
							
						 
					 
					
						
						
						
						
							
						
						
							019971a3c7 
							
						 
					 
					
						
						
							
							Move files from gst-plugins-bad into  the "subprojects/gst-plugins-bad/" subdir  
						
						
						
						
					 
					
						2021-09-24 16:14:36 -03:00