<div dir="ltr">Hi all,<div><br></div><div>I am very new to DRM and radeon driver, There are many concepts of Linux graphic system I haven't acquired.I am looking help for a question about drm framebuffer, it might be very simple to you. Why is stride of 800x600 framebuffer is 832*4=3328? Actually the number of pitch 832 is derive from </div><div><br></div><div>int radeon_align_pitch(struct radeon_device *rdev, int width, int bpp, bool tiled)</div><div>{</div><div><span class="" style="white-space:pre">        </span>int aligned = width;</div><div><span class="" style="white-space:pre">       </span>int align_large = (ASIC_IS_AVIVO(rdev)) || tiled;</div><div><span class="" style="white-space:pre">  </span>int pitch_mask = 0;</div><div><br></div><div><span class="" style="white-space:pre">       </span>switch (bpp / 8) {</div><div><span class="" style="white-space:pre"> </span>case 1:</div><div><span class="" style="white-space:pre">            </span>pitch_mask = align_large ? 255 : 127;</div><div><span class="" style="white-space:pre">              </span>break;</div><div><span class="" style="white-space:pre">     </span>case 2:</div><div><span class="" style="white-space:pre">            </span>pitch_mask = align_large ? 127 : 31;</div><div><span class="" style="white-space:pre">               </span>break;</div><div><span class="" style="white-space:pre">     </span>case 3:</div><div><span class="" style="white-space:pre">    </span>case 4:</div><div><span class="" style="white-space:pre">            </span>pitch_mask = align_large ? 63 : 15;</div><div><span class="" style="white-space:pre">                </span>break;</div><div><span class="" style="white-space:pre">     </span>}</div><div><br></div><div><span class="" style="white-space:pre"> </span>aligned += pitch_mask;</div><div><span class="" style="white-space:pre">     </span>aligned &= ~pitch_mask;</div><div><span class="" style="white-space:pre">        </span>return aligned;</div><div>}  </div><div>Why we have to align the pitch? I discover that if I write directly a 800*600 32bpp raw image to /dev/fb0, the image could not be correctly rendered, since the pitch is 832 instead of 800, however the  virtualize_size sysfs gave me is 800,600, which is correct.</div><div><br></div><div>I am working on an AMD g-series eval board with kernel 3.16.3.</div><div><br></div><div>Thank you </div></div>