OSDN Git Service

radeon: Commit the ring after each partial texture upload blit.
authorchaohong guo <Minskey.Guo@Sun.COM>
Sat, 29 Sep 2007 16:06:47 +0000 (18:06 +0200)
committerMichel Dänzer <michel@tungstengraphics.com>
Sat, 29 Sep 2007 16:08:04 +0000 (18:08 +0200)
This makes sure each blit starts as early as possible, which may improve
texture upload performance in some cases.

shared-core/radeon_state.c

index ac7f601..e3aadfb 100644 (file)
@@ -1861,6 +1861,7 @@ static int radeon_cp_dispatch_texture(struct drm_device * dev,
                OUT_RING((image->width << 16) | height);
                RADEON_WAIT_UNTIL_2D_IDLE();
                ADVANCE_RING();
+               COMMIT_RING();
 
                radeon_cp_discard_buffer(dev, buf);
 
@@ -1878,6 +1879,8 @@ static int radeon_cp_dispatch_texture(struct drm_device * dev,
        RADEON_FLUSH_CACHE();
        RADEON_WAIT_UNTIL_2D_IDLE();
        ADVANCE_RING();
+       COMMIT_RING();
+
        return 0;
 }
 
@@ -2401,7 +2404,6 @@ static int radeon_cp_texture(struct drm_device *dev, void *data, struct drm_file
 
        ret = radeon_cp_dispatch_texture(dev, file_priv, tex, &image);
 
-       COMMIT_RING();
        return ret;
 }