{"push_id":1443583303,"size":98,"distinct_size":0,"ref":"refs/heads/master","head":"7b2af565dacccd65fc777933f4833f400e9cd178","before":"f66765d4c5f088fc63d6626a3d8209ffe44e5684","commits":[{"sha":"27bb3fda64e1cbb1028cfa91b7b5ff186df2ce9e","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Rework script parser utils.\n\nThis introduces a collection of text parsing primitives meant to\nreplace the current helper functions from parser_utils.h and other\nmanual string manipulation done in shader_runner.c.  The design\nprinciples are:\n\n - Make things easier for the caller to handle failure.  Some of the\n   current parser code doesn't handle failure at all (e.g. the whole\n   get_* helpers), which will cause the script to misbehave silently\n   in presence of a syntax error.  Other parser functions\n   (e.g. lookup_enum_string or process_comparison) kill the piglit\n   test with failure status when the input cannot be parsed, which\n   prevents the caller from handling parse errors gracefully in cases\n   where failure is expected (e.g. because a symbol has multiple\n   alternative production rules).\n\n   All parser primitives introduced here return a boolean result that\n   represents whether the symbol could be parsed from the input\n   string.  The REQUIRE() macro is provided to encourage printing\n   informative diagnostic messages in error conditions.\n\n - Allow composition of parser primitives to form more complex parsers\n   with similar high-level behavior.  Chained parsers can be\n   represented easily using the '&&' operator.  E.g.:\n\n   | return parse_str(line, \"foo\", &rest) &&\n   |        parse_bar(rest, &bar, &rest);\n\n   will parse \"foo\" followed by a 'bar' value and leave 'rest'\n   pointing at the following text to allow subsequent composition [the\n   parser utils currently in use would require hard-coding the\n   character length of the first symbol, which is error-prone and can\n   get hairy if the length of the symbol is not known beforehand].\n\n   Look-ahead can be achieved by passing NULL as last argument which\n   will simply check whether the symbol can be parsed without updating\n   the current parse location.  E.g. to check whether a symbol starts\n   with 'GL_' and then parse it as a GL enum:\n\n   | return parse_str(line, \"GL_\", NULL) &&\n   |        parse_enum_gl(line, &e, &rest);\n\n - Allow parsing of slightly more complex grammars where a single\n   non-terminal symbol can have multiple alternative production rules.\n\n   Selection of one of the alternatives can be represented succinctly\n   by combining multiple parsers with the '||' operator (the result\n   will be left-biased in presence of ambiguity due to the\n   short-circuit rule of C boolean operators).  E.g. to parse a string\n   of the form '<name-string> <pname-enum> <type-enum or integer>' you\n   can do something along the lines of:\n\n   | return parse_word_copy(line, name, sizeof(name), &rest) &&\n   |        parse_enum_tab(all_pnames, rest, &pname, &rest) &&\n   |        (parse_enum_tab(all_types, rest, &expected, &rest) ||\n   |         parse_int(rest, &expected, &rest));\n\nSee the doxygen documentation below for more details.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/27bb3fda64e1cbb1028cfa91b7b5ff186df2ce9e"},{"sha":"78693a14cb5e01a2ea0dc41a702c47121e97ade4","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Switch to the recently introduced parser primitives.\n\nThis is just an initial pass changing shader_runner to use the most\nbasic parser primitives defined in a previous commit.  Additional\nprimitives for parsing numeric constants, comparison operators and\nvarious enumerations will be introduced later on.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/78693a14cb5e01a2ea0dc41a702c47121e97ade4"},{"sha":"dca6930e6e748534f643669d2e6db123be83710e","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Migrate numeric parser utils to parser library.\n\nRework the get_* parser helpers used in shader_runner.c to follow the\nsame principle as the recently introduced parser helpers.  This gives\ncallers the possibility to handle failure and compose numeric parsers\nwith other parser primitives.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/dca6930e6e748534f643669d2e6db123be83710e"},{"sha":"26d5623d8d3808291d85a8364d60c65ae5497603","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"built-in-constants: Switch to new parser library.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/26d5623d8d3808291d85a8364d60c65ae5497603"},{"sha":"69784d8ef310cdd4d0908399473a30a94822fed0","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Migrate process_comparison() to new parser library.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/69784d8ef310cdd4d0908399473a30a94822fed0"},{"sha":"6cff0aa90aa8083456c651310449031b4d461d8b","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Migrate lookup_enum_string() to new parser library.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/6cff0aa90aa8083456c651310449031b4d461d8b"},{"sha":"d03df7503cb99ffd248fc42ef096146a03697568","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Factor out open-coded texture target parsing as parser primitive.\n\nThis will be re-used later on.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/d03df7503cb99ffd248fc42ef096146a03697568"},{"sha":"cd5da2e3f84ace2f3b12d2e8c8ecb046b3c0f81e","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Remove unused parser utils.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/cd5da2e3f84ace2f3b12d2e8c8ecb046b3c0f81e"},{"sha":"7a9fc21f4d683de0c57c91f69ed408f0d97cd6b2","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Don't attempt non-existing GL_TEXTURE_2D enable on GLES2+.\n\nReviewed-by: Dylan Baker <dylan@pnwbakers.com>","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/7a9fc21f4d683de0c57c91f69ed408f0d97cd6b2"},{"sha":"caa45f6c3345cec79aec04c161897e9e5e496b27","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Rework tracking of texture bindings.\n\nThe most significant differences with respect to the current approach\nare:\n\n - We keep track of a single texture object per texture unit (which is\n   deallocated as soon as a new texture is bound to the same unit)\n   instead of trying to keep track of all texture objects allocated\n   during the lifetime of the program (which are deallocated once the\n   test runs to completion).  This makes indexing the texture binding\n   array easier and should reduce memory usage in cases where multiple\n   textures are bound to the same unit one after the other.\n\n - We keep track of additional metadata for each texture.  This will\n   allow us to stop using glGetTexLevelParameteriv() to query the\n   dimensions of a texture after it's bound to a texture unit, which\n   is broken on GLES 3.0 and earlier because the\n   glGetTexLevelParameteriv() command doesn't exist.\n\n - There are helper functions to bind, unbind and query textures,\n   which simplifies the code and allows some common error checking to\n   happen (e.g. fail if a texture unit is used before it's bound).\n\nAlso fix a bunch of cases where we were creating textures without\nupdating the textures[] array, which would likely have led to texture\nmemory leaks across test runs.\n\nAcked-by: Dylan Baker <dylan@pnwbakers.com>","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/caa45f6c3345cec79aec04c161897e9e5e496b27"},{"sha":"e13442893cf0a63d855afaa6ec8a470b2305d5b6","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Take advantage of texture binding book-keeping in image binding command.\n\nNo need to do the glActiveTexture + glGetIntegerv dance to find out\nwhich texture object is bound to a texture unit.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/e13442893cf0a63d855afaa6ec8a470b2305d5b6"},{"sha":"7f08b2ca2acc08c80c4e2a96dcd6a6fc1c727d19","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Drop unnecessary texture target argument from fb tex layered command.\n\nThe texture target argument of the 'fb tex layered' command is\nsomewhat redundant because the glFramebufferTexture() GL API it's\nimplemented in terms of doesn't care what the target is.  Right now\nthe implementation of 'fb tex layered' requires the texture to be a 2D\narray due to the way it uses the GL API to query the bound texture\nobject and dimensions, but that limitation will be removed shortly.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/7f08b2ca2acc08c80c4e2a96dcd6a6fc1c727d19"},{"sha":"2483f0cf67e3ea824cd78c25e8f3d099f4db6299","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Take advantage of texture binding book-keeping in fb command handling.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/2483f0cf67e3ea824cd78c25e8f3d099f4db6299"},{"sha":"2e384ccac14a6a94850f9eab8cca8e01c838ccea","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Refactor handling of fb commands.\n\nThis refactors the implementation of the various \"fb\" commands to be\npart of a single 'if (parse_str(line, \"fb \", ...)) {}' block in order\nto make code-sharing easier among fb subcommands.  Will be more useful\nwhen we start introducing additional fb subcommands.\n\nReviewed-by: Dylan Baker <dylan@pnwbakers.com>","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/2e384ccac14a6a94850f9eab8cca8e01c838ccea"},{"sha":"ec2db70f6075233b0e290c8b981374b04a9ebcb4","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Reindent code handling fb commands.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/ec2db70f6075233b0e290c8b981374b04a9ebcb4"},{"sha":"f21086057badffaf4795055b533192c16d31757f","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Allow definition of separate draw and read framebuffers.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/f21086057badffaf4795055b533192c16d31757f"},{"sha":"a2a248af6920135f3bc69088701a934c9dd74900","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Extend fb tex 2d command to support binding multiple render targets.\n\nfb tex 2d now takes a variable number of texture indices that are\nbound sequentially as texture attachments of the framebuffer object.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/a2a248af6920135f3bc69088701a934c9dd74900"},{"sha":"31b8c1c43bbf511a3a1101b543e63497095d73fc","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Add fb tex slice binding command.\n\n\"fb tex slice <texture target> <texture index> <level> <layer>\" can be\nused to bind an arbitrary layer of the specified texture as color\nattachment of the current framebuffer object.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/31b8c1c43bbf511a3a1101b543e63497095d73fc"},{"sha":"36e225d034bdc183c0001b469cda111c4328b4ad","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Add multisample framebuffer binding command.\n\n\"fb ms <format> <width> <height> <samples>\" binds a fresh multisample\nframebuffer object with the given format and dimensions.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/36e225d034bdc183c0001b469cda111c4328b4ad"},{"sha":"f17dbc83caac23f93384a3618f8dda226f2861c3","author":{"name":"Francisco Jerez","email":"475862461d4f628eb34c6ff59c62fa061400c9c5@riseup.net"},"message":"shader_runner: Add winsys framebuffer binding command.\n\n\"fb winsys\" binds the original window system framebuffer.  Useful for\ndisplaying the contents rendered into an offscreen framebuffer at the\nend of the test.","distinct":false,"url":"https://api.github.com/repos/rantogno/piglit/commits/f17dbc83caac23f93384a3618f8dda226f2861c3"}]}
{"actor":{"display_login":"rantogno"}}