On 10.04.2014 11:23, Michel Dänzer wrote:
From: Michel Dänzer <michel.daen...@amd.com>

---

This is just an RFC; if other developers approve of this approach, I can
make a more extensive patch removing the use_reusable_pool parameters.

The x11perf numbers below compare ShmGet/PutImage before and after this
change with glamor from keithp's glamor-server xserver branch on a Kaveri
APU. The change also reduces the total runtime of the gtkperf tests from
about 3.5s to about 3s.


I have done some similar experiments. I also see a noticeable speedup with glamor. AFAIR Marek had some objections because texture buffers can be quite large and too many and too big buffers might end up congesting the cache for a long time.

Maybe it makes sense to only use caching for texture BOs smaller than a certain threshold? I have such a change in my Mesa tree and it seems to work well. I cache all texture BOs <= 512KB.

Best regards
Grigori

1: x11perf-baseline.txt
2: x11perf-caching.txt

     1              2           Operation
--------   -----------------   -----------------
   9070.0    48500.0 (  5.35)   ShmPutImage 10x10 square
   5670.0    27700.0 (  4.89)   ShmPutImage 100x100 square
    758.0     2350.0 (  3.10)   ShmPutImage 500x500 square
   3600.0     5360.0 (  1.49)   ShmGetImage 10x10 square
   2960.0     5720.0 (  1.93)   ShmGetImage 100x100 square
    346.0     1140.0 (  3.29)   ShmGetImage 500x500 square

  src/gallium/drivers/radeon/r600_texture.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index e39b9ec..293eeaa 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -633,7 +633,7 @@ r600_texture_create_object(struct pipe_screen *screen,
        /* Now create the backing buffer. */
        if (!buf) {
                if (!r600_init_resource(rscreen, resource, rtex->size,
-                                       rtex->surface.bo_alignment, FALSE)) {
+                                       rtex->surface.bo_alignment, TRUE)) {
                        FREE(rtex);
                        return NULL;
                }


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to