Signed-off-by: Christian Gmeiner <christian.gmei...@gmail.com> Reviewed-by: Wladimir J. van der Laan --- src/gallium/drivers/etnaviv/etnaviv_screen.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index e3a3a9c51c..35e6e8944c 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -516,6 +516,17 @@ gpu_supports_texure_format(struct etna_screen *screen, uint32_t fmt, return true; } +static bool +gpu_supports_pe_format(struct etna_screen *screen, uint32_t fmt) +{ + bool supported = true; + + if (fmt >= RS_FORMAT_R16F) + supported = VIV_FEATURE(screen, chipMinorFeatures1, HALTI0); + + return supported; +} + static boolean etna_screen_is_format_supported(struct pipe_screen *pscreen, enum pipe_format format, @@ -534,7 +545,12 @@ etna_screen_is_format_supported(struct pipe_screen *pscreen, return FALSE; if (usage & PIPE_BIND_RENDER_TARGET) { - if (translate_pe_format(format) != ETNA_NO_MATCH) { + uint32_t fmt = translate_pe_format(format); + + if (!gpu_supports_pe_format(screen, fmt)) + fmt = ETNA_NO_MATCH; + + if (fmt != ETNA_NO_MATCH) { /* Validate MSAA; number of samples must be allowed, and render target * must have MSAA'able format. */ if (sample_count > 1) { -- 2.17.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev