[Piglit] [PATCH] AMD_performance_monitor: add VC4 specific tests

Eric Anholt eric at anholt.net
Wed Feb 21 00:28:29 UTC 2018


Boris Brezillon <boris.brezillon at bootlin.com> writes:

> On Fri, 09 Feb 2018 21:12:20 +0000
> Eric Anholt <eric at anholt.net> wrote:
>
>> Boris Brezillon <boris.brezillon at bootlin.com> writes:
>> 
>> > From: Boris Brezillon <boris.brezillon at 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20180221/82fce2de/attachment.sig>


More information about the Piglit mailing list