Hi, thomas Many texture cases(see fd.o bug https://bugs.freedesktop.org/show_bug.cgi?id=14656, test case https://bugs.freedesktop.org/attachment.cgi?id=14547) with the following usage model fail on 965 after merging with intel-post-reloc branch:
1. draw a primitive with a texture 2. map/unmap this texture image (which is used in the implementation of some GL apis such as glReadPixels, glTexImage2D in 965). 3. change some GL states and draw a primitive again. However this primitive is rendered with some unexpected color. In 965 driver, all BOs used for textures and texture surface states are created with LOCAL|CACHED|CACHED_MAPPED flag, the base address of a texture (buffer object offset) is written into the corresponding texture surface state (relocation entry). After 1, the BOs for texture and texture surface state are bound into the GART with unsnooped PTEs. After 2, the texture BO is unbound, the texture surface state BO is still bound. At 3, the texture BO is bound to a new GART offset, and the relocation entry of the texture surface state BO is also updated in relocation process. Note that the texture surface state BO is bound with unsnooped PTEs. It seems that the GPU doesn't know the offset of the texture BO is changed. So I think an eviction is need before writing relocations which is added in DRM commit 638353103d009d44bd5bdbe97cc7cef1bf011cdf. However this fix is removed from DRM after merging with intel-post-reloc. Could you take a look? Thanks Haihao ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel