On Wed, Aug 24, 2016 at 5:27 AM, Michel Dänzer <[email protected]> wrote: > > Adding Marek and Nicolai, maybe they have some feedback from a GL > (driver) perspective. > > > On 23/08/16 10:41 AM, Dave Airlie wrote: >> From: Michel Dänzer <[email protected]> >> >> [airlied: rebased onto master - >> I left WO alone as it's more like the GL interface >> review suggested changing it to bits.] > > After realizing that patch 2 can only affect the !ZPixmap case, I tested > this series with > > x11perf -putimagexy{10,100,500} -shmputxy{10,100,500} > > and to my surprise, all of the numbers went down by around an order of > magnitude (using radeonsi on Kaveri). I investigated a little bit what's > going on: > > >> @@ -86,7 +86,10 @@ glamor_prep_pixmap_box(PixmapPtr pixmap, glamor_access_t >> access, BoxPtr box) >> if (priv->pbo == 0) >> glGenBuffers(1, &priv->pbo); >> >> - gl_usage = GL_STREAM_READ; >> + if (access == GLAMOR_ACCESS_WO) >> + gl_usage = GL_STREAM_DRAW; >> + else >> + gl_usage = GL_STREAM_READ; >> >> glBindBuffer(GL_PIXEL_PACK_BUFFER, priv->pbo); >> glBufferData(GL_PIXEL_PACK_BUFFER, > > This change results in write-combining for the PBO CPU mapping. > Apparently, fbPutXYImage ends up either reading from the PBO, or at > least writing to it in a WC-unfriendly manner, causing a big slowdown.
GL_STREAM_READ means cached GART. GL_STREAM_DRAW means uncached WC GART. Marek _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
