Mesa (master): intel/fs: Don't copy-propagate stride=0 sources into ddx/ddy

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Sep 2 20:37:24 UTC 2020


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

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Wed Sep  2 10:13:16 2020 -0500

intel/fs: Don't copy-propagate stride=0 sources into ddx/ddy

This can come up if, for instance, the shader does a derivative of a
uniform or flat input.  Ideally, NIR would use divergence analysis to
get rid of the derivative in this case but it doesn't right now.  This
fixes a crash in F1 2017.

Cc: mesa-stable at lists.freedesktop.org
Reported-by: Marcin Ślusarz <marcin.slusarz at intel.com>
Tested-by: Marcin Ślusarz <marcin.slusarz at intel.com>
Reviewed-by: Matt Turner <mattst88 at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6564>

---

 src/intel/compiler/brw_fs_copy_propagation.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intel/compiler/brw_fs_copy_propagation.cpp b/src/intel/compiler/brw_fs_copy_propagation.cpp
index a33043573a5..31e55e64a27 100644
--- a/src/intel/compiler/brw_fs_copy_propagation.cpp
+++ b/src/intel/compiler/brw_fs_copy_propagation.cpp
@@ -524,7 +524,7 @@ fs_visitor::try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry)
     */
    const unsigned entry_stride = (entry->src.file == FIXED_GRF ? 1 :
                                   entry->src.stride);
-   if (instruction_requires_packed_data(inst) && entry_stride > 1)
+   if (instruction_requires_packed_data(inst) && entry_stride != 1)
       return false;
 
    /* Bail if the result of composing both strides would exceed the



More information about the mesa-commit mailing list