[Piglit] [PATCH] Porting basic GL rendering paths test to piglit

Emil Velikov emil.l.velikov at gmail.com
Wed Aug 26 06:46:20 PDT 2015


On 25 August 2015 at 15:56, Brian Paul <brian.e.paul at gmail.com> wrote:
> Looks good overall.  Just a bunch of nit-picks below...
>
>
> On Mon, Aug 24, 2015 at 5:19 PM, Juliet Fru <julietfru at gmail.com> wrote:

>> +typedef enum {
>> +       ALPHA,
>> +       BLEND,
>> +       COLOR_MASK,
>> +       DEPTH,
>> +       LOGIC,
>> +       SCISSOR,
>> +       STENCIL,
>> +       STIPPLE,
>> +       TEXTURE,
>> +       ZZZ  /* end-of-list token */
>> +} Path;
>> +
There are only a couple of tests in piglit that use typedefs. How
about using plain enums like below

enum path/state {
....
}


...
>> +path_name(Path path) {

>> +       default:
>> +               return "???";
You can drop the default statement here, or even change this function
into a static const char * const array indexed by the enum value ?


...
>> +void
>> +set_path_state(Path path, State state) {

>> +       default:
>> +               abort(); /* error */
Not something that common to piglit (apart from glean or tests
directly ported from it)


...
>> +enum piglit_result
>> +piglit_display(void)
>> +{
>> +       bool pass = true;
>> +       Path p, paths[1000];
Does paths really need to be that big. Afaics it will be up-to
(int)(ZZZ-ALPHA) in size.

>> +       int i, numPaths = 0;
>> +
>> +       /* draw 10x10 pixel quads */
>> +       glViewport(0, 0, 10, 10);
>> +
>> +       glDisable(GL_DITHER);
>> +
>> +       /* Build the list of paths to exercise.
>> +        * Skip depth test if we have no depth buffer. */
>> +       /*  Skip stencil test if we have no stencil buffer. */
Multi-line comments tend to be formatted line

/* This is a multi-line comment.
 * which spans across multiple
 * lines.
 */

>> +       for (p = ALPHA; p != ZZZ; p = (Path) (p + 1)) {
The comment is around but the actual check(s) never made it. Is that
intentional ?

>> +               paths[numPaths++] = p;
>> +       }


...
>> +
>> +               set_path_state(paths[i], DISABLE);
>> +
>> +               /* test buffer */
>> +               GLfloat pixel[3];
Mixing variable declarations and code will generate a build warning
(and/or break the build on some platforms). Please try to avoid that
when possible.


...
>> +       /* success */
>> +       pass = true;
>> +
>> +       return pass ? PIGLIT_PASS : PIGLIT_FAIL;
>
>
> Remove the 'pass' var and just return PIGLIT_PASS here.
>
Alternatively, you can rework the test to run all subtests even if one
or more fail :-)

Cheers,
Emil


More information about the Piglit mailing list