[Mesa-dev] [PATCH 2/5] nv50/ir: make use of auxCBSlot instead of magic numbers
Hans de Goede
hdegoede at redhat.com
Wed Mar 16 09:38:36 UTC 2016
Hi,
On 15-03-16 21:55, Samuel Pitoiset wrote:
> This avoids using magic numbers for the driver constbuf slot which
> is always 15 except for compute shaders on gk104+ where the slot 0
> is used.
>
> For gk104+, some special compute-related values like the thread
> index are uploaded to screen->parm which is currently bound on c0.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
> src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 3 ++-
> src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 3 ++-
> 2 files changed, 4 insertions(+), 2 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 d284446..4bebfdc 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp
> @@ -2178,7 +2178,8 @@ Converter::getResourceBase(const int r)
>
> switch (r) {
> case TGSI_RESOURCE_GLOBAL:
> - sym = new_Symbol(prog, nv50_ir::FILE_MEMORY_GLOBAL, 15);
> + sym = new_Symbol(prog, nv50_ir::FILE_MEMORY_GLOBAL,
> + info->io.auxCBSlot);
Note this is dead code, see patch 6/6 of the patch-set I just send.
Also do we need to specify a slot here at all? The new code paths
to re-enable global mem with clover do not use this and work fine
in my testing on a gk107.
> break;
> case TGSI_RESOURCE_LOCAL:
> assert(prog->getType() == Program::TYPE_COMPUTE);
> 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 d879339..e0af4c0 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp
> @@ -1698,7 +1698,8 @@ NVC0LoweringPass::handleRDSV(Instruction *i)
> }
> addr += prog->driver->prop.cp.gridInfoBase;
> bld.mkLoad(TYPE_U32, i->getDef(0),
> - bld.mkSymbol(FILE_MEMORY_CONST, 0, TYPE_U32, addr), NULL);
> + bld.mkSymbol(FILE_MEMORY_CONST, prog->driver->io.auxCBSlot,
> + TYPE_U32, addr), NULL);
> break;
You're changing functionality here not just replacing a magic number,
the commit msg does not reflect this. Maybe do this in a separate patch ?
Regards,
Hans
More information about the mesa-dev
mailing list