aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Romanick <ian.d.romanick@intel.com>2009-10-20 10:54:39 -0700
committerIan Romanick <ian.d.romanick@intel.com>2009-10-20 12:19:23 -0700
commite98ccec6ef6ed8dc6eea854f522934d79a265163 (patch)
treee023e430ded4bc970b4d7f94eef59f80150d5772
parent7cc947e5e15912dac419867b9e6a0f44c2232025 (diff)
Add simple ARL shader test
-rw-r--r--tests/all.tests1
-rw-r--r--tests/shaders/generic/arl.vpfp23
2 files changed, 24 insertions, 0 deletions
diff --git a/tests/all.tests b/tests/all.tests
index fb1a057e..36b3f76b 100644
--- a/tests/all.tests
+++ b/tests/all.tests
@@ -157,6 +157,7 @@ shaders['fp-generic'] = fpgeneric
vpfpgeneric = Group()
def make_vpfpgeneric(name):
return PlainExecTest([testBinDir + 'vpfp-generic', '-auto', testBinDir + '../tests/shaders/generic/' + name])
+vpfpgeneric['arl'] = make_vpfpgeneric('arl.vpfp')
vpfpgeneric['big-param'] = make_vpfpgeneric('big-param.vpfp')
vpfpgeneric['dataflow-bug'] = make_vpfpgeneric('dataflow-bug.vpfp')
vpfpgeneric['fogcoord-dp3'] = make_vpfpgeneric('fogcoord-dp3.vpfp')
diff --git a/tests/shaders/generic/arl.vpfp b/tests/shaders/generic/arl.vpfp
new file mode 100644
index 00000000..4a639122
--- /dev/null
+++ b/tests/shaders/generic/arl.vpfp
@@ -0,0 +1,23 @@
+; Detects whether or not the implementation correctly uses floor() for ARL
+; or incorrectly uses round().
+
+!!ARBvp1.0
+OPTION ARB_position_invariant;
+
+ADDRESS A0;
+PARAM p[2] = { program.local[0..1] };
+
+ARL A0.x, program.local[2].x;
+MOV result.color, p[A0.x];
+END
+
+!!ARBfp1.0
+MOV result.color, fragment.color;
+END
+
+!!test
+vertex.local[0] 0.0 1.0 0.0 1.0
+vertex.local[1] 1.0 0.0 0.0 1.0
+vertex.local[2] 0.99999 0.0 0.0 0.0
+expected 0.0 1.0 0.0 1.0
+