• Matteo Bruni's avatar
    wined3d: Don't skip FFP vertex pipeline state handlers when STATE_VDECL is dirty. · e106bbdd
    Matteo Bruni authored
    This fixes the non-default ARB shader backend, broken since
    2ddb6b66, although the
    fundamental issue was there long before that.
    
    Originally the STATE_VDECL handler did some bookkeeping (basically,
    computing what is now the stream info data) that's a prerequisite for
    running other state handlers. For this reason a somewhat complicated
    dance was put in place, with the dependent handlers returning right
    away until the STATE_VDECL handler could prepare everything up and the
    STATE_VDECL handler in turn explicitly calling these "downstream"
    handlers so that they could do their job. With the commit mentioned
    above the state dirty flags are cleared after the corresponding
    handlers are executed, which means that the relevant handlers are
    skipped twice and some stuff is never set up properly.
    
    Stream info is computed by context_apply_draw_state() before going
    through the state handler table for a long time now, getting rid of
    this obscure handler interdependency. So let's just get rid of the
    skipping altogether.
    Signed-off-by: 's avatarMatteo Bruni <mbruni@codeweavers.com>
    Signed-off-by: 's avatarHenri Verbeet <hverbeet@codeweavers.com>
    Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
    e106bbdd
state.c 327 KB