llvmpipe: fix check for a no-op shader

The tgsi_info.num_tokens fix broke llvmpipe's detection of no-op shaders.
Fix the code to check for num_instructions <= 1 instead.

Fixes: 8fde9429c3 ("tgsi: fix incorrect tgsi_shader_info::num_tokens
computation")
Tested-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
Brian Paul 2018-05-17 19:57:21 -06:00
parent 03c4816093
commit 42aee8f4f6
1 changed files with 4 additions and 2 deletions

View File

@ -2843,7 +2843,8 @@ generate_variant(struct llvmpipe_context *lp,
!shader->info.base.writes_samplemask
? TRUE : FALSE;
if ((shader->info.base.num_tokens <= 1) &&
/* if num_instructions == 1, it's a nop shader with only an END instruction */
if ((shader->info.base.num_instructions <= 1) &&
!key->depth.enabled && !key->stencil[0].enabled) {
variant->ps_inv_multiplier = 0;
} else {
@ -3478,7 +3479,8 @@ llvmpipe_init_fs_funcs(struct llvmpipe_context *llvmpipe)
boolean
llvmpipe_rasterization_disabled(struct llvmpipe_context *lp)
{
boolean null_fs = !lp->fs || lp->fs->info.base.num_tokens <= 1;
/* if num_instructions == 1, it's a nop shader with only an END instruction */
boolean null_fs = !lp->fs || lp->fs->info.base.num_instructions <= 1;
return (null_fs &&
!lp->depth_stencil->depth.enabled &&