[Mesa-dev] [Mesa-stable] [PATCH 2/2] radeonsi/compute: Use the compiler's COMPUTE_PGM_RSRC* register values
Tom Stellard
tom at stellard.net
Thu Nov 19 12:37:20 PST 2015
On Wed, Nov 18, 2015 at 05:43:31PM +0000, Emil Velikov wrote:
> Hi Tom,
>
> Please flip the order of the patches and drop the now patch 1/2 from
> the stable queue.
>
I'm confused about why I need to flip the order of the patches.
-Tom
> On 16 November 2015 at 20:03, Tom Stellard <thomas.stellard at amd.com> wrote:
> > The compiler has more information and is able to optimize the bits
> > it sets in these registers.
> >
> > CC: <mesa-stable at lists.freedesktop.org>
> > ---
> > src/gallium/drivers/radeonsi/si_compute.c | 37 ++++++-------------------------
> > src/gallium/drivers/radeonsi/si_shader.c | 2 ++
> > 2 files changed, 9 insertions(+), 30 deletions(-)
> >
> > diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c
> > index 2d551dd..a461b2c 100644
> > --- a/src/gallium/drivers/radeonsi/si_compute.c
> > +++ b/src/gallium/drivers/radeonsi/si_compute.c
> > @@ -34,11 +34,6 @@
> >
> > #define MAX_GLOBAL_BUFFERS 20
> >
> > -/* XXX: Even though we don't pass the scratch buffer via user sgprs any more
> > - * LLVM still expects that we specify 4 USER_SGPRS so it can remain compatible
> > - * with older mesa. */
> > -#define NUM_USER_SGPRS 4
> > -
> > struct si_compute {
> > struct si_context *ctx;
> >
> > @@ -238,7 +233,6 @@ static void si_launch_grid(
> > uint64_t kernel_args_va;
> > uint64_t scratch_buffer_va = 0;
> > uint64_t shader_va;
> > - unsigned arg_user_sgpr_count = NUM_USER_SGPRS;
> > unsigned i;
> > struct si_shader *shader = &program->shader;
> > unsigned lds_blocks;
> > @@ -366,19 +360,7 @@ static void si_launch_grid(
> > si_pm4_set_reg(pm4, R_00B830_COMPUTE_PGM_LO, shader_va >> 8);
> > si_pm4_set_reg(pm4, R_00B834_COMPUTE_PGM_HI, shader_va >> 40);
> >
> > - si_pm4_set_reg(pm4, R_00B848_COMPUTE_PGM_RSRC1,
> > - /* We always use at least 3 VGPRS, these come from
> > - * TIDIG_COMP_CNT.
> > - * XXX: The compiler should account for this.
> > - */
> > - S_00B848_VGPRS((MAX2(3, shader->num_vgprs) - 1) / 4)
> > - /* We always use at least 4 + arg_user_sgpr_count. The 4 extra
> > - * sgprs are from TGID_X_EN, TGID_Y_EN, TGID_Z_EN, TG_SIZE_EN
> > - * XXX: The compiler should account for this.
> > - */
> > - | S_00B848_SGPRS(((MAX2(4 + arg_user_sgpr_count,
> > - shader->num_sgprs)) - 1) / 8)
> > - | S_00B028_FLOAT_MODE(shader->float_mode))
> > + si_pm4_set_reg(pm4, R_00B848_COMPUTE_PGM_RSRC1, shader->rsrc1);
> > ;
> The above semicolon should be nuked as well, shouldn't it ?
>
> Thanks
> Emil
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list