On Thu, Feb 4, 2010 at 3:59 PM, Corbin Simpson
<mostawesomed...@gmail.com> wrote:
> Can we piggyback the mspos changes on the bump? I have discovered a legit
> non-AA use for them so I would like them to be usable.
>

We can bump the version in the next merge window. Make sure you get
your patches in by then.

Alex

> Posting from a mobile, pardon my terseness. ~ C.
>
> On Feb 4, 2010 8:07 AM, "Alex Deucher" <alexdeuc...@gmail.com> wrote:
>
> >From 8ea32b7974dbcf819545f555ca078f709da5ff4e Mon Sep 17 00:00:00 2001
> From: Alex Deucher <alexdeuc...@gmail.com>
> Date: Thu, 4 Feb 2010 11:01:52 -0500
> Subject: [PATCH] drm/radeon/kms/r600: reduce gpu cache flushing
>
> Only flush the gpu caches before we submit a fence.
> This leads to a small performance boost when we take
> the extra gpu cache flushes out of the ddx and mesa.
> Once this patch is in and the drm version is bumped,
> we can remove the flushes from the ddx and drm.
>
> Also, remove the extra cache flushes from the blit
> routine.
>
> Signed-off-by: Alex Deucher <alexdeuc...@gmail.com>
> ---
>  drivers/gpu/drm/radeon/r600.c              |    7 +++++++
>  drivers/gpu/drm/radeon/r600_blit_kms.c     |   13 ++-----------
>  drivers/gpu/drm/radeon/r600_blit_shaders.c |   10 ----------
>  3 files changed, 9 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
> index b833b4b..95a3261 100644
> --- a/drivers/gpu/drm/radeon/r600.c
> +++ b/drivers/gpu/drm/radeon/r600.c
> @@ -1777,6 +1777,13 @@ void r600_fence_ring_emit(struct radeon_device *rdev,
>                          struct radeon_fence *fence)
>  {
>        /* Also consider EVENT_WRITE_EOP.  it handles the interrupts +
> timestamps + events */
> +
> +       radeon_ring_write(rdev, PACKET3(PACKET3_EVENT_WRITE, 0));
> +       radeon_ring_write(rdev, CACHE_FLUSH_AND_INV_EVENT);
> +       /* wait for 3D idle clean */
> +       radeon_ring_write(rdev, PACKET3(PACKET3_SET_CONFIG_REG, 1));
> +       radeon_ring_write(rdev, (WAIT_UNTIL - PACKET3_SET_CONFIG_REG_OFFSET)
>>> 2);
> +       radeon_ring_write(rdev, WAIT_3D_IDLE_bit | WAIT_3D_IDLECLEAN_bit);
>        /* Emit fence sequence & fire IRQ */
>        radeon_ring_write(rdev, PACKET3(PACKET3_SET_CONFIG_REG, 1));
>        radeon_ring_write(rdev, ((rdev->fence_drv.scratch_reg -
> PACKET3_SET_CONFIG_REG_OFFSET) >> 2));
> diff --git a/drivers/gpu/drm/radeon/r600_blit_kms.c
> b/drivers/gpu/drm/radeon/r600_blit_kms.c
> index af1c3ca..2d7d16e 100644
> --- a/drivers/gpu/drm/radeon/r600_blit_kms.c
> +++ b/drivers/gpu/drm/radeon/r600_blit_kms.c
> @@ -403,8 +403,6 @@ set_default_state(struct radeon_device *rdev)
>        radeon_ring_write(rdev, upper_32_bits(gpu_addr) & 0xFF);
>        radeon_ring_write(rdev, dwords);
>
> -       radeon_ring_write(rdev, PACKET3(PACKET3_EVENT_WRITE, 0));
> -       radeon_ring_write(rdev, CACHE_FLUSH_AND_INV_EVENT);
>        /* SQ config */
>        radeon_ring_write(rdev, PACKET3(PACKET3_SET_CONFIG_REG, 6));
>        radeon_ring_write(rdev, (SQ_CONFIG - PACKET3_SET_CONFIG_REG_OFFSET)
>>> 2);
> @@ -581,9 +579,9 @@ int r600_blit_prepare_copy(struct radeon_device
> *rdev, int size_bytes)
>        ring_size = num_loops * dwords_per_loop;
>        /* set default  + shaders */
>        ring_size += 40; /* shaders + def state */
> -       ring_size += 7; /* fence emit for VB IB */
> +       ring_size += 12; /* fence emit for VB IB */
>        ring_size += 5; /* done copy */
> -       ring_size += 7; /* fence emit for done copy */
> +       ring_size += 12; /* fence emit for done copy */
>        r = radeon_ring_lock(rdev, ring_size);
>        if (r)
>                return r;
> @@ -597,13 +595,6 @@ void r600_blit_done_copy(struct radeon_device
> *rdev, struct radeon_fence *fence)
>  {
>        int r;
>
> -       radeon_ring_write(rdev, PACKET3(PACKET3_EVENT_WRITE, 0));
> -       radeon_ring_write(rdev, CACHE_FLUSH_AND_INV_EVENT);
> -       /* wait for 3D idle clean */
> -       radeon_ring_write(rdev, PACKET3(PACKET3_SET_CONFIG_REG, 1));
> -       radeon_ring_write(rdev, (WAIT_UNTIL - PACKET3_SET_CONFIG_REG_OFFSET)
>>> 2);
> -       radeon_ring_write(rdev, WAIT_3D_IDLE_bit | WAIT_3D_IDLECLEAN_bit);
> -
>        if (rdev->r600_blit.vb_ib)
>                r600_vb_ib_put(rdev);
>
> diff --git a/drivers/gpu/drm/radeon/r600_blit_shaders.c
> b/drivers/gpu/drm/radeon/r600_blit_shaders.c
> index d745e81..a112c59 100644
> --- a/drivers/gpu/drm/radeon/r600_blit_shaders.c
> +++ b/drivers/gpu/drm/radeon/r600_blit_shaders.c
> @@ -9,11 +9,6 @@ const u32 r6xx_default_state[] =
>        0xc0012800,
>        0x80000000,
>        0x80000000,
> -       0xc0004600,
> -       0x00000016,
> -       0xc0016800,
> -       0x00000010,
> -       0x00028000,
>        0xc0016800,
>        0x00000010,
>        0x00008000,
> @@ -531,11 +526,6 @@ const u32 r7xx_default_state[] =
>        0xc0012800,
>        0x80000000,
>        0x80000000,
> -       0xc0004600,
> -       0x00000016,
> -       0xc0016800,
> -       0x00000010,
> -       0x00028000,
>        0xc0016800,
>        0x00000010,
>        0x00008000,
> --
> 1.5.6.3
>
> ------------------------------------------------------------------------------
> The Planet: dedicated and managed hosting, cloud storage, colocation
> Stay online with enterprise data centers and the best network in the
> business
> Choose flexible plans and management services without long-term contracts
> Personal 24x7 support from experience hosting pros just a phone call away.
> http://p.sf.net/sfu/theplanet-com
> --
> _______________________________________________
> Dri-devel mailing list
> Dri-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/dri-devel
>
>

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to