nvc0: do not bind input params at compute state init on Fermi
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Sat, 17 Oct 2015 15:33:14 +0000 (17:33 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Sun, 18 Oct 2015 12:25:05 +0000 (14:25 +0200)
It looks like binding a constant buffer on compute overwrites the 3D
state. To avoid that, we already re-bind all the 3D constant buffers
after launching a compute grid but this is not enough.

Binding the constant buffer of input parameters for the compute state at
initialization corrupts the 3D constant buffers, and it's just useless
to bind it because this is not needed until we really launch a grid.

This fixes some piglit regressions related to interpolation tests
introduced in "nvc0: enable compute support by default on Fermi".

Fixes: 00d6186 (nvc0: enable compute support by default on Fermi)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/gallium/drivers/nouveau/nvc0/nvc0_compute.c

index 96d753c79f3b113cf271de2e498abe38c5d9d3af..e33af0426202e7aa15689330b7b293fd5bbed7a0 100644 (file)
@@ -105,14 +105,6 @@ nvc0_screen_compute_setup(struct nvc0_screen *screen,
    PUSH_DATAh(push, screen->text->offset);
    PUSH_DATA (push, screen->text->offset);
 
-   /* bind parameters buffer */
-   BEGIN_NVC0(push, NVC0_COMPUTE(CB_SIZE), 3);
-   PUSH_DATA (push, screen->parm->size);
-   PUSH_DATAh(push, screen->parm->offset);
-   PUSH_DATA (push, screen->parm->offset);
-   BEGIN_NVC0(push, NVC0_COMPUTE(CB_BIND), 1);
-   PUSH_DATA (push, (0 << 8) | 1);
-
    /* TODO: textures & samplers */
 
    return 0;