anv/formats: Don't use an RGBX format if it isn't renderable
The whole point of using RGBX is so that we can render to it so if it isn't renderable, that kind-of defeats the purpose. Some formats (one example is R32G32B32X32_SFLOAT) exist in the format table but aren't actually renderable. Eventually, we'd like to get away from RGBX entirely, but this fixes hangs on BDW today. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -278,7 +278,8 @@ anv_get_format(const struct brw_device_info *devinfo, VkFormat vk_format,
|
|||||||
* hood.
|
* hood.
|
||||||
*/
|
*/
|
||||||
enum isl_format rgbx = isl_format_rgb_to_rgbx(format.isl_format);
|
enum isl_format rgbx = isl_format_rgb_to_rgbx(format.isl_format);
|
||||||
if (rgbx != ISL_FORMAT_UNSUPPORTED) {
|
if (rgbx != ISL_FORMAT_UNSUPPORTED &&
|
||||||
|
isl_format_supports_rendering(devinfo, rgbx)) {
|
||||||
format.isl_format = rgbx;
|
format.isl_format = rgbx;
|
||||||
} else {
|
} else {
|
||||||
format.isl_format = isl_format_rgb_to_rgba(format.isl_format);
|
format.isl_format = isl_format_rgb_to_rgba(format.isl_format);
|
||||||
|
Reference in New Issue
Block a user