[Mesa-dev] [PATCH 1/5] nv50, nvc0: replace resInfoCBSlot by auxCBSlot

Pierre Moreau pierre.morrow at free.fr
Wed Mar 16 23:45:50 UTC 2016


Acked-by: Pierre Moreau <pierre.morrow at free.fr>

On 09:55 PM - Mar 15 2016, Samuel Pitoiset wrote:
> Having two different variables for the driver constant buffer slot
> is confusing and really useless.
> 
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>  src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h         |  3 +--
>  .../drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp        |  4 ++--
>  .../drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp        | 12 ++++++------
>  src/gallium/drivers/nouveau/nouveau_compiler.c               |  2 --
>  src/gallium/drivers/nouveau/nv50/nv50_program.c              |  1 -
>  src/gallium/drivers/nouveau/nvc0/nvc0_program.c              |  4 +---
>  6 files changed, 10 insertions(+), 16 deletions(-)
> 
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h
> index 9f7d257..21523a2 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h
> @@ -160,7 +160,7 @@ struct nv50_ir_prog_info
>        uint8_t clipDistances;     /* number of clip distance outputs */
>        uint8_t cullDistances;     /* number of cull distance outputs */
>        int8_t genUserClip;        /* request user clip planes for ClipVertex */
> -      uint8_t auxCBSlot;         /* constant buffer index of UCP/draw data */
> +      uint8_t auxCBSlot;         /* driver constant buffer slot */
>        uint16_t ucpBase;          /* base address for UCPs */
>        uint16_t drawInfoBase;     /* base address for draw parameters */
>        uint8_t pointSize;         /* output index for PointSize */
> @@ -175,7 +175,6 @@ struct nv50_ir_prog_info
>        uint8_t globalAccess;      /* 1 for read, 2 for wr, 3 for rw */
>        bool fp64;                 /* program uses fp64 math */
>        bool nv50styleSurfaces;    /* generate gX[] access for raw buffers */
> -      uint8_t resInfoCBSlot;     /* cX[] used for tex handles, surface info */
>        uint16_t texBindBase;      /* base address for tex handles (nve4) */
>        uint16_t suInfoBase;       /* base address for surface info (nve4) */
>        uint16_t sampleInfoBase;   /* base address for sample positions */
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
> index 12c5f69..5a46ede 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
> @@ -682,7 +682,7 @@ void NV50LoweringPreSSA::loadTexMsInfo(uint32_t off, Value **ms,
>                                         Value **ms_x, Value **ms_y) {
>     // This loads the texture-indexed ms setting from the constant buffer
>     Value *tmp = new_LValue(func, FILE_GPR);
> -   uint8_t b = prog->driver->io.resInfoCBSlot;
> +   uint8_t b = prog->driver->io.auxCBSlot;
>     off += prog->driver->io.suInfoBase;
>     if (prog->getType() > Program::TYPE_VERTEX)
>        off += 16 * 2 * 4;
> @@ -1174,7 +1174,7 @@ NV50LoweringPreSSA::handleRDSV(Instruction *i)
>        bld.mkLoad(TYPE_F32,
>                   def,
>                   bld.mkSymbol(
> -                       FILE_MEMORY_CONST, prog->driver->io.resInfoCBSlot,
> +                       FILE_MEMORY_CONST, prog->driver->io.auxCBSlot,
>                         TYPE_U32, prog->driver->io.sampleInfoBase + 4 * idx),
>                   off);
>        break;
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> index d0936d8..d879339 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> @@ -600,7 +600,7 @@ NVC0LoweringPass::visit(BasicBlock *bb)
>  inline Value *
>  NVC0LoweringPass::loadTexHandle(Value *ptr, unsigned int slot)
>  {
> -   uint8_t b = prog->driver->io.resInfoCBSlot;
> +   uint8_t b = prog->driver->io.auxCBSlot;
>     uint32_t off = prog->driver->io.texBindBase + slot * 4;
>     return bld.
>        mkLoadv(TYPE_U32, bld.mkSymbol(FILE_MEMORY_CONST, b, TYPE_U32, off), ptr);
> @@ -1204,7 +1204,7 @@ NVC0LoweringPass::handleCasExch(Instruction *cas, bool needCctl)
>  inline Value *
>  NVC0LoweringPass::loadResInfo32(Value *ptr, uint32_t off)
>  {
> -   uint8_t b = prog->driver->io.resInfoCBSlot;
> +   uint8_t b = prog->driver->io.auxCBSlot;
>     off += prog->driver->io.suInfoBase;
>     return bld.
>        mkLoadv(TYPE_U32, bld.mkSymbol(FILE_MEMORY_CONST, b, TYPE_U32, off), ptr);
> @@ -1213,7 +1213,7 @@ NVC0LoweringPass::loadResInfo32(Value *ptr, uint32_t off)
>  inline Value *
>  NVC0LoweringPass::loadResInfo64(Value *ptr, uint32_t off)
>  {
> -   uint8_t b = prog->driver->io.resInfoCBSlot;
> +   uint8_t b = prog->driver->io.auxCBSlot;
>     off += prog->driver->io.suInfoBase;
>  
>     if (ptr)
> @@ -1226,7 +1226,7 @@ NVC0LoweringPass::loadResInfo64(Value *ptr, uint32_t off)
>  inline Value *
>  NVC0LoweringPass::loadResLength32(Value *ptr, uint32_t off)
>  {
> -   uint8_t b = prog->driver->io.resInfoCBSlot;
> +   uint8_t b = prog->driver->io.auxCBSlot;
>     off += prog->driver->io.suInfoBase;
>  
>     if (ptr)
> @@ -1540,7 +1540,7 @@ NVC0LoweringPass::handleSurfaceOpNVE4(TexInstruction *su)
>        call->indirect = 1;
>        call->absolute = 1;
>        call->setSrc(0, bld.mkSymbol(FILE_MEMORY_CONST,
> -                                   prog->driver->io.resInfoCBSlot, TYPE_U32,
> +                                   prog->driver->io.auxCBSlot, TYPE_U32,
>                                     prog->driver->io.suInfoBase + base));
>        call->setSrc(1, r[2]);
>        call->setSrc(2, r[4]);
> @@ -1715,7 +1715,7 @@ NVC0LoweringPass::handleRDSV(Instruction *i)
>        bld.mkLoad(TYPE_F32,
>                   i->getDef(0),
>                   bld.mkSymbol(
> -                       FILE_MEMORY_CONST, prog->driver->io.resInfoCBSlot,
> +                       FILE_MEMORY_CONST, prog->driver->io.auxCBSlot,
>                         TYPE_U32, prog->driver->io.sampleInfoBase +
>                         4 * sym->reg.data.sv.index),
>                   off);
> diff --git a/src/gallium/drivers/nouveau/nouveau_compiler.c b/src/gallium/drivers/nouveau/nouveau_compiler.c
> index cd44aa1..ca73fd1 100644
> --- a/src/gallium/drivers/nouveau/nouveau_compiler.c
> +++ b/src/gallium/drivers/nouveau/nouveau_compiler.c
> @@ -114,8 +114,6 @@ nouveau_codegen(int chipset, int type, struct tgsi_token tokens[],
>  
>     info.io.auxCBSlot = 15;
>     info.io.ucpBase = NV50_CB_AUX_UCP_OFFSET;
> -
> -   info.io.resInfoCBSlot = 15;
>     info.io.suInfoBase = NV50_CB_AUX_TEX_MS_OFFSET;
>     info.io.msInfoCBSlot = 15;
>     info.io.msInfoBase = NV50_CB_AUX_MS_OFFSET;
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_program.c b/src/gallium/drivers/nouveau/nv50/nv50_program.c
> index a67ef28..3444b31 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_program.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_program.c
> @@ -335,7 +335,6 @@ nv50_program_translate(struct nv50_program *prog, uint16_t chipset,
>     info->io.ucpBase = NV50_CB_AUX_UCP_OFFSET;
>     info->io.genUserClip = prog->vp.clpd_nr;
>  
> -   info->io.resInfoCBSlot = 15;
>     info->io.suInfoBase = NV50_CB_AUX_TEX_MS_OFFSET;
>     info->io.sampleInfoBase = NV50_CB_AUX_SAMPLE_OFFSET;
>     info->io.msInfoCBSlot = 15;
> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
> index bc884d6..48e3475 100644
> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
> @@ -540,12 +540,11 @@ nvc0_program_translate(struct nvc0_program *prog, uint16_t chipset,
>  
>     if (prog->type == PIPE_SHADER_COMPUTE) {
>        if (chipset >= NVISA_GK104_CHIPSET) {
> -         info->io.resInfoCBSlot = 0;
> +         info->io.auxCBSlot = 0;
>           info->io.texBindBase = NVE4_CP_INPUT_TEX(0);
>           info->io.suInfoBase = NVE4_CP_INPUT_SUF(0);
>           info->prop.cp.gridInfoBase = NVE4_CP_INPUT_GRID_INFO(0);
>        } else {
> -         info->io.resInfoCBSlot = 15;
>           info->io.suInfoBase = 512;
>        }
>        info->io.msInfoCBSlot = 0;
> @@ -555,7 +554,6 @@ nvc0_program_translate(struct nvc0_program *prog, uint16_t chipset,
>           info->io.texBindBase = 0x20;
>           info->io.suInfoBase = 0; /* TODO */
>        }
> -      info->io.resInfoCBSlot = 15;
>        info->io.sampleInfoBase = 256 + 128;
>        info->io.suInfoBase = 512;
>        info->io.msInfoCBSlot = 15;
> -- 
> 2.7.3
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160317/44e497cd/attachment.sig>


More information about the mesa-dev mailing list