[Mesa-dev] [PATCH] nv50/ir: do not call textureMask() for non-texture ops

Ilia Mirkin imirkin at alum.mit.edu
Sun Nov 29 07:11:42 PST 2015


Under what circumstances can you get into this code and not be a texture op?

On Sun, Nov 29, 2015 at 9:57 AM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
> This fixes a segmentation fault with the 'test_surface_st' test from
> src/gallium/tests/trivial/compute.c on Fermi.
>
> While we are it, apply the same change for Tesla.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>  src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> index 7859c8e..7b183ea 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> @@ -2046,7 +2046,8 @@ RegAlloc::InsertConstraintsPass::texConstraintNVC0(TexInstruction *tex)
>  {
>     int n, s;
>
> -   textureMask(tex);
> +   if (isTextureOp(tex->op))
> +      textureMask(tex);
>
>     if (tex->op == OP_TXQ) {
>        s = tex->srcCount(0xff);
> @@ -2077,7 +2078,8 @@ RegAlloc::InsertConstraintsPass::texConstraintNV50(TexInstruction *tex)
>     if (pred)
>        tex->setPredicate(tex->cc, NULL);
>
> -   textureMask(tex);
> +   if (isTextureOp(tex->op))
> +      textureMask(tex);
>
>     assert(tex->defExists(0) && tex->srcExists(0));
>     // make src and def count match
> --
> 2.6.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list