diff --git a/src/dispatch.c b/src/dispatch.c index e6be1f99a4c43c4fb98437936b0c4b0930e48ecc..c069ad7c6de16e6da1fd2e36ac926f6b4227e04b 100644 --- a/src/dispatch.c +++ b/src/dispatch.c @@ -854,6 +854,9 @@ bool pl_dispatch_finish(struct pl_dispatch *dp, const struct pl_dispatch_params PL_ERR(dp, "Trying to dispatch using a compute shader with a " "non-storable target texture."); goto error; + } else if (tpars->storable && (dp->gpu->caps & PL_GPU_CAP_PARALLEL_COMPUTE)) { + if (sh_try_compute(sh, 16, 16, true, 0)) + PL_TRACE(dp, "Upgrading fragment shader to compute shader."); } struct pl_rect2d rc = params->rect;