[Nouveau] [PATCH mesa v2 1/3] nouveau: codegen: Disable more old resource handling code

Samuel Pitoiset samuel.pitoiset at gmail.com
Thu Mar 17 09:20:23 UTC 2016


Series is:

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

On 03/17/2016 10:13 AM, Hans de Goede wrote:
> Commit c3083c7082 ("nv50/ir: add support for BUFFER accesses") disabled /
> commented out some of the old resource handling code, but not all of it.
>
> Effectively all of it is dead already, if we ever enter the old code
> paths in handeLOAD / handleSTORE / handleATOM we will get an exception
> due to trying to access the now always zero-sized resources vector.
>
> Disable all the dead code.
>
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
> ---
> Changes in v2:
> -Split out assert() on getFile() != BUFFER/MEMORY into a separate patch
> -Split out removal of TGSI_RESOURCE_* defines into a separate patch
> ---
>   src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 15 ++++++++++++---
>   1 file changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
> index 1e91ad3..41eb4e3 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
> @@ -856,12 +856,14 @@ public:
>      };
>      std::vector<TextureView> textureViews;
>
> +   /*
>      struct Resource {
>         uint8_t target; // TGSI_TEXTURE_*
>         bool raw;
>         uint8_t slot; // $surface index
>      };
>      std::vector<Resource> resources;
> +   */
>
>      struct MemoryFile {
>         uint8_t mem_type; // TGSI_MEMORY_TYPE_*
> @@ -1419,8 +1421,8 @@ private:
>      void handleLIT(Value *dst0[4]);
>      void handleUserClipPlanes();
>
> -   Symbol *getResourceBase(int r);
> -   void getResourceCoords(std::vector<Value *>&, int r, int s);
> +   // Symbol *getResourceBase(int r);
> +   // void getResourceCoords(std::vector<Value *>&, int r, int s);
>
>      void handleLOAD(Value *dst0[4]);
>      void handleSTORE();
> @@ -2161,6 +2163,7 @@ Converter::handleLIT(Value *dst0[4])
>      }
>   }
>
> +/* Keep this around for now as reference when adding img support
>   static inline bool
>   isResourceSpecial(const int r)
>   {
> @@ -2256,6 +2259,7 @@ partitionLoadStore(uint8_t comp[2], uint8_t size[2], uint8_t mask)
>      }
>      return n + 1;
>   }
> +*/
>
>   // For raw loads, granularity is 4 byte.
>   // Usage of the texture read mask on OP_SULDP is not allowed.
> @@ -2290,6 +2294,7 @@ Converter::handleLOAD(Value *dst0[4])
>         return;
>      }
>
> +/* Keep this around for now as reference when adding img support
>      getResourceCoords(off, r, 1);
>
>      if (isResourceRaw(code, r)) {
> @@ -2355,6 +2360,7 @@ Converter::handleLOAD(Value *dst0[4])
>      FOR_EACH_DST_ENABLED_CHANNEL(0, c, tgsi)
>         if (dst0[c] != def[c])
>            mkMov(dst0[c], def[tgsi.getSrc(0).getSwizzle(c)]);
> +*/
>   }
>
>   // For formatted stores, the write mask on OP_SUSTP can be used.
> @@ -2391,6 +2397,7 @@ Converter::handleSTORE()
>         return;
>      }
>
> +/* Keep this around for now as reference when adding img support
>      getResourceCoords(off, r, 0);
>      src = off;
>      const int s = src.size();
> @@ -2438,6 +2445,7 @@ Converter::handleSTORE()
>         mkTex(OP_SUSTP, getResourceTarget(code, r), code->resources[r].slot, 0,
>               dummy, src)->tex.mask = tgsi.getDst(0).getMask();
>      }
> +*/
>   }
>
>   // XXX: These only work on resources with the single-component u32/s32 formats.
> @@ -2484,7 +2492,7 @@ Converter::handleATOM(Value *dst0[4], DataType ty, uint16_t subOp)
>         return;
>      }
>
> -
> +/* Keep this around for now as reference when adding img support
>      getResourceCoords(srcv, r, 1);
>
>      if (isResourceSpecial(r)) {
> @@ -2512,6 +2520,7 @@ Converter::handleATOM(Value *dst0[4], DataType ty, uint16_t subOp)
>      for (int c = 0; c < 4; ++c)
>         if (dst0[c])
>            dst0[c] = dst; // not equal to rDst so handleInstruction will do mkMov
> +*/
>   }
>
>   void
>


More information about the Nouveau mailing list