On Tue, Aug 25, 2015 at 1:04 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. > --- > src/gallium/drivers/softpipe/sp_screen.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/src/gallium/drivers/softpipe/sp_screen.c > b/src/gallium/drivers/softpipe/sp_screen.c > index aeef8e6..24d79f1 100644 > --- a/src/gallium/drivers/softpipe/sp_screen.c > +++ b/src/gallium/drivers/softpipe/sp_screen.c > @@ -360,6 +360,31 @@ 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)) { > + if (format == PIPE_FORMAT_R8G8B8_UINT || > + format == PIPE_FORMAT_R8G8B8_SINT || > + format == PIPE_FORMAT_R8G8B8_UNORM || > + format == PIPE_FORMAT_R16G16B16_UINT || > + format == PIPE_FORMAT_R16G16B16_SINT || > + format == PIPE_FORMAT_R16G16B16_UNORM || > + format == PIPE_FORMAT_R16G16B16_FLOAT || > + format == PIPE_FORMAT_R32G32B32_UINT || > + format == PIPE_FORMAT_R32G32B32_SINT || > + format == PIPE_FORMAT_R32G32B32_UNORM || > + format == PIPE_FORMAT_R32G32B32_FLOAT) {
For simpler code and keeping TBO support: desc->is_array && desc->nr_channels == 3 && target != PIPE_BUFFER where desc = util_format_description(format) Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev