[Piglit] [PATCH] drawoverhead: use GL_TRIANGLES instead of GL_POINTS
Marek Olšák
maraeo at gmail.com
Thu Jun 8 10:35:47 UTC 2017
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"
--
2.7.4
More information about the Piglit
mailing list