mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-22 12:55:58 +01: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…
Reference in a new issue