diff options
author | Francisco Jerez <currojerez@riseup.net> | 2016-12-29 18:07:32 -0800 |
---|---|---|
committer | Francisco Jerez <currojerez@riseup.net> | 2017-01-03 12:44:05 -0800 |
commit | 7780cc56d3fffed59889cb601c7c508b0703958a (patch) | |
tree | 813a3d60f08b6da31482816a8dcc66ac12aae3bc | |
parent | 4cd9567ce50a4ee192cc803ad168a61db99878b6 (diff) | |
download | piglit-7780cc56d3fffed59889cb601c7c508b0703958a.tar.gz |
arb_shader_image_load_store/shader-mem-barrier: Add explicit memoryBarrier to volatile subtest.
This makes sure that reads and writes of the volatile-qualified images
occur in the expected order. It's unclear whether the GLSL volatile
qualifier was intended to have the required memory ordering
implications as it would in C. I've bugged Khronos about it [1], but
because I haven't seen any update on the bug report for a while, this
changes the test temporarily to behave as expected regardless of what
the resolution of the spec bug is. This avoids some annoying
intermittent failures on the i965 driver which doesn't provide any
special memory ordering guarantees for volatile-qualified memory.
[1] https://cvs.khronos.org/bugzilla/show_bug.cgi?id=15875
Tested-by: Mark Janes <mark.a.janes@intel.com>
-rw-r--r-- | tests/spec/arb_shader_image_load_store/shader-mem-barrier.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tests/spec/arb_shader_image_load_store/shader-mem-barrier.c b/tests/spec/arb_shader_image_load_store/shader-mem-barrier.c index ed086403b..0c83ab726 100644 --- a/tests/spec/arb_shader_image_load_store/shader-mem-barrier.c +++ b/tests/spec/arb_shader_image_load_store/shader-mem-barrier.c @@ -31,8 +31,8 @@ * locations until an inconsistency is observed or the test runs to * completion. * - * The test is repeated for the "volatile" qualifier with no barriers, - * for all execution stages and for different relative arrangements of + * The test is repeated for the "volatile" qualifier, for all + * execution stages and for different relative arrangements of * producer and monitor threads to account for implementations with * varying levels of parallelism and with caches of different sizes. * @@ -84,7 +84,7 @@ struct image_test_info { const struct image_test_info image_tests[] = { { "control", "", "", true }, { "'coherent' qualifier", "coherent", "memoryBarrier()", false }, - { "'volatile' qualifier", "volatile", "", false }, + { "'volatile' qualifier", "volatile", "memoryBarrier()", false }, { 0 } }; |