/* * The scanout buffer pages are not mapped, so for each pixel, * use kmap_local_page_try_from_panic() to map the page, and write the pixel. * Try to keep the map from the previous pixel, to avoid too much map/unmap.
*/ staticvoid xe_panic_page_set_pixel(struct drm_scanout_buffer *sb, unsignedint x, unsignedint y, u32 color)
{ struct intel_framebuffer *fb = (struct intel_framebuffer *)sb->private; struct xe_panic_data *panic = to_xe_panic_data(fb); struct xe_bo *bo = gem_to_xe_bo(intel_fb_bo(&fb->base)); unsignedint new_page; unsignedint offset;
if (fb->panic_tiling)
offset = fb->panic_tiling(sb->width, x, y); else
offset = y * sb->pitch[0] + x * sb->format->cpp[0];
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.