Module: Mesa
Branch: master
Commit: 42aee8f4f68d9fd3ece5ece57f23f63a60e7d1fa
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=42aee8f4f68d9fd3ece5ece57f23f63a60e7d1fa

Author: Brian Paul <bri...@vmware.com>
Date:   Thu May 17 19:57:21 2018 -0600

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: 8fde9429c36b75 ("tgsi: fix incorrect tgsi_shader_info::num_tokens
computation")
Tested-by: Roland Scheidegger <srol...@vmware.com>
Reviewed-by: Roland Scheidegger <srol...@vmware.com>

---

 src/gallium/drivers/llvmpipe/lp_state_fs.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c 
b/src/gallium/drivers/llvmpipe/lp_state_fs.c
index 74b8d4dd96..91b68e7c96 100644
--- a/src/gallium/drivers/llvmpipe/lp_state_fs.c
+++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c
@@ -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 &&

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to