[Intel-gfx] [PATCH] Workaround for flicker with panning on the i830

Daniel Vetter daniel at ffwll.ch
Thu Nov 14 19:33:08 CET 2013


On Thu, Nov 14, 2013 at 07:15:52PM +0100, Thomas Richter wrote:
> On 14.11.2013 09:21, Daniel Vetter wrote:
> 
> >On gen2/3 the fence registers make a tile range look linear to both
> >the gpu and the cpu. On gen4+ the fence registers are only for access
> >with the cpu, and everything else needs to take tiling into account
> >explicitly (and there are bits in the registers to tell the gpu that
> >something is tiled). See the various functions with fence in their
> >name in i915_gem.c for how this is set up/tracked.
> 
> Hmm. Probably I still don't quite understand. Memory is shared
> between CPU and GPU, so why does a memory write or read by the CPU
> depend on the GPU programming? The GPU is, after all, not a MMU that
> manipulates the address bus of the CPU (or does it?)

The big pci bar in the gpu _is_ an iommu ;-)

> If the start address of the display is altered, are the tiles always
> relative to this start, i.e. at the same absolute display position,
> or do they move on screen, i.e. are at the same absolute memory
> position? Would it possibly make sense to check whether modifying
> the fence registers avoids the problem because then the tiles move,
> and probably stay aligned to 16-byte (or 32-byte) boundaries?

Tiled areas have rather strict alignement constraints. The stride must be
a power of two, the size also and the start needs to be aligned to the
size. So you can't move the tiles. Also moving the tiles would totally
wreak havoc with the screen contents ...
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list