Zebediah Figura : wined3d/atifs: Move fragment program compilation from set_tex_op_atifs() to atifs_apply_draw_state().
Module: wine Branch: master Commit: ef6e9a6bb450c667e35cafc7d24f0bb8b51985ef URL: https://gitlab.winehq.org/wine/wine/-/commit/ef6e9a6bb450c667e35cafc7d24f0bb... Author: Zebediah Figura <zfigura(a)codeweavers.com> Date: Sat Nov 11 22:30:44 2023 -0600 wined3d/atifs: Move fragment program compilation from set_tex_op_atifs() to atifs_apply_draw_state(). --- dlls/wined3d/ati_fragment_shader.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dlls/wined3d/ati_fragment_shader.c b/dlls/wined3d/ati_fragment_shader.c index d08e1578a67..4bdd0102682 100644 --- a/dlls/wined3d/ati_fragment_shader.c +++ b/dlls/wined3d/ati_fragment_shader.c @@ -1011,6 +1011,11 @@ static void atifs_stage_constant(struct wined3d_context *context, const struct w } static void set_tex_op_atifs(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) +{ + context->shader_update_mask |= (1u << WINED3D_SHADER_TYPE_PIXEL); +} + +static void atifs_update_shader(struct wined3d_context *context, const struct wined3d_state *state) { struct atifs_context_private_data *ctx_priv = context->fragment_pipe_data; const struct atifs_ffp_desc *desc, *last_shader = ctx_priv->last_shader; @@ -1233,6 +1238,10 @@ static void atifs_apply_draw_state(struct wined3d_context *context, const struct gl_info->gl_ops.gl.p_glEnable(GL_FRAGMENT_SHADER_ATI); checkGLcall("glEnable(GL_FRAGMENT_SHADER_ATI)"); + if (context->shader_update_mask & (1u << WINED3D_SHADER_TYPE_PIXEL)) + atifs_update_shader(context, state); + + /* Note that atifs_update_shader() may set the constant update mask. */ constant_update_mask = context->constant_update_mask; if (constant_update_mask & WINED3D_SHADER_CONST_FFP_PS)
participants (1)
-
Alexandre Julliard