mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-30 09:20:23 +01:00
radv: Don't use SRGB format for image stores during resolve.
These seem to store very bogus results. Luckily there is some code that converts srgb->linear already, so just making the descriptor format UNORM should work. Fixes:588185eb6b"radv/meta: add srgb conversion to end of resolve shader." Reviewed-by: Dave Airlie <airlied@redhat.com> (cherry picked from commit8286c3a49f)
This commit is contained in:
parent
7f5d86ebaa
commit
8b706102eb
2 changed files with 24 additions and 1 deletions
|
|
@ -402,7 +402,7 @@ void radv_meta_resolve_compute_image(struct radv_cmd_buffer *cmd_buffer,
|
|||
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
|
||||
.image = radv_image_to_handle(dest_image),
|
||||
.viewType = radv_meta_get_view_type(dest_image),
|
||||
.format = dest_image->vk_format,
|
||||
.format = vk_to_non_srgb_format(dest_image->vk_format),
|
||||
.subresourceRange = {
|
||||
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
|
||||
.baseMipLevel = region->dstSubresource.mipLevel,
|
||||
|
|
|
|||
|
|
@ -465,4 +465,27 @@ vk_format_get_component_bits(VkFormat format,
|
|||
}
|
||||
}
|
||||
|
||||
static inline VkFormat
|
||||
vk_to_non_srgb_format(VkFormat format)
|
||||
{
|
||||
switch(format) {
|
||||
case VK_FORMAT_R8_SRGB :
|
||||
return VK_FORMAT_R8_UNORM;
|
||||
case VK_FORMAT_R8G8_SRGB:
|
||||
return VK_FORMAT_R8G8_UNORM;
|
||||
case VK_FORMAT_R8G8B8_SRGB:
|
||||
return VK_FORMAT_R8G8B8_UNORM;
|
||||
case VK_FORMAT_B8G8R8_SRGB:
|
||||
return VK_FORMAT_B8G8R8_UNORM;
|
||||
case VK_FORMAT_R8G8B8A8_SRGB :
|
||||
return VK_FORMAT_R8G8B8A8_UNORM;
|
||||
case VK_FORMAT_B8G8R8A8_SRGB:
|
||||
return VK_FORMAT_B8G8R8A8_UNORM;
|
||||
case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
|
||||
return VK_FORMAT_A8B8G8R8_UNORM_PACK32;
|
||||
default:
|
||||
return format;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* VK_FORMAT_H */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue