summaryrefslogtreecommitdiff
path: root/r600_perf.c
diff options
context:
space:
mode:
authorMatthias Hopf <mhopf@suse.de>2009-02-03 12:02:34 +0100
committerMatthias Hopf <mhopf@suse.de>2009-02-03 12:02:34 +0100
commit1b8c857e717d5ac15874746db3c4a98e02175d7d (patch)
tree1cd43097ae62d49a030ade524be3c42e72fe6124 /r600_perf.c
parentf355ee75ad3e2d12a00ddac62d28ebce475c515e (diff)
Add continuously running full speed test 'F'.
Diffstat (limited to 'r600_perf.c')
-rw-r--r--r600_perf.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/r600_perf.c b/r600_perf.c
index c0d6303..bc2c34f 100644
--- a/r600_perf.c
+++ b/r600_perf.c
@@ -47,7 +47,7 @@
* Test rasterization performance with one texture
*/
-void test_tex_quad_perf(adapter_t *adapt)
+void test_tex_quad_perf(adapter_t *adapt, int testtype)
{
static uint32_t vs[] = {
// CF INST 0
@@ -342,15 +342,13 @@ void test_tex_quad_perf(adapter_t *adapt)
/* Interpolator setup */
- /* Enabling flat shading needs both FLAT_SHADE_bit in SPI_PS_INPUT_CNTL_x
- * *and* FLAT_SHADE_ENA_bit in SPI_INTERP_CONTROL_0 */
ereg (SPI_PS_IN_CONTROL_0, ((1 << NUM_INTERP_shift)));
ereg (SPI_PS_IN_CONTROL_1, 0);
ereg (SPI_PS_INPUT_CNTL_0 + (0 <<2), ((0 << SEMANTIC_shift) |
(0x03 << DEFAULT_VAL_shift) |
FLAT_SHADE_bit |
SEL_CENTROID_bit));
- ereg (SPI_INTERP_CONTROL_0, /* FLAT_SHADE_ENA_bit | */ 0);
+ ereg (SPI_INTERP_CONTROL_0, 0);
/* Vertex buffer setup */
@@ -395,7 +393,7 @@ void test_tex_quad_perf(adapter_t *adapt)
* Test ALU performance
*/
-void test_alu_quad_perf(adapter_t *adapt)
+void test_alu_quad_perf(adapter_t *adapt, int testtype)
{
static uint32_t vs[] = {
// CF INST 0
@@ -515,7 +513,7 @@ void test_alu_quad_perf(adapter_t *adapt)
uint64_t vb_addr, vs_addr, ps_addr;
- int i, ps_size, alu_num, render_num;
+ int i, ps_size, alu_num, alu_scale, render_num;
float render_time;
@@ -755,7 +753,13 @@ void test_alu_quad_perf(adapter_t *adapt)
/* Render n times, duplicate alu instructions per clause each time */
render_num = 64;
- for (alu_num = 3; alu_num <= MAX_NUM_ALUS_PER_CLAUSE; alu_num *= 2) {
+ alu_num = 3;
+ alu_scale = 2;
+ if (testtype == 2) {
+ alu_num = MAX_NUM_ALUS_PER_CLAUSE;
+ alu_scale = 1;
+ }
+ for (; alu_num <= MAX_NUM_ALUS_PER_CLAUSE; alu_num *= alu_scale) {
/* Set number of alu insts per clause */
for (i = 0; i < NUM_ALU_CLAUSES; i++) {
@@ -801,8 +805,10 @@ void test_alu_quad_perf(adapter_t *adapt)
}
}
-void test_perf (adapter_t *adapt)
+void test_perf (adapter_t *adapt, int textype, int alutype)
{
- test_tex_quad_perf (adapt);
- test_alu_quad_perf (adapt);
+ if (textype)
+ test_tex_quad_perf (adapt, textype);
+ if (alutype)
+ test_alu_quad_perf (adapt, alutype);
}