[Piglit] [PATCH] drawoverhead: use GL_TRIANGLES instead of GL_POINTS
Brian Paul
brianp at vmware.com
Thu Jun 8 19:55:42 UTC 2017
LGTM. Reviewed-by: Brian Paul <brianp at vmware.com>
On 06/08/2017 04:35 AM, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> Triangles are degenerate and therefore culled. Points weren't.
> This decreases the likelihood of being GPU-bound.
>
> I might re-do the radeonsi vs i965 comparison with this.
> ---
> tests/perf/drawoverhead.c | 36 ++++++++++++++++++------------------
> 1 file changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/tests/perf/drawoverhead.c b/tests/perf/drawoverhead.c
> index 9dd110f..76aed20 100644
> --- a/tests/perf/drawoverhead.c
> +++ b/tests/perf/drawoverhead.c
> @@ -196,187 +196,187 @@ setup_shaders_and_resources(unsigned num_vbos,
> }
> glActiveTexture(GL_TEXTURE0);
> }
>
> static void
> draw(unsigned count)
> {
> unsigned i;
> if (indexed) {
> for (i = 0; i < count; i++)
> - glDrawElements(GL_POINTS, 4, GL_UNSIGNED_INT, NULL);
> + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL);
> } else {
> for (i = 0; i < count; i++)
> - glDrawArrays(GL_POINTS, 0, 4);
> + glDrawArrays(GL_TRIANGLES, 0, 3);
> }
> }
>
> static void
> draw_shader_change(unsigned count)
> {
> unsigned i;
> if (indexed) {
> for (i = 0; i < count; i++) {
> glUseProgram(prog[i & 1]);
> - glDrawElements(GL_POINTS, 4, GL_UNSIGNED_INT, NULL);
> + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL);
> }
> } else {
> for (i = 0; i < count; i++) {
> glUseProgram(prog[i & 1]);
> - glDrawArrays(GL_POINTS, 0, 4);
> + glDrawArrays(GL_TRIANGLES, 0, 3);
> }
> }
> glUseProgram(prog[0]);
> }
>
> static void
> draw_uniform_change(unsigned count)
> {
> unsigned i;
> if (indexed) {
> for (i = 0; i < count; i++) {
> glUniform4f(uniform_loc, i & 1, 0, 0, 0);
> - glDrawElements(GL_POINTS, 4, GL_UNSIGNED_INT, NULL);
> + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL);
> }
> } else {
> for (i = 0; i < count; i++) {
> glUniform4f(uniform_loc, i & 1, 0, 0, 0);
> - glDrawArrays(GL_POINTS, 0, 4);
> + glDrawArrays(GL_TRIANGLES, 0, 3);
> }
> }
> }
>
> static void
> draw_one_texture_change(unsigned count)
> {
> unsigned i;
> if (indexed) {
> for (i = 0; i < count; i++) {
> glBindTexture(GL_TEXTURE_2D, tex[i & 1]);
> - glDrawElements(GL_POINTS, 4, GL_UNSIGNED_INT, NULL);
> + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL);
> }
> } else {
> for (i = 0; i < count; i++) {
> glBindTexture(GL_TEXTURE_2D, tex[i & 1]);
> - glDrawArrays(GL_POINTS, 0, 4);
> + glDrawArrays(GL_TRIANGLES, 0, 3);
> }
> }
> }
>
> static void
> draw_many_texture_change(unsigned count)
> {
> unsigned i,j;
> if (indexed) {
> for (i = 0; i < count; i++) {
> for (j = 0; j < 8; j++) {
> glActiveTexture(GL_TEXTURE0 + j);
> glBindTexture(GL_TEXTURE_2D, tex[(i + j) % 8]);
> }
> glActiveTexture(GL_TEXTURE0);
> - glDrawElements(GL_POINTS, 4, GL_UNSIGNED_INT, NULL);
> + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL);
> }
> } else {
> for (i = 0; i < count; i++) {
> for (j = 0; j < 8; j++) {
> glActiveTexture(GL_TEXTURE0 + j);
> glBindTexture(GL_TEXTURE_2D, tex[(i + j) % 8]);
> }
> glActiveTexture(GL_TEXTURE0);
> - glDrawArrays(GL_POINTS, 0, 4);
> + glDrawArrays(GL_TRIANGLES, 0, 3);
> }
> }
> }
>
> static void
> draw_one_ubo_change(unsigned count)
> {
> unsigned i;
> if (indexed) {
> for (i = 0; i < count; i++) {
> glBindBufferBase(GL_UNIFORM_BUFFER, 0, ubo[i & 1]);
> - glDrawElements(GL_POINTS, 4, GL_UNSIGNED_INT, NULL);
> + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL);
> }
> } else {
> for (i = 0; i < count; i++) {
> glBindBufferBase(GL_UNIFORM_BUFFER, 0, ubo[i & 1]);
> - glDrawArrays(GL_POINTS, 0, 4);
> + glDrawArrays(GL_TRIANGLES, 0, 3);
> }
> }
> }
>
> static void
> draw_many_ubo_change(unsigned count)
> {
> unsigned i,j;
> if (indexed) {
> for (i = 0; i < count; i++) {
> for (j = 0; j < 4; j++)
> glBindBufferBase(GL_UNIFORM_BUFFER, 0, ubo[(i + j) % 4]);
> - glDrawElements(GL_POINTS, 4, GL_UNSIGNED_INT, NULL);
> + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL);
> }
> } else {
> for (i = 0; i < count; i++) {
> for (j = 0; j < 4; j++)
> glBindBufferBase(GL_UNIFORM_BUFFER, 0, ubo[(i + j) % 4]);
> - glDrawArrays(GL_POINTS, 0, 4);
> + glDrawArrays(GL_TRIANGLES, 0, 3);
> }
> }
> }
>
> static void
> draw_state_change(unsigned count)
> {
> unsigned i;
> if (indexed) {
> for (i = 0; i < count; i++) {
> if (i & 1)
> glEnable(enable_enum);
> else
> glDisable(enable_enum);
> - glDrawElements(GL_POINTS, 4, GL_UNSIGNED_INT, NULL);
> + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL);
> }
> } else {
> for (i = 0; i < count; i++) {
> if (i & 1)
> glEnable(enable_enum);
> else
> glDisable(enable_enum);
> - glDrawArrays(GL_POINTS, 0, 4);
> + glDrawArrays(GL_TRIANGLES, 0, 3);
> }
> }
> glDisable(enable_enum);
> }
>
> static void
> draw_vertex_attrib_change(unsigned count)
> {
> unsigned i;
> if (indexed) {
> for (i = 0; i < count; i++) {
> if (i & 1)
> glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE,
> 3 * sizeof(float), NULL);
> else
> glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE,
> 3 * sizeof(float), NULL);
> - glDrawElements(GL_POINTS, 4, GL_UNSIGNED_INT, NULL);
> + glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, NULL);
> }
> } else {
> for (i = 0; i < count; i++) {
> if (i & 1)
> glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE,
> 3 * sizeof(float), NULL);
> else
> glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE,
> 3 * sizeof(float), NULL);
> - glDrawArrays(GL_POINTS, 0, 4);
> + glDrawArrays(GL_TRIANGLES, 0, 3);
> }
> }
> }
>
> #define COLOR_RESET "\033[0m"
> #define COLOR_RED "\033[31m"
> #define COLOR_GREEN "\033[1;32m"
> #define COLOR_YELLOW "\033[1;33m"
> #define COLOR_CYAN "\033[1;36m"
>
>
More information about the Piglit
mailing list