On Thu, Jun 19, 2014 at 10:52 AM, Jordan Justen <[email protected]> wrote: > Make sure ARB_shader_image_load_store is supported before calling > glMemoryBarrier. > > Signed-off-by: Jordan Justen <[email protected]> > --- > tests/shaders/shader_runner.c | 21 +++++++++++++++++---- > 1 file changed, 17 insertions(+), 4 deletions(-) > > diff --git a/tests/shaders/shader_runner.c b/tests/shaders/shader_runner.c > index 5fd76f2..e12a742 100644 > --- a/tests/shaders/shader_runner.c > +++ b/tests/shaders/shader_runner.c > @@ -129,6 +129,7 @@ GLchar *prog_err_info = NULL; > GLuint vao = 0; > GLuint fbo = 0; > GLint render_width, render_height; > +bool ARB_shader_image_load_store_supported = false; > > enum states { > none = 0, > @@ -2044,6 +2045,17 @@ probe_atomic_counter(GLint counter_num, const char > *op, uint32_t value) > return true; > } > > +static void > +dispatch_compute(int x, int y, int z) > +{ > + program_must_be_in_use(); > + if (ARB_shader_image_load_store_supported) > + glMemoryBarrier(GL_ALL_BARRIER_BITS); > + glDispatchCompute(x, y, z); > + if (ARB_shader_image_load_store_supported) > + glMemoryBarrier(GL_ALL_BARRIER_BITS); > +} > + > enum piglit_result > piglit_display(void) > { > @@ -2089,10 +2101,7 @@ piglit_display(void) > } else if (sscanf(line, > "compute %d %d %d", > &x, &y, &z) == 3) { > - program_must_be_in_use(); > - glMemoryBarrier(GL_ALL_BARRIER_BITS); > - glDispatchCompute(x, y, z); > - glMemoryBarrier(GL_ALL_BARRIER_BITS); > + dispatch_compute(x, y, z); > } else if (string_match("draw rect tex", line)) { > program_must_be_in_use(); > get_floats(line + 13, c, 8); > @@ -2409,6 +2418,10 @@ piglit_init(int argc, char **argv) > glGetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS, > &gl_max_vertex_uniform_components); > glGetIntegerv(GL_MAX_CLIP_PLANES, &gl_max_clip_planes); > + > + ARB_shader_image_load_store_supported = > + gl_version.num >= 42 || > + > piglit_is_extension_supported("GL_ARB_shader_image_load_store"); > #else > glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_VECTORS, > &gl_max_fragment_uniform_components); > -- > 2.0.0 > > _______________________________________________ > Piglit mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/piglit
Reviewed-by: Anuj Phogat <[email protected]> _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
