-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 18/11/14 19:54, Jason Ekstrand wrote: > On Tue, Nov 18, 2014 at 12:43 AM, Iago Toral Quiroga <ito...@igalia.com> > wrote: > >> From: Jason Ekstrand <jason.ekstr...@intel.com> >> >> We were auto-generating it before. The problem was that the autogeneration >> tool we were using was called "copy, paste, and edit". Let's use a more >> sensible solution. >> >> Signed-off-by: Jason Ekstrand <jason.ekstr...@intel.com> >> >> v2 by Samuel Iglesias <sigles...@igalia.com> >> - Remove format_pack.c as it is now autogenerated >> - Add usage of INDENT_FLAGS in Makefile.am >> - Remove trailing blank line >> >> Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com> >> --- >> src/mesa/Makefile.am | 9 + >> src/mesa/Makefile.sources | 2 +- >> src/mesa/main/format_convert.py | 71 + >> src/mesa/main/format_pack.c | 2982 >> -------------------------------------- >> src/mesa/main/format_pack.c.mako | 898 ++++++++++++ >> src/mesa/main/run_mako.py | 7 + >> 6 files changed, 986 insertions(+), 2983 deletions(-) >> create mode 100644 src/mesa/main/format_convert.py >> delete mode 100644 src/mesa/main/format_pack.c >> create mode 100644 src/mesa/main/format_pack.c.mako >> create mode 100644 src/mesa/main/run_mako.py >> >> diff --git a/src/mesa/Makefile.am b/src/mesa/Makefile.am >> index e71bccb..76cac4a 100644 >> --- a/src/mesa/Makefile.am >> +++ b/src/mesa/Makefile.am >> @@ -66,6 +66,7 @@ BUILT_SOURCES = \ >> main/get_hash.h \ >> main/format_info.c \ >> $(BUILDDIR)main/git_sha1.h \ >> + $(BUILDDIR)main/format_pack.c \ >> $(BUILDDIR)program/program_parse.tab.c \ >> $(BUILDDIR)program/lex.yy.c >> CLEANFILES = \ >> @@ -89,6 +90,14 @@ main/format_info.c: main/formats.csv >> \ >> $< > $@.tmp; \ >> mv $@.tmp $@; >> >> +$(BUILDDIR)main/format_pack.c: main/format_pack.c.mako main/formats.csv \ >> + main/run_mako.py main/format_parser.py >> + $(AM_V_GEN)set -e; \ >> + $(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/main/run_mako.py \ >> + $< $(srcdir)/main/formats.csv > $@.tmp; \ >> + cat $@.tmp | $(INDENT) $(INDENT_FLAGS) > $@; \ >> + rm $@.tmp; >> + >> main/formats.c: main/format_info.c >> >> noinst_LTLIBRARIES = $(ARCH_LIBS) >> diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources >> index 4755018..99fc497 100644 >> --- a/src/mesa/Makefile.sources >> +++ b/src/mesa/Makefile.sources >> @@ -50,7 +50,7 @@ MAIN_FILES = \ >> $(SRCDIR)main/fog.c \ >> $(SRCDIR)main/formatquery.c \ >> $(SRCDIR)main/formats.c \ >> - $(SRCDIR)main/format_pack.c \ >> + $(BUILDDIR)main/format_pack.c \ >> $(SRCDIR)main/format_unpack.c \ >> $(SRCDIR)main/format_utils.c \ >> $(SRCDIR)main/framebuffer.c \ >> diff --git a/src/mesa/main/format_convert.py >> b/src/mesa/main/format_convert.py >> new file mode 100644 >> index 0000000..0423427 >> --- /dev/null >> +++ b/src/mesa/main/format_convert.py >> @@ -0,0 +1,71 @@ >> +#!/usr/bin/env python >> +# >> +# Copyright 2014 Intel Corporation >> +# All Rights Reserved. >> +# >> +# 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 VMWARE AND/OR ITS SUPPLIERS 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. >> + >> +import format_parser as parser >> + >> +def __get_datatype(_type, size): >> + if _type == parser.FLOAT: >> + if size == 32: >> + return 'float' >> + elif size == 16: >> + return 'uint16_t' >> + else: >> + assert False >> + elif _type == parser.UNSIGNED: >> + if size <= 8: >> + return 'uint8_t' >> + elif size <= 16: >> + return 'uint16_t' >> + elif size <= 32: >> + return 'uint32_t' >> + else: >> + assert False >> + elif _type == parser.SIGNED: >> + if size <= 8: >> + return 'int8_t' >> + elif size <= 16: >> + return 'int16_t' >> + elif size <= 32: >> + return 'int32_t' >> + else: >> + assert False >> + else: >> + assert False >> + >> +def channel_datatype(c): >> + return __get_datatype(c.type, c.size) >> + >> +def format_datatype(f): >> + if f.layout == parser.PACKED: >> + if f.block_size() == 8: >> + return 'uint8_t' >> + if f.block_size() == 16: >> + return 'uint16_t' >> + if f.block_size() == 32: >> + return 'uint32_t' >> + else: >> + assert False >> + else: >> + return __get_datatype(f.channel_type(), f.channel_size()) >> > > On second thought, this could probably be easily rolled into the format > parse. I initially; had it separate because this file initially contained > almost the entire generator and was highly GL-specific. Now that it's just > a couple of helpers to get an stdint datatype, I don't see any reason for > it to be its own file. We should just have c_datatype methods on Format > and Channel in format_parser.py and get rid of the extra file. > --Jason
OK, good idea. I'm going to move them to format_parser.py for the second version of the patches. Thanks, Sam -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJUbJ/vAAoJEH/0ujLxfcNDfUsP/RZtcF31VvM0tL5QcAH7P/ES efk1D2Apoj0yr3RxN/rzzz38C1uzltUfg4MsOrLowbJ7qpL5PXHs7H1G3HXWSdiD JdFkPX4ZcfdoUull+KhZPYLkp5N26q+eAH7icSwUGRjba/MceO73hMxj+2zkjYTt lLA5ZXh1glRzCHqBJKvMhEViZyvZZGJni/EpSq9sg0Qg/mLxVAeemqsVFRh753fR uS6f0m5MfduMc9ZPAX/b9pwdNEaW+/JcmEnArKw7veRId7chBpR0DQAtCIA7EWvw BpcPDz3G22FFgN4ckbCJ3F6mjDMEnJLDWKeJ5hR+dnWIUmmNZ97uB7TYjxSmRS1D 7IMaGjrM/1FTvcErgXecXmR6dHuv06eaMAhjmq38qnIF53Z5pMNoB86luDSv43xJ 5qwruigW6hBhUeS+ogRdxdwU8w/0UKtcLfg0eAROdnGj+8L1vXRizBcTquS1ySPt j/Md4s2I+Pa/H2Eof02ZF2cg1V1F81SuC/aZ47hf4+ueNgljSD3nxKK5LJrYzFR/ tVkOh4+4rqS+CwjeIRXeZuVgIjCf+QbJBnyayy5LaSZmVPTIziyDf3HY2EAlGoVN KPlkluekiBISQupNxcnYLvE85B4yX5C09rQXSukQhRRVUZGwuAiTy/JKMXIoUThv /DbxIkBgij9RS0TV/JRw =duf/ -----END PGP SIGNATURE----- _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev