Module: wine Branch: master Commit: 3e0037e31a5a07c3a35bd0ee01caec4be6f4f14a URL: http://source.winehq.org/git/wine.git/?a=commit;h=3e0037e31a5a07c3a35bd0ee01...
Author: Józef Kucia jkucia@codeweavers.com Date: Thu Feb 2 12:43:41 2017 +0100
wined3d: Introduce shader_select_compute() in shader_backend_ops.
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wined3d/arb_program_shader.c | 6 ++++++ dlls/wined3d/glsl_shader.c | 8 ++++++++ dlls/wined3d/shader.c | 3 +++ dlls/wined3d/wined3d_private.h | 2 ++ 4 files changed, 19 insertions(+)
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index d433f8c..7fc97b5 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -4698,6 +4698,11 @@ static void shader_arb_select(void *shader_priv, struct wined3d_context *context } }
+static void shader_arb_select_compute(void *shader_priv, struct wined3d_context *context, + const struct wined3d_state *state) +{ + ERR("Compute pipeline not supported by the ARB shader backend.\n"); +}
/* Context activation is done by the caller. */ static void shader_arb_disable(void *shader_priv, struct wined3d_context *context) @@ -5659,6 +5664,7 @@ const struct wined3d_shader_backend_ops arb_program_shader_backend = { shader_arb_handle_instruction, shader_arb_select, + shader_arb_select_compute, shader_arb_disable, shader_arb_update_float_vertex_constants, shader_arb_update_float_pixel_constants, diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index aebf96a..2df308e 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -8497,6 +8497,13 @@ static void shader_glsl_select(void *shader_priv, struct wined3d_context *contex } }
+/* Context activation is done by the caller. */ +static void shader_glsl_select_compute(void *shader_priv, struct wined3d_context *context, + const struct wined3d_state *state) +{ + FIXME("Compute pipeline not supported yet.\n"); +} + /* "context" is not necessarily the currently active context. */ static void shader_glsl_invalidate_current_program(struct wined3d_context *context) { @@ -9152,6 +9159,7 @@ const struct wined3d_shader_backend_ops glsl_shader_backend = { shader_glsl_handle_instruction, shader_glsl_select, + shader_glsl_select_compute, shader_glsl_disable, shader_glsl_update_float_vertex_constants, shader_glsl_update_float_pixel_constants, diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 0368ae1..00ed452 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -2665,6 +2665,8 @@ struct shader_none_priv };
static void shader_none_handle_instruction(const struct wined3d_shader_instruction *ins) {} +static void shader_none_select_compute(void *shader_priv, struct wined3d_context *context, + const struct wined3d_state *state) {} static void shader_none_update_float_vertex_constants(struct wined3d_device *device, UINT start, UINT count) {} static void shader_none_update_float_pixel_constants(struct wined3d_device *device, UINT start, UINT count) {} static void shader_none_load_constants(void *shader_priv, struct wined3d_context *context, @@ -2786,6 +2788,7 @@ const struct wined3d_shader_backend_ops none_shader_backend = { shader_none_handle_instruction, shader_none_select, + shader_none_select_compute, shader_none_disable, shader_none_update_float_vertex_constants, shader_none_update_float_pixel_constants, diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 2b70bad..7209ce8 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1208,6 +1208,8 @@ struct wined3d_shader_backend_ops void (*shader_handle_instruction)(const struct wined3d_shader_instruction *); void (*shader_select)(void *shader_priv, struct wined3d_context *context, const struct wined3d_state *state); + void (*shader_select_compute)(void *shader_priv, struct wined3d_context *context, + const struct wined3d_state *state); void (*shader_disable)(void *shader_priv, struct wined3d_context *context); void (*shader_update_float_vertex_constants)(struct wined3d_device *device, UINT start, UINT count); void (*shader_update_float_pixel_constants)(struct wined3d_device *device, UINT start, UINT count);