[PATCH 2/5] wined3d: Check for a bound compute shader in wined3d_cs_exec_dispatch().
Henri Verbeet
hverbeet at codeweavers.com
Tue May 12 15:42:56 CDT 2020
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
dlls/wined3d/context_gl.c | 7 -------
dlls/wined3d/cs.c | 5 ++++-
2 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c
index c21ecfd5c32..b168e6026a6 100644
--- a/dlls/wined3d/context_gl.c
+++ b/dlls/wined3d/context_gl.c
@@ -3901,13 +3901,6 @@ void dispatch_compute(struct wined3d_device *device, const struct wined3d_state
wined3d_context_gl_apply_compute_state(context_gl, device, state);
- if (!state->shader[WINED3D_SHADER_TYPE_COMPUTE])
- {
- context_release(&context_gl->c);
- WARN("No compute shader bound, skipping dispatch.\n");
- return;
- }
-
if (parameters->indirect)
{
const struct wined3d_indirect_dispatch_parameters *indirect = ¶meters->u.indirect;
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
index 85e696d4d19..c704daaf57e 100644
--- a/dlls/wined3d/cs.c
+++ b/dlls/wined3d/cs.c
@@ -785,7 +785,10 @@ static void wined3d_cs_exec_dispatch(struct wined3d_cs *cs, const void *data)
const struct wined3d_cs_dispatch *op = data;
struct wined3d_state *state = &cs->state;
- cs->device->adapter->adapter_ops->adapter_dispatch_compute(cs->device, state, &op->parameters);
+ if (!state->shader[WINED3D_SHADER_TYPE_COMPUTE])
+ WARN("No compute shader bound, skipping dispatch.\n");
+ else
+ cs->device->adapter->adapter_ops->adapter_dispatch_compute(cs->device, state, &op->parameters);
if (op->parameters.indirect)
wined3d_resource_release(&op->parameters.u.indirect.buffer->resource);
--
2.20.1
More information about the wine-devel
mailing list