r600g: move selecting the pixel shader earlier.
In order to detect that a pixel shader has a prim id input when we have no geometry shader we need to reorder the shader selection so the pixel shader is selected first, then the vertex shader key can take into account the primitive id input requirement and lack of geom shader. Reviewed-by: Glenn Kennard <glenn.kennard@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
5c83a0d2ce
commit
cc2fc095bf
1 changed files with 4 additions and 3 deletions
|
|
@ -1170,6 +1170,10 @@ static bool r600_update_derived_state(struct r600_context *rctx)
|
|||
}
|
||||
}
|
||||
|
||||
r600_shader_select(ctx, rctx->ps_shader, &ps_dirty);
|
||||
if (unlikely(!rctx->ps_shader->current))
|
||||
return false;
|
||||
|
||||
update_gs_block_state(rctx, rctx->gs_shader != NULL);
|
||||
|
||||
if (rctx->gs_shader) {
|
||||
|
|
@ -1232,9 +1236,6 @@ static bool r600_update_derived_state(struct r600_context *rctx)
|
|||
}
|
||||
}
|
||||
|
||||
r600_shader_select(ctx, rctx->ps_shader, &ps_dirty);
|
||||
if (unlikely(!rctx->ps_shader->current))
|
||||
return false;
|
||||
|
||||
if (unlikely(ps_dirty || rctx->pixel_shader.shader != rctx->ps_shader->current ||
|
||||
rctx->rasterizer->sprite_coord_enable != rctx->ps_shader->current->sprite_coord_enable ||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue