X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=test_util.cpp;h=096c07a426eb21018b7e9b73d97a4a8e7f8aca97;hb=5278bd9c038dd9f2d56b4de52c904426dfe0b6fe;hp=99ab731f6d7c1c3af31b93035b27618a770c4f27;hpb=3559b216df102fb518876e1d567e2a3558283d31;p=movit diff --git a/test_util.cpp b/test_util.cpp index 99ab731..096c07a 100644 --- a/test_util.cpp +++ b/test_util.cpp @@ -296,15 +296,14 @@ void EffectChainTester::internal_run(T *out_data, T *out_data2, T *out_data3, T T *data[4] = { out_data, out_data2, out_data3, out_data4 }; - glBindFramebuffer(GL_FRAMEBUFFER, fbo); - check_error(); for (unsigned i = 0; i < num_outputs; ++i) { T *ptr = data[i]; - glReadBuffer(GL_COLOR_ATTACHMENT0 + i); + glBindTexture(GL_TEXTURE_2D, texnum[i]); + check_error(); if (!epoxy_is_desktop_gl() && (format == GL_RED || format == GL_BLUE || format == GL_ALPHA)) { // GLES will only read GL_RGBA. T *temp = new T[width * height * 4]; - glReadPixels(0, 0, width, height, GL_RGBA, internal_format, temp); + glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, type, temp); check_error(); if (format == GL_ALPHA) { for (unsigned i = 0; i < width * height; ++i) { @@ -321,7 +320,7 @@ void EffectChainTester::internal_run(T *out_data, T *out_data2, T *out_data3, T } delete[] temp; } else { - glReadPixels(0, 0, width, height, format, internal_format, ptr); + glGetTexImage(GL_TEXTURE_2D, 0, format, type, ptr); check_error(); } @@ -545,4 +544,19 @@ bool DisableComputeShadersTemporarily::should_skip() return false; } +#ifdef HAVE_BENCHMARK +bool DisableComputeShadersTemporarily::should_skip(benchmark::State *benchmark_state) +{ + if (disable_compute_shaders) { + return false; + } + + if (!movit_compute_shaders_supported) { + benchmark_state->SkipWithError("Compute shaders not supported"); + return true; + } + return false; +} +#endif + } // namespace movit