lavapipe: query formats for shader-image support
Assuming all formats are supported here isn't a good plan; we don't actually support all formats. Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Reviewed-by: Roland Scheidegger <sroland@vmware.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10467>
This commit is contained in:

committed by
Marge Bot

parent
3baeb1c4d1
commit
dc9343b42d
@@ -239,7 +239,7 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
|
||||
out_properties->bufferFeatures = buffer_features;
|
||||
return;
|
||||
}
|
||||
buffer_features = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT;
|
||||
|
||||
if (!util_format_is_srgb(pformat) &&
|
||||
physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
|
||||
PIPE_BUFFER, 0, 0, PIPE_BIND_VERTEX_BUFFER)) {
|
||||
@@ -251,6 +251,10 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
|
||||
buffer_features |= VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT;
|
||||
}
|
||||
|
||||
if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
|
||||
PIPE_BUFFER, 0, 0, PIPE_BIND_SHADER_IMAGE)) {
|
||||
buffer_features |= VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT;
|
||||
}
|
||||
|
||||
if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
|
||||
PIPE_TEXTURE_2D, 0, 0, PIPE_BIND_SAMPLER_VIEW)) {
|
||||
@@ -267,6 +271,10 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
|
||||
/* SNORM blending on llvmpipe fails CTS - disable for now */
|
||||
if (!util_format_is_snorm(pformat))
|
||||
features |= VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT;
|
||||
}
|
||||
|
||||
if (physical_device->pscreen->is_format_supported(physical_device->pscreen, pformat,
|
||||
PIPE_TEXTURE_2D, 0, 0, PIPE_BIND_SHADER_IMAGE)) {
|
||||
features |= VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user