mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	render/vulkan: drop "_format" in wlr_vk_format fields
"format" is already in the name, no need to repeat ourselves. `format->vk_format` sounds a bit redundant.
This commit is contained in:
		
							parent
							
								
									c8eb24d30e
								
							
						
					
					
						commit
						8b9a48c984
					
				
					 4 changed files with 32 additions and 36 deletions
				
			
		| 
						 | 
					@ -79,8 +79,8 @@ int vulkan_find_mem_type(struct wlr_vk_device *device,
 | 
				
			||||||
	VkMemoryPropertyFlags flags, uint32_t req_bits);
 | 
						VkMemoryPropertyFlags flags, uint32_t req_bits);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct wlr_vk_format {
 | 
					struct wlr_vk_format {
 | 
				
			||||||
	uint32_t drm_format;
 | 
						uint32_t drm;
 | 
				
			||||||
	VkFormat vk_format;
 | 
						VkFormat vk;
 | 
				
			||||||
	bool is_srgb;
 | 
						bool is_srgb;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,29 +8,29 @@
 | 
				
			||||||
// Reversed endianess of shm and vulkan format names
 | 
					// Reversed endianess of shm and vulkan format names
 | 
				
			||||||
static const struct wlr_vk_format formats[] = {
 | 
					static const struct wlr_vk_format formats[] = {
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		.drm_format = DRM_FORMAT_ARGB8888,
 | 
							.drm = DRM_FORMAT_ARGB8888,
 | 
				
			||||||
		.vk_format = VK_FORMAT_B8G8R8A8_SRGB,
 | 
							.vk = VK_FORMAT_B8G8R8A8_SRGB,
 | 
				
			||||||
		.is_srgb = true,
 | 
							.is_srgb = true,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		.drm_format = DRM_FORMAT_XRGB8888,
 | 
							.drm = DRM_FORMAT_XRGB8888,
 | 
				
			||||||
		.vk_format = VK_FORMAT_B8G8R8A8_SRGB,
 | 
							.vk = VK_FORMAT_B8G8R8A8_SRGB,
 | 
				
			||||||
		.is_srgb = true,
 | 
							.is_srgb = true,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		.drm_format = DRM_FORMAT_XBGR8888,
 | 
							.drm = DRM_FORMAT_XBGR8888,
 | 
				
			||||||
		.vk_format = VK_FORMAT_R8G8B8A8_SRGB,
 | 
							.vk = VK_FORMAT_R8G8B8A8_SRGB,
 | 
				
			||||||
		.is_srgb = true,
 | 
							.is_srgb = true,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		.drm_format = DRM_FORMAT_ABGR8888,
 | 
							.drm = DRM_FORMAT_ABGR8888,
 | 
				
			||||||
		.vk_format = VK_FORMAT_R8G8B8A8_SRGB,
 | 
							.vk = VK_FORMAT_R8G8B8A8_SRGB,
 | 
				
			||||||
		.is_srgb = true,
 | 
							.is_srgb = true,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
#if WLR_LITTLE_ENDIAN
 | 
					#if WLR_LITTLE_ENDIAN
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		.drm_format = DRM_FORMAT_RGB565,
 | 
							.drm = DRM_FORMAT_RGB565,
 | 
				
			||||||
		.vk_format = VK_FORMAT_R5G6B5_UNORM_PACK16,
 | 
							.vk = VK_FORMAT_R5G6B5_UNORM_PACK16,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@ const struct wlr_vk_format *vulkan_get_format_list(size_t *len) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const struct wlr_vk_format *vulkan_get_format_from_drm(uint32_t drm_format) {
 | 
					const struct wlr_vk_format *vulkan_get_format_from_drm(uint32_t drm_format) {
 | 
				
			||||||
	for (unsigned i = 0; i < sizeof(formats) / sizeof(formats[0]); ++i) {
 | 
						for (unsigned i = 0; i < sizeof(formats) / sizeof(formats[0]); ++i) {
 | 
				
			||||||
		if (formats[i].drm_format == drm_format) {
 | 
							if (formats[i].drm == drm_format) {
 | 
				
			||||||
			return &formats[i];
 | 
								return &formats[i];
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -97,8 +97,7 @@ static bool query_modifier_support(struct wlr_vk_device *dev,
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	vkGetPhysicalDeviceFormatProperties2(dev->phdev,
 | 
						vkGetPhysicalDeviceFormatProperties2(dev->phdev, props->format.vk, &fmtp);
 | 
				
			||||||
		props->format.vk_format, &fmtp);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	props->render_mods = calloc(modp.drmFormatModifierCount,
 | 
						props->render_mods = calloc(modp.drmFormatModifierCount,
 | 
				
			||||||
		sizeof(*props->render_mods));
 | 
							sizeof(*props->render_mods));
 | 
				
			||||||
| 
						 | 
					@ -175,7 +174,7 @@ static bool query_modifier_support(struct wlr_vk_device *dev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				found = true;
 | 
									found = true;
 | 
				
			||||||
				wlr_drm_format_set_add(&dev->dmabuf_render_formats,
 | 
									wlr_drm_format_set_add(&dev->dmabuf_render_formats,
 | 
				
			||||||
					props->format.drm_format, m.drmFormatModifier);
 | 
										props->format.drm, m.drmFormatModifier);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				render_status = "✓ render";
 | 
									render_status = "✓ render";
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
| 
						 | 
					@ -210,7 +209,7 @@ static bool query_modifier_support(struct wlr_vk_device *dev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				found = true;
 | 
									found = true;
 | 
				
			||||||
				wlr_drm_format_set_add(&dev->dmabuf_texture_formats,
 | 
									wlr_drm_format_set_add(&dev->dmabuf_texture_formats,
 | 
				
			||||||
					props->format.drm_format, m.drmFormatModifier);
 | 
										props->format.drm, m.drmFormatModifier);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				texture_status = "✓ texture";
 | 
									texture_status = "✓ texture";
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
| 
						 | 
					@ -236,9 +235,9 @@ void vulkan_format_props_query(struct wlr_vk_device *dev,
 | 
				
			||||||
		const struct wlr_vk_format *format) {
 | 
							const struct wlr_vk_format *format) {
 | 
				
			||||||
	VkResult res;
 | 
						VkResult res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	char *format_name = drmGetFormatName(format->drm_format);
 | 
						char *format_name = drmGetFormatName(format->drm);
 | 
				
			||||||
	wlr_log(WLR_DEBUG, "  %s (0x%08"PRIX32")",
 | 
						wlr_log(WLR_DEBUG, "  %s (0x%08"PRIX32")",
 | 
				
			||||||
		format_name ? format_name : "<unknown>", format->drm_format);
 | 
							format_name ? format_name : "<unknown>", format->drm);
 | 
				
			||||||
	free(format_name);
 | 
						free(format_name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// get general features and modifiers
 | 
						// get general features and modifiers
 | 
				
			||||||
| 
						 | 
					@ -249,14 +248,13 @@ void vulkan_format_props_query(struct wlr_vk_device *dev,
 | 
				
			||||||
	modp.sType = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
 | 
						modp.sType = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT;
 | 
				
			||||||
	fmtp.pNext = &modp;
 | 
						fmtp.pNext = &modp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	vkGetPhysicalDeviceFormatProperties2(dev->phdev,
 | 
						vkGetPhysicalDeviceFormatProperties2(dev->phdev, format->vk, &fmtp);
 | 
				
			||||||
		format->vk_format, &fmtp);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// detailed check
 | 
						// detailed check
 | 
				
			||||||
	VkPhysicalDeviceImageFormatInfo2 fmti = {0};
 | 
						VkPhysicalDeviceImageFormatInfo2 fmti = {0};
 | 
				
			||||||
	fmti.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
 | 
						fmti.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
 | 
				
			||||||
	fmti.type = VK_IMAGE_TYPE_2D;
 | 
						fmti.type = VK_IMAGE_TYPE_2D;
 | 
				
			||||||
	fmti.format = format->vk_format;
 | 
						fmti.format = format->vk;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	VkImageFormatProperties2 ifmtp = {0};
 | 
						VkImageFormatProperties2 ifmtp = {0};
 | 
				
			||||||
	ifmtp.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
 | 
						ifmtp.sType = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
 | 
				
			||||||
| 
						 | 
					@ -290,7 +288,7 @@ void vulkan_format_props_query(struct wlr_vk_device *dev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			shm_texture_status = "✓ texture";
 | 
								shm_texture_status = "✓ texture";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			dev->shm_formats[dev->shm_format_count] = format->drm_format;
 | 
								dev->shm_formats[dev->shm_format_count] = format->drm;
 | 
				
			||||||
			++dev->shm_format_count;
 | 
								++dev->shm_format_count;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			add_fmt_props = true;
 | 
								add_fmt_props = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -392,7 +392,7 @@ bool vulkan_submit_stage_wait(struct wlr_vk_renderer *renderer) {
 | 
				
			||||||
struct wlr_vk_format_props *vulkan_format_props_from_drm(
 | 
					struct wlr_vk_format_props *vulkan_format_props_from_drm(
 | 
				
			||||||
		struct wlr_vk_device *dev, uint32_t drm_fmt) {
 | 
							struct wlr_vk_device *dev, uint32_t drm_fmt) {
 | 
				
			||||||
	for (size_t i = 0u; i < dev->format_prop_count; ++i) {
 | 
						for (size_t i = 0u; i < dev->format_prop_count; ++i) {
 | 
				
			||||||
		if (dev->format_props[i].format.drm_format == drm_fmt) {
 | 
							if (dev->format_props[i].format.drm == drm_fmt) {
 | 
				
			||||||
			return &dev->format_props[i];
 | 
								return &dev->format_props[i];
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -618,7 +618,7 @@ static struct wlr_vk_render_buffer *create_render_buffer(
 | 
				
			||||||
		.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
 | 
							.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
 | 
				
			||||||
		.image = buffer->image,
 | 
							.image = buffer->image,
 | 
				
			||||||
		.viewType = VK_IMAGE_VIEW_TYPE_2D,
 | 
							.viewType = VK_IMAGE_VIEW_TYPE_2D,
 | 
				
			||||||
		.format = fmt->format.vk_format,
 | 
							.format = fmt->format.vk,
 | 
				
			||||||
		.components.r = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
							.components.r = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
				
			||||||
		.components.g = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
							.components.g = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
				
			||||||
		.components.b = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
							.components.b = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
				
			||||||
| 
						 | 
					@ -638,8 +638,7 @@ static struct wlr_vk_render_buffer *create_render_buffer(
 | 
				
			||||||
		goto error_view;
 | 
							goto error_view;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	buffer->render_setup = find_or_create_render_setup(
 | 
						buffer->render_setup = find_or_create_render_setup(renderer, fmt->format.vk);
 | 
				
			||||||
		renderer, fmt->format.vk_format);
 | 
					 | 
				
			||||||
	if (!buffer->render_setup) {
 | 
						if (!buffer->render_setup) {
 | 
				
			||||||
		goto error_view;
 | 
							goto error_view;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -1315,7 +1314,7 @@ static bool vulkan_read_pixels(struct wlr_renderer *wlr_renderer,
 | 
				
			||||||
				"matching drm format 0x%08x available", drm_format);
 | 
									"matching drm format 0x%08x available", drm_format);
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	VkFormat dst_format = wlr_vk_format->vk_format;
 | 
						VkFormat dst_format = wlr_vk_format->vk;
 | 
				
			||||||
	VkFormat src_format = vk_renderer->current_render_buffer->render_setup->render_format;
 | 
						VkFormat src_format = vk_renderer->current_render_buffer->render_setup->render_format;
 | 
				
			||||||
	VkFormatProperties dst_format_props = {0}, src_format_props = {0};
 | 
						VkFormatProperties dst_format_props = {0}, src_format_props = {0};
 | 
				
			||||||
	vkGetPhysicalDeviceFormatProperties(vk_renderer->dev->phdev, dst_format, &dst_format_props);
 | 
						vkGetPhysicalDeviceFormatProperties(vk_renderer->dev->phdev, dst_format, &dst_format_props);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,8 +43,7 @@ static bool write_pixels(struct wlr_vk_texture *texture,
 | 
				
			||||||
	struct wlr_vk_renderer *renderer = texture->renderer;
 | 
						struct wlr_vk_renderer *renderer = texture->renderer;
 | 
				
			||||||
	VkDevice dev = texture->renderer->dev->dev;
 | 
						VkDevice dev = texture->renderer->dev->dev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const struct wlr_pixel_format_info *format_info = drm_get_pixel_format_info(
 | 
						const struct wlr_pixel_format_info *format_info = drm_get_pixel_format_info(texture->format->drm);
 | 
				
			||||||
			texture->format->drm_format);
 | 
					 | 
				
			||||||
	assert(format_info);
 | 
						assert(format_info);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	uint32_t bsize = 0;
 | 
						uint32_t bsize = 0;
 | 
				
			||||||
| 
						 | 
					@ -177,7 +176,7 @@ static bool vulkan_texture_update_from_buffer(struct wlr_texture *wlr_texture,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	bool ok = true;
 | 
						bool ok = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (format != texture->format->drm_format) {
 | 
						if (format != texture->format->drm) {
 | 
				
			||||||
		ok = false;
 | 
							ok = false;
 | 
				
			||||||
		goto out;
 | 
							goto out;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -287,7 +286,7 @@ static struct wlr_texture *vulkan_texture_from_pixels(
 | 
				
			||||||
	VkImageCreateInfo img_info = {
 | 
						VkImageCreateInfo img_info = {
 | 
				
			||||||
		.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
 | 
							.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
 | 
				
			||||||
		.imageType = VK_IMAGE_TYPE_2D,
 | 
							.imageType = VK_IMAGE_TYPE_2D,
 | 
				
			||||||
		.format = texture->format->vk_format,
 | 
							.format = texture->format->vk,
 | 
				
			||||||
		.mipLevels = 1,
 | 
							.mipLevels = 1,
 | 
				
			||||||
		.arrayLayers = 1,
 | 
							.arrayLayers = 1,
 | 
				
			||||||
		.samples = VK_SAMPLE_COUNT_1_BIT,
 | 
							.samples = VK_SAMPLE_COUNT_1_BIT,
 | 
				
			||||||
| 
						 | 
					@ -342,7 +341,7 @@ static struct wlr_texture *vulkan_texture_from_pixels(
 | 
				
			||||||
	VkImageViewCreateInfo view_info = {
 | 
						VkImageViewCreateInfo view_info = {
 | 
				
			||||||
		.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
 | 
							.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
 | 
				
			||||||
		.viewType = VK_IMAGE_VIEW_TYPE_2D,
 | 
							.viewType = VK_IMAGE_VIEW_TYPE_2D,
 | 
				
			||||||
		.format = texture->format->vk_format,
 | 
							.format = texture->format->vk,
 | 
				
			||||||
		.components.r = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
							.components.r = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
				
			||||||
		.components.g = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
							.components.g = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
				
			||||||
		.components.b = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
							.components.b = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
				
			||||||
| 
						 | 
					@ -488,7 +487,7 @@ VkImage vulkan_import_dmabuf(struct wlr_vk_renderer *renderer,
 | 
				
			||||||
	VkImageCreateInfo img_info = {
 | 
						VkImageCreateInfo img_info = {
 | 
				
			||||||
		.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
 | 
							.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
 | 
				
			||||||
		.imageType = VK_IMAGE_TYPE_2D,
 | 
							.imageType = VK_IMAGE_TYPE_2D,
 | 
				
			||||||
		.format = fmt->format.vk_format,
 | 
							.format = fmt->format.vk,
 | 
				
			||||||
		.mipLevels = 1,
 | 
							.mipLevels = 1,
 | 
				
			||||||
		.arrayLayers = 1,
 | 
							.arrayLayers = 1,
 | 
				
			||||||
		.samples = VK_SAMPLE_COUNT_1_BIT,
 | 
							.samples = VK_SAMPLE_COUNT_1_BIT,
 | 
				
			||||||
| 
						 | 
					@ -678,7 +677,7 @@ static struct wlr_vk_texture *vulkan_texture_from_dmabuf(
 | 
				
			||||||
	VkImageViewCreateInfo view_info = {
 | 
						VkImageViewCreateInfo view_info = {
 | 
				
			||||||
		.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
 | 
							.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
 | 
				
			||||||
		.viewType = VK_IMAGE_VIEW_TYPE_2D,
 | 
							.viewType = VK_IMAGE_VIEW_TYPE_2D,
 | 
				
			||||||
		.format = texture->format->vk_format,
 | 
							.format = texture->format->vk,
 | 
				
			||||||
		.components.r = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
							.components.r = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
				
			||||||
		.components.g = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
							.components.g = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
				
			||||||
		.components.b = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
							.components.b = VK_COMPONENT_SWIZZLE_IDENTITY,
 | 
				
			||||||
| 
						 | 
					@ -796,7 +795,7 @@ void wlr_vk_texture_get_image_attribs(struct wlr_texture *texture,
 | 
				
			||||||
		struct wlr_vk_image_attribs *attribs) {
 | 
							struct wlr_vk_image_attribs *attribs) {
 | 
				
			||||||
	struct wlr_vk_texture *vk_texture = vulkan_get_texture(texture);
 | 
						struct wlr_vk_texture *vk_texture = vulkan_get_texture(texture);
 | 
				
			||||||
	attribs->image = vk_texture->image;
 | 
						attribs->image = vk_texture->image;
 | 
				
			||||||
	attribs->format = vk_texture->format->vk_format;
 | 
						attribs->format = vk_texture->format->vk;
 | 
				
			||||||
	attribs->layout = vk_texture->transitioned ?
 | 
						attribs->layout = vk_texture->transitioned ?
 | 
				
			||||||
		VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL : VK_IMAGE_LAYOUT_UNDEFINED;
 | 
							VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL : VK_IMAGE_LAYOUT_UNDEFINED;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue