The following patches implement a bunch of piglit tests for ARB_shader_image_load_store. I've pushed the same code to the image-load-store branch of my piglit tree [1]. It should exercise pretty much the whole functionality exposed by the extension.
The large number of supported built-ins, texture targets and formats leads to a combinatorial explosion in some tests giving over 8300 subtests in total when doing a full run. Because of this some tests implement a "quick" mode which is enabled when they are executed from tests/quick.py that limits the search space to a subset of more interesting combinations. This brings down the total number of subtests to some 1800 and the total run time to less than 25s on my system, which seems about reasonable to me. Maybe some things like the grid helper code introduced in patch 4 could be promoted to util/ if anyone else finds it useful, I don't know, it has little dependencies on the rest of the image_load_store code. I've been running this branch on a Kepler card with the nVidia proprietary driver (v331.38), and it's found quite a few bugs and crashes -- you can see the HTML summary from an almost full run here [2]. I also had the opportunity to run it shortly on an older radeon card and the results seemed a lot less promising. Thanks for your review. generated_tests/CMakeLists.txt | 6 +- generated_tests/gen_shader_image_load_store_tests.py | 807 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/all.py | 24 +++ tests/quick.py | 6 + tests/spec/CMakeLists.txt | 1 + tests/spec/arb_shader_image_load_store/CMakeLists.gl.txt | 35 +++ tests/spec/arb_shader_image_load_store/CMakeLists.txt | 1 + tests/spec/arb_shader_image_load_store/atomicity.c | 326 ++++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/bitcast.c | 166 +++++++++++++++ tests/spec/arb_shader_image_load_store/coherency.c | 228 ++++++++++++++++++++ tests/spec/arb_shader_image_load_store/common.c | 620 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/common.h | 140 ++++++++++++ tests/spec/arb_shader_image_load_store/dead-fragments.c | 249 ++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/early-z.c | 298 ++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/grid.c | 445 ++++++++++++++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/grid.h | 155 ++++++++++++++ tests/spec/arb_shader_image_load_store/host-mem-barrier.c | 1055 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/image.c | 759 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/image.h | 375 ++++++++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/indexing.c | 172 +++++++++++++++ tests/spec/arb_shader_image_load_store/invalid.c | 485 +++++++++++++++++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/layer.c | 221 +++++++++++++++++++ tests/spec/arb_shader_image_load_store/level.c | 195 +++++++++++++++++ tests/spec/arb_shader_image_load_store/max-images.c | 270 +++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/max-size.c | 197 +++++++++++++++++ tests/spec/arb_shader_image_load_store/minmax.c | 76 +++++++ tests/spec/arb_shader_image_load_store/qualifiers.c | 190 +++++++++++++++++ tests/spec/arb_shader_image_load_store/restrict.c | 179 ++++++++++++++++ tests/spec/arb_shader_image_load_store/semantics.c | 397 ++++++++++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/shader-mem-barrier.c | 222 +++++++++++++++++++ tests/spec/arb_shader_image_load_store/state.c | 480 +++++++++++++++++++++++++++++++++++++++++ tests/spec/arb_shader_image_load_store/unused.c | 178 ++++++++++++++++ tests/util/piglit-shader.c | 22 +- tests/util/piglit-shader.h | 1 + 34 files changed, 8978 insertions(+), 3 deletions(-) [1] http://cgit.freedesktop.org/~currojerez/piglit/log/?h=image-load-store [2] http://annarchy.freedesktop.org/~currojerez/piglit-summary-image_load_store-kepler/ _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
