[Mesa-dev] [PATCH] nvc0: use nve4_p2mf_push_linear() to reduce code duplication
Samuel Pitoiset
samuel.pitoiset at gmail.com
Mon Jul 25 22:21:50 UTC 2016
On 07/26/2016 12:20 AM, Ilia Mirkin wrote:
> Sounds reasonable. Pretty sure those NV_VRAM_DOMAIN thingies should
> just be txc->domain. With that fixed,
IIRC, this NV_VRAM_DOMAIN thing is for gk20a, maybe this is going to fix
some tests as a side effect?
>
> Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
>
> On Mon, Jul 25, 2016 at 6:17 PM, Samuel Pitoiset
> <samuel.pitoiset at gmail.com> wrote:
>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>> ---
>> src/gallium/drivers/nouveau/nvc0/nvc0_tex.c | 45 ++++++-----------------------
>> 1 file changed, 9 insertions(+), 36 deletions(-)
>>
>> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c b/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
>> index 8abf1b5..25a5a8e 100644
>> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
>> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
>> @@ -551,7 +551,6 @@ nvc0_validate_tic(struct nvc0_context *nvc0, int s)
>> static bool
>> nve4_validate_tic(struct nvc0_context *nvc0, unsigned s)
>> {
>> - struct nouveau_bo *txc = nvc0->screen->txc;
>> struct nouveau_pushbuf *push = nvc0->base.pushbuf;
>> unsigned i;
>> bool need_flush = false;
>> @@ -571,17 +570,9 @@ nve4_validate_tic(struct nvc0_context *nvc0, unsigned s)
>> if (tic->id < 0) {
>> tic->id = nvc0_screen_tic_alloc(nvc0->screen, tic);
>>
>> - PUSH_SPACE(push, 16);
>> - BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_DST_ADDRESS_HIGH), 2);
>> - PUSH_DATAh(push, txc->offset + (tic->id * 32));
>> - PUSH_DATA (push, txc->offset + (tic->id * 32));
>> - BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_LINE_LENGTH_IN), 2);
>> - PUSH_DATA (push, 32);
>> - PUSH_DATA (push, 1);
>> - BEGIN_1IC0(push, NVE4_P2MF(UPLOAD_EXEC), 9);
>> - PUSH_DATA (push, 0x1001);
>> - PUSH_DATAp(push, &tic->tic[0], 8);
>> -
>> + nve4_p2mf_push_linear(&nvc0->base, nvc0->screen->txc, tic->id * 32,
>> + NV_VRAM_DOMAIN(&nvc0->screen->base), 32,
>> + tic->tic);
>> need_flush = true;
>> } else
>> if (res->status & NOUVEAU_BUFFER_STATUS_GPU_WRITING) {
>> @@ -685,8 +676,6 @@ nvc0_validate_tsc(struct nvc0_context *nvc0, int s)
>> bool
>> nve4_validate_tsc(struct nvc0_context *nvc0, int s)
>> {
>> - struct nouveau_bo *txc = nvc0->screen->txc;
>> - struct nouveau_pushbuf *push = nvc0->base.pushbuf;
>> unsigned i;
>> bool need_flush = false;
>>
>> @@ -700,17 +689,10 @@ nve4_validate_tsc(struct nvc0_context *nvc0, int s)
>> if (tsc->id < 0) {
>> tsc->id = nvc0_screen_tsc_alloc(nvc0->screen, tsc);
>>
>> - PUSH_SPACE(push, 16);
>> - BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_DST_ADDRESS_HIGH), 2);
>> - PUSH_DATAh(push, txc->offset + 65536 + (tsc->id * 32));
>> - PUSH_DATA (push, txc->offset + 65536 + (tsc->id * 32));
>> - BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_LINE_LENGTH_IN), 2);
>> - PUSH_DATA (push, 32);
>> - PUSH_DATA (push, 1);
>> - BEGIN_1IC0(push, NVE4_P2MF(UPLOAD_EXEC), 9);
>> - PUSH_DATA (push, 0x1001);
>> - PUSH_DATAp(push, &tsc->tsc[0], 8);
>> -
>> + nve4_p2mf_push_linear(&nvc0->base, nvc0->screen->txc,
>> + 65536 + tsc->id * 32,
>> + NV_VRAM_DOMAIN(&nvc0->screen->base),
>> + 32, tsc->tsc);
>> need_flush = true;
>> }
>> nvc0->screen->tsc.lock[tsc->id / 32] |= 1 << (tsc->id % 32);
>> @@ -1142,7 +1124,6 @@ gm107_validate_surfaces(struct nvc0_context *nvc0,
>> struct nv04_resource *res = nv04_resource(view->resource);
>> struct nouveau_pushbuf *push = nvc0->base.pushbuf;
>> struct nvc0_screen *screen = nvc0->screen;
>> - struct nouveau_bo *txc = nvc0->screen->txc;
>> struct nv50_tic_entry *tic;
>>
>> tic = nv50_tic_entry(nvc0->images_tic[stage][slot]);
>> @@ -1154,16 +1135,8 @@ gm107_validate_surfaces(struct nvc0_context *nvc0,
>> tic->id = nvc0_screen_tic_alloc(nvc0->screen, tic);
>>
>> /* upload the texture view */
>> - PUSH_SPACE(push, 16);
>> - BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_DST_ADDRESS_HIGH), 2);
>> - PUSH_DATAh(push, txc->offset + (tic->id * 32));
>> - PUSH_DATA (push, txc->offset + (tic->id * 32));
>> - BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_LINE_LENGTH_IN), 2);
>> - PUSH_DATA (push, 32);
>> - PUSH_DATA (push, 1);
>> - BEGIN_1IC0(push, NVE4_P2MF(UPLOAD_EXEC), 9);
>> - PUSH_DATA (push, 0x1001);
>> - PUSH_DATAp(push, &tic->tic[0], 8);
>> + nve4_p2mf_push_linear(&nvc0->base, nvc0->screen->txc, tic->id * 32,
>> + NV_VRAM_DOMAIN(&nvc0->screen->base), 32, tic->tic);
>>
>> BEGIN_NVC0(push, NVC0_3D(TIC_FLUSH), 1);
>> PUSH_DATA (push, 0);
>> --
>> 2.8.0
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list