Boris Brezillon <boris.brezil...@bootlin.com> writes:

> On Fri, 09 Feb 2018 21:12:20 +0000
> Eric Anholt <e...@anholt.net> wrote:
>
>> Boris Brezillon <boris.brezil...@bootlin.com> writes:
>> 
>> > From: Boris Brezillon <boris.brezil...@free-electrons.com>
>> >
>> > This adds a specific test for the VC4 GPU.
>> > Right now, it only checks that FEP-valid-quads and
>> > QPU-total-clk-cycles-waiting-TMU are consistent after executing well
>> > know operations (draw a rectangle or a texture).
>> >
>> > More tests will be added over time.  
>> 
>> I'd still like to put together some tests of state management (to catch
>> things like the flushing bugs we had in the first revs), but this seems
>> like a good start.
>> 
>> > +#define FEP_VALID_QUADS_REF_VAL           6440
>> > +
>> > +static void draw_rect(const struct perfmon_test *test)
>> > +{
>> > +  piglit_draw_rect(-1, -1, 3, 3);
>> > +}
>> > +
>> > +static void draw_tex(const struct perfmon_test *test)
>> > +{
>> > +  GLuint tex;
>> > +
>> > +  tex = piglit_rgbw_texture(GL_RGBA, 64, 64, false, true,
>> > +                            GL_UNSIGNED_BYTE);
>> > +  verify(piglit_check_gl_error(GL_NO_ERROR));
>> > +
>> > +  glEnable(GL_TEXTURE_2D);
>> > +  glBindTexture(GL_TEXTURE_2D, tex);
>> > +  piglit_draw_rect_tex(-1, -1, 2, 2, 0, 0, 1, 1);
>> > +  glDisable(GL_TEXTURE_2D);
>> > +  glDeleteTextures(1, &tex);
>> > +}
>> > +
>> > +static bool fep_valid_quads_check_res(uint64_t res)
>> > +{
>> > +  return res == FEP_VALID_QUADS_REF_VAL;  
>> 
>> We should probably have the number of valid quads either be some math
>> based on the config.window_width/height, or explicitly set the
>> window_width/height so it's not dependent on whatever defaults the
>> framework chooses.
>> 
>> The valid quads is a pretty magic value because we're drawing this:
>> 
>> +---+
>> |  /|
>> | / |
>> |/  |
>> +---+
>> 
>> so some of the 2x2 quads get drawn twice along the middle edge between
>> the tris.  If we drew the triangle outside of the window:
>> 
>> +---+---+
>> |   |  /
>> |   | /
>> |   |/
>> +---/
>> |  /
>> | /
>> |/
>> +
>> 
>> with piglit_draw_rect(-1, -2, 4, 4), then I don't think any of the quads
>> would be drawn twice, and the magic REF_VAL would become
>> align(window_width, 2) * align(window_height, 2) / 4.
>
> So I picked win.height=width=64 and I have a mismatch. According to
> your formula I should have fep_valid_quads=1024, but I get 1040.

Huh, maybe we go past the guard band and get clipped into a quad?  I
guess just hardcode the value, then.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to