Hi Lucas Am Mi., 27. Feb. 2019 um 10:22 Uhr schrieb Lucas Stach <l.st...@pengutronix.de>: > > Am Dienstag, den 26.02.2019, 19:15 +0100 schrieb Christian Gmeiner: > > ETC2 is supported with HALTI0, however that implementation is buggy > > in hardware. The blob driver does per-block patching to work around > > this. We need to swap colors for t-mode etc2 blocks. > > > > > Signed-off-by: Christian Gmeiner <christian.gmei...@gmail.com> > > --- > > src/gallium/drivers/etnaviv/Makefile.sources | 2 + > > src/gallium/drivers/etnaviv/etnaviv_etc2.c | 149 +++++++++++++++++++ > > src/gallium/drivers/etnaviv/etnaviv_etc2.h | 51 +++++++ > > src/gallium/drivers/etnaviv/meson.build | 2 + > > 4 files changed, 204 insertions(+) > > create mode 100644 src/gallium/drivers/etnaviv/etnaviv_etc2.c > > create mode 100644 src/gallium/drivers/etnaviv/etnaviv_etc2.h > > > > diff --git a/src/gallium/drivers/etnaviv/Makefile.sources > > b/src/gallium/drivers/etnaviv/Makefile.sources > > index 0b208122999..01e7e49a38a 100644 > > --- a/src/gallium/drivers/etnaviv/Makefile.sources > > +++ b/src/gallium/drivers/etnaviv/Makefile.sources > > @@ -25,6 +25,8 @@ C_SOURCES := \ > > > etnaviv_disasm.h \ > > > etnaviv_emit.c \ > > > etnaviv_emit.h \ > > > + etnaviv_etc2.c \ > > > + etnaviv_etc2.h \ > > > etnaviv_fence.c \ > > > etnaviv_fence.h \ > > > etnaviv_format.c \ > > diff --git a/src/gallium/drivers/etnaviv/etnaviv_etc2.c > > b/src/gallium/drivers/etnaviv/etnaviv_etc2.c > > new file mode 100644 > > index 00000000000..64811c3038d > > --- /dev/null > > +++ b/src/gallium/drivers/etnaviv/etnaviv_etc2.c > > @@ -0,0 +1,149 @@ > > +/* > > + * Copyright (c) 2019 Etnaviv Project > > + * Copyright (C) 2019 Zodiac Inflight Innovations > > + * > > + * Permission is hereby granted, free of charge, to any person obtaining a > > + * copy of this software and associated documentation files (the > > "Software"), > > + * to deal in the Software without restriction, including without > > limitation > > + * the rights to use, copy, modify, merge, publish, distribute, sub > > license, > > + * and/or sell copies of the Software, and to permit persons to whom the > > + * Software is furnished to do so, subject to the following conditions: > > + * > > + * The above copyright notice and this permission notice (including the > > + * next paragraph) shall be included in all copies or substantial portions > > + * of the Software. > > + * > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS > > OR > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > > + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL > > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR > > OTHER > > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > > + * DEALINGS IN THE SOFTWARE. > > + * > > + * Authors: > > > + * Christian Gmeiner <christian.gmei...@gmail.com> > > + */ > > + > > +#include "etnaviv_etc2.h" > > +#include "etnaviv_resource.h" > > +#include "etnaviv_screen.h" > > +#include "hw/common.xml.h" > > +#include "util/u_format.h" > > + > > +bool > > +etna_etc2_needs_patching(const struct pipe_resource *prsc) > > +{ > > + const struct etna_screen *screen = etna_screen(prsc->screen); > > + > > + if (!util_format_is_etc(prsc->format)) > > + return false; > > + > > + if (prsc->format == PIPE_FORMAT_ETC1_RGB8) > > + return false; > > Isn't this format check redundant with the default case of the switch > below? >
As util_format_is_etc(..) fires for etc1 and etc2 I thought to be more explicit here, but I am fine to remove it. -- greets -- Christian Gmeiner, MSc https://christian-gmeiner.info _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev