r600g: add draw_vbo check for a NULL pixel shader

Taken from radeonsi, required to remove dummy pixel shader in the next patch

Signed-off-by: Constantine Kharlamov <Hi-Angel@yandex.ru>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Constantine Kharlamov 2017-04-10 23:04:36 +03:00 committed by Marek Olšák
parent 22de96680c
commit 544b40089b
4 changed files with 10 additions and 2 deletions

View file

@ -471,6 +471,7 @@ static void *evergreen_create_rs_state(struct pipe_context *ctx,
rs->clip_halfz = state->clip_halfz;
rs->flatshade = state->flatshade;
rs->sprite_coord_enable = state->sprite_coord_enable;
rs->rasterizer_discard = state->rasterizer_discard;
rs->two_side = state->light_twoside;
rs->clip_plane_enable = state->clip_plane_enable;
rs->pa_sc_line_stipple = state->line_stipple_enable ?

View file

@ -279,6 +279,7 @@ struct r600_rasterizer_state {
bool scissor_enable;
bool multisample_enable;
bool clip_halfz;
bool rasterizer_discard;
};
struct r600_poly_offset_state {

View file

@ -470,6 +470,7 @@ static void *r600_create_rs_state(struct pipe_context *ctx,
rs->clip_halfz = state->clip_halfz;
rs->flatshade = state->flatshade;
rs->sprite_coord_enable = state->sprite_coord_enable;
rs->rasterizer_discard = state->rasterizer_discard;
rs->two_side = state->light_twoside;
rs->clip_plane_enable = state->clip_plane_enable;
rs->pa_sc_line_stipple = state->line_stipple_enable ?
@ -622,7 +623,7 @@ static void *r600_create_sampler_state(struct pipe_context *ctx,
static struct pipe_sampler_view *
texture_buffer_sampler_view(struct r600_pipe_sampler_view *view,
unsigned width0, unsigned height0)
{
struct r600_texture *tmp = (struct r600_texture*)view->base.texture;
int stride = util_format_get_blocksize(view->base.format);

View file

@ -1712,7 +1712,12 @@ static void r600_draw_vbo(struct pipe_context *ctx, const struct pipe_draw_info
return;
}
if (unlikely(!rctx->vs_shader || !rctx->ps_shader)) {
if (unlikely(!rctx->vs_shader)) {
assert(0);
return;
}
if (unlikely(!rctx->ps_shader &&
(!rctx->rasterizer || !rctx->rasterizer->rasterizer_discard))) {
assert(0);
return;
}