Browse Source

linux-pipewire: Check format availablity against DRM only for dmabufs

Whe using a software renderer there will be no formats available for
using with dmabufs. We should only consider those formats wrt. to
modifiers and as such move this check after adding general support for
that format.

fixes #7985
columbarius 2 years ago
parent
commit
d8b7906954
1 changed files with 3 additions and 5 deletions
  1. 3 5
      plugins/linux-pipewire/pipewire.c

+ 3 - 5
plugins/linux-pipewire/pipewire.c

@@ -359,16 +359,14 @@ static void init_format_info(obs_pipewire_data *obs_pw)
 	for (size_t i = 0; i < N_SUPPORTED_FORMATS; i++) {
 	for (size_t i = 0; i < N_SUPPORTED_FORMATS; i++) {
 		struct format_info *info;
 		struct format_info *info;
 
 
-		if (!drm_format_available(supported_formats[i].drm_format,
-					  drm_formats, n_drm_formats))
-			continue;
-
 		info = da_push_back_new(obs_pw->format_info);
 		info = da_push_back_new(obs_pw->format_info);
 		da_init(info->modifiers);
 		da_init(info->modifiers);
 		info->spa_format = supported_formats[i].spa_format;
 		info->spa_format = supported_formats[i].spa_format;
 		info->drm_format = supported_formats[i].drm_format;
 		info->drm_format = supported_formats[i].drm_format;
 
 
-		if (!capabilities_queried)
+		if (!capabilities_queried ||
+		    !drm_format_available(supported_formats[i].drm_format,
+					  drm_formats, n_drm_formats))
 			continue;
 			continue;
 
 
 		size_t n_modifiers;
 		size_t n_modifiers;