mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 21:00:16 +01:00
mesa: Fix ff fragment shader inputs calculation when enabling a VS.
The FF VS generation happens just after the FF FS generation in state.c, so the ctx->VP._Current value is for the previous state update's vertex shader, not the one that will be chosen as a result of this state update. The vertexShader and vertexProgram variables should be accurately telling us whether there's going to be a ctx->VP._Current (except on _MaintainTnlProgram drivers, where it's always true). The glsl-vs-statechange-1 test was created to test for this, but it turns out that the bug is hidden by the fact that we call _mesa_update_state() twice per draw call -- once from _mesa_valid_to_render() and once from vbo_draw_arrays(), and the second one was fixing up the first one. Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
parent
96ca6a6262
commit
ef1854d090
1 changed files with 1 additions and 2 deletions
|
|
@ -330,8 +330,7 @@ static GLbitfield get_fp_input_mask( struct gl_context *ctx )
|
|||
/* _NEW_RENDERMODE */
|
||||
fp_inputs = (FRAG_BIT_COL0 | FRAG_BIT_TEX0);
|
||||
}
|
||||
else if (!(vertexProgram || vertexShader) ||
|
||||
!ctx->VertexProgram._Current) {
|
||||
else if (!(vertexProgram || vertexShader)) {
|
||||
/* Fixed function vertex logic */
|
||||
/* _NEW_ARRAY */
|
||||
GLbitfield varying_inputs = ctx->varying_vp_inputs;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue