Module: wine Branch: master Commit: ef6e9a6bb450c667e35cafc7d24f0bb8b51985ef URL: https://gitlab.winehq.org/wine/wine/-/commit/ef6e9a6bb450c667e35cafc7d24f0bb...
Author: Zebediah Figura zfigura@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)