Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek
On Fri, Aug 28, 2015 at 1:47 AM, Brian Paul <bri...@vmware.com> wrote: > Mesa and gallium don't have a complete set of matching 3-component > texture formats. For example, 8-bit sRGB unorm. To fully support > the GL_ARB_copy_image extension we need to have support for all of > these formats: RGB8_UNORM, RGB8_SNORM, RGB8_SRGB, RGB8_UINT, and > RGB8_SINT using the same component order. Since we don't have that, > disable the 3-component formats for now. > > v2: Simplify 3-component format check, per Marek. > Also check that target != PIPE_BUFFER. > --- > src/gallium/drivers/softpipe/sp_screen.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/src/gallium/drivers/softpipe/sp_screen.c > b/src/gallium/drivers/softpipe/sp_screen.c > index aeef8e6..817572c 100644 > --- a/src/gallium/drivers/softpipe/sp_screen.c > +++ b/src/gallium/drivers/softpipe/sp_screen.c > @@ -360,6 +360,24 @@ softpipe_is_format_supported( struct pipe_screen *screen, > return FALSE; > } > > + if ((bind & (PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW)) && > + ((bind & PIPE_BIND_DISPLAY_TARGET) == 0) && > + target != PIPE_BUFFER) { > + const struct util_format_description *desc = > + util_format_description(format); > + if (desc->nr_channels == 3 && desc->is_array) { > + /* Don't support any 3-component formats for rendering/texturing > + * since we don't support the corresponding 8-bit 3 channel UNORM > + * formats. This allows us to support GL_ARB_copy_image between > + * GL_RGB8 and GL_RGB8UI, for example. Otherwise, we may be asked > to > + * do a resource copy between PIPE_FORMAT_R8G8B8_UINT and > + * PIPE_FORMAT_R8G8B8X8_UNORM, for example, which will not work > + * (different bpp). > + */ > + return FALSE; > + } > + } > + > if (format_desc->layout == UTIL_FORMAT_LAYOUT_ETC && > format != PIPE_FORMAT_ETC1_RGB8) > return FALSE; > -- > 1.9.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev