}
+bool
+lp_storage_image_format_supported(enum pipe_format format)
+{
+ switch (format) {
+ case PIPE_FORMAT_R32G32B32A32_FLOAT:
+ case PIPE_FORMAT_R16G16B16A16_FLOAT:
+ case PIPE_FORMAT_R32G32_FLOAT:
+ case PIPE_FORMAT_R16G16_FLOAT:
+ case PIPE_FORMAT_R11G11B10_FLOAT:
+ case PIPE_FORMAT_R32_FLOAT:
+ case PIPE_FORMAT_R16_FLOAT:
+ case PIPE_FORMAT_R32G32B32A32_UINT:
+ case PIPE_FORMAT_R16G16B16A16_UINT:
+ case PIPE_FORMAT_R10G10B10A2_UINT:
+ case PIPE_FORMAT_R8G8B8A8_UINT:
+ case PIPE_FORMAT_R32G32_UINT:
+ case PIPE_FORMAT_R16G16_UINT:
+ case PIPE_FORMAT_R8G8_UINT:
+ case PIPE_FORMAT_R32_UINT:
+ case PIPE_FORMAT_R16_UINT:
+ case PIPE_FORMAT_R8_UINT:
+ case PIPE_FORMAT_R32G32B32A32_SINT:
+ case PIPE_FORMAT_R16G16B16A16_SINT:
+ case PIPE_FORMAT_R8G8B8A8_SINT:
+ case PIPE_FORMAT_R32G32_SINT:
+ case PIPE_FORMAT_R16G16_SINT:
+ case PIPE_FORMAT_R8G8_SINT:
+ case PIPE_FORMAT_R32_SINT:
+ case PIPE_FORMAT_R16_SINT:
+ case PIPE_FORMAT_R8_SINT:
+ case PIPE_FORMAT_R16G16B16A16_UNORM:
+ case PIPE_FORMAT_R10G10B10A2_UNORM:
+ case PIPE_FORMAT_R8G8B8A8_UNORM:
+ case PIPE_FORMAT_R16G16_UNORM:
+ case PIPE_FORMAT_R8G8_UNORM:
+ case PIPE_FORMAT_R16_UNORM:
+ case PIPE_FORMAT_R8_UNORM:
+ case PIPE_FORMAT_R16G16B16A16_SNORM:
+ case PIPE_FORMAT_R8G8B8A8_SNORM:
+ case PIPE_FORMAT_R16G16_SNORM:
+ case PIPE_FORMAT_R8G8_SNORM:
+ case PIPE_FORMAT_R16_SNORM:
+ case PIPE_FORMAT_R8_SNORM:
+ case PIPE_FORMAT_B8G8R8A8_UNORM:
+ return true;
+ default:
+ return false;
+ }
+}
+
+
/**
* Query format support for creating a texture, drawing surface, etc.
* \param format the format to test
}
if (bind & PIPE_BIND_SHADER_IMAGE) {
- switch (format) {
- case PIPE_FORMAT_R32G32B32A32_FLOAT:
- case PIPE_FORMAT_R16G16B16A16_FLOAT:
- case PIPE_FORMAT_R32G32_FLOAT:
- case PIPE_FORMAT_R16G16_FLOAT:
- case PIPE_FORMAT_R11G11B10_FLOAT:
- case PIPE_FORMAT_R32_FLOAT:
- case PIPE_FORMAT_R16_FLOAT:
- case PIPE_FORMAT_R32G32B32A32_UINT:
- case PIPE_FORMAT_R16G16B16A16_UINT:
- case PIPE_FORMAT_R10G10B10A2_UINT:
- case PIPE_FORMAT_R8G8B8A8_UINT:
- case PIPE_FORMAT_R32G32_UINT:
- case PIPE_FORMAT_R16G16_UINT:
- case PIPE_FORMAT_R8G8_UINT:
- case PIPE_FORMAT_R32_UINT:
- case PIPE_FORMAT_R16_UINT:
- case PIPE_FORMAT_R8_UINT:
- case PIPE_FORMAT_R32G32B32A32_SINT:
- case PIPE_FORMAT_R16G16B16A16_SINT:
- case PIPE_FORMAT_R8G8B8A8_SINT:
- case PIPE_FORMAT_R32G32_SINT:
- case PIPE_FORMAT_R16G16_SINT:
- case PIPE_FORMAT_R8G8_SINT:
- case PIPE_FORMAT_R32_SINT:
- case PIPE_FORMAT_R16_SINT:
- case PIPE_FORMAT_R8_SINT:
- case PIPE_FORMAT_R16G16B16A16_UNORM:
- case PIPE_FORMAT_R10G10B10A2_UNORM:
- case PIPE_FORMAT_R8G8B8A8_UNORM:
- case PIPE_FORMAT_R16G16_UNORM:
- case PIPE_FORMAT_R8G8_UNORM:
- case PIPE_FORMAT_R16_UNORM:
- case PIPE_FORMAT_R8_UNORM:
- case PIPE_FORMAT_R16G16B16A16_SNORM:
- case PIPE_FORMAT_R8G8B8A8_SNORM:
- case PIPE_FORMAT_R16G16_SNORM:
- case PIPE_FORMAT_R8G8_SNORM:
- case PIPE_FORMAT_R16_SNORM:
- case PIPE_FORMAT_R8_SNORM:
- case PIPE_FORMAT_B8G8R8A8_UNORM:
- break;
-
- default:
- return false;
- }
+ if (!lp_storage_image_format_supported(format))
+ return false;
}
if ((bind & (PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW)) &&