Mesa (master): mesa: improve error messaging for format CSV parser

Tapani Pälli tpalli at kemper.freedesktop.org
Wed Jan 28 08:43:48 UTC 2015


Module: Mesa
Branch: master
Commit: 291d7ef84dcd83962515cbd7ce91ce1ff70930ed
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=291d7ef84dcd83962515cbd7ce91ce1ff70930ed

Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Mon Jan 26 12:35:23 2015 +0200

mesa: improve error messaging for format CSV parser

Patch adds 2 error messages that point user directly to fix
mispelled or impossible swizzle field for a format.

Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand at intel.com>

---

 src/mesa/main/format_info.py   |    2 +-
 src/mesa/main/format_parser.py |    7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/mesa/main/format_info.py b/src/mesa/main/format_info.py
index fe2063d..3bae57e 100644
--- a/src/mesa/main/format_info.py
+++ b/src/mesa/main/format_info.py
@@ -58,7 +58,7 @@ def get_gl_base_format(fmat):
    elif fmat.has_channel('i') and fmat.num_channels() == 1:
       return 'GL_INTENSITY'
    else:
-      assert False
+      sys.exit("error, could not determine base format for {0}, check swizzle".format(fmat.name));
 
 def get_gl_data_type(fmat):
    if fmat.is_compressed():
diff --git a/src/mesa/main/format_parser.py b/src/mesa/main/format_parser.py
index 522bce3..11184f7 100755
--- a/src/mesa/main/format_parser.py
+++ b/src/mesa/main/format_parser.py
@@ -24,6 +24,8 @@
 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
+import sys
+
 VOID = 'x'
 UNSIGNED = 'u'
 SIGNED = 's'
@@ -562,7 +564,10 @@ def parse(filename):
          block_height = int(fields[3])
          colorspace = fields[9]
 
-         swizzle = Swizzle(fields[8])
+         try:
+            swizzle = Swizzle(fields[8])
+         except:
+            sys.exit("error parsing swizzle for format " + name)
          channels = _parse_channels(fields[4:8], layout, colorspace, swizzle)
 
          yield Format(name, layout, block_width, block_height, channels, swizzle, colorspace)




More information about the mesa-commit mailing list