Archive for the ‘display’ Category

OpenCL internals

https://www.khronos.org/opencl/

https://www.khronos.org/registry/cl/sdk/2.0/docs/OpenCL-2.0-refcard.pdf

https://www.khronos.org/registry/cl/specs/opencl-2.0-openclc.pdf

https://www.khronos.org/files/opencl-1-2-quick-reference-card.pdf

https://www.khronos.org/registry/cl/specs/opencl-2.0.pdf

http://www.slideshare.net/Khronos_Group/opencl-20-reference-card

https://www.khronos.org/registry/cl/

https://www.khronos.org/registry/cl/sdk/2.0/docs/man/xhtml/

http://stackoverflow.com/questions/11029363/passing-array-to-function-parameter-in-opencl

https://developer.apple.com/library/mac/documentation/Performance/Conceptual/OpenCL_MacProgGuide/XCodeHelloWorld/XCodeHelloWorld.html#//apple_ref/doc/uid/TP40008312-CH10-SW7

https://developer.apple.com/library/mac/documentation/Performance/Conceptual/OpenCL_MacProgGuide/XCodeHelloWorld/XCodeHelloWorld.html#//apple_ref/doc/uid/TP40008312-CH10-SW2

https://www.khronos.org/registry/cl/sdk/2.0/docs/man/xhtml/

Advertisements

Learning all about Gallium3D

http://www.freedesktop.org/wiki/Software/gallium/

http://cgit.freedesktop.org/piglit

http://people.freedesktop.org/~marcheu/fosdem09-g3dllvm.pdf

http://www.toulibre.org/pub/2012-11-24-capitole-du-libre/slides/peres-gpu-introduction.pdf

https://tspace.library.utoronto.ca/bitstream/1807/43248/1/Miretsky_Evgeny_201311_MASc_thesis.pdf

http://en.wikipedia.org/wiki/Gallium_Compute_Project

http://www.slideshare.net/ennael/kr2014-nouveau

http://www.freedesktop.org/wiki/Software/gallium/GAOnlineWorkshop/

Good overview:

www.freedesktop.org/software/gallium/GAOnlineWorkshop/Gallium3DOverview.mp4

http://www.freedesktop.org/software/gallium/GAOnlineWorkshop/Gallium3DComponents.pdf

https://tthtlc.wordpress.com/2014/10/13/learning-about-linux-graphics-stack/

http://www.freedesktop.org/wiki/Software/gallium/

http://www.phoronix.com/scan.php?page=article&item=amd_r300g_slow&num=2

http://gallium.readthedocs.org/en/latest/
====>https://media.readthedocs.org/pdf/gallium/latest/gallium.pdf

http://en.wikipedia.org/wiki/Free_and_open-source_graphics_device_driver

http://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Gallium3D_example_matrix.svg/220px-Gallium3D_example_matrix.svg.png
https://github.com/curro/llvm/commit/a1aad41463c36220f2c5b03645843f39e6bf1b9d

http://www.phoronix.com/scan.php?page=article&item=amd_r300g_slow&num=2

OpenGL/OpenCL/GPU internals

http://en.wikipedia.org/wiki/Free_and_open-source_graphics_device_driver

2000px-Linux_kernel_and_OpenGL_video_games.svg.png

http://stackoverflow.com/questions/7907510/opengl-vs-opencl-which-to-choose-and-why

2000px-Gallium3D_vs_DRI_graphics_driver_model.svg.png

TGSI — Gallium 0.4 documentation

http://gallium.readthedocs.org/en/latest/tgsi.html

http://www.freedesktop.org/wiki/Software/gallium/

http://stackoverflow.com/questions/15868498/what-is-the-difference-between-opencl-and-opengls-compute-shader

http://www.slideshare.net/ennael/kr2014-nouveau

kernel-recipes-2014-the-linux-graphics-stack-and-nouveau-driver-7-638.jpg?cb=1411929869
kernel-recipes-2014-the-linux-graphics-stack-and-nouveau-driver-4-638.jpg?cb=1411929869

Learning about Linux graphics stack

As covered before: https://tthtlc.wordpress.com/2013/09/24/linux-graphics-gpu-x-wayland-architecture/

and this: https://tthtlc.wordpress.com/2014/01/17/how-linux-video-worked/ here are more recent articles i have read:

http://streamcomputing.eu/knowledge/sdks/vivante-gpu/ http://blog.mecheye.net/2012/06/the-linux-graphics-stack/

http://blogs.igalia.com/itoral/2014/07/29/a-brief-introduction-to-the-linux-graphics-stack/

http://magcius.github.io/xplain/article/ http://lwn.net/Articles/300066/ http://lwn.net/Articles/296444/

http://dri.freedesktop.org/wiki/

DRI driver initialization process:

http://dri.freedesktop.org/wiki/libGLDriver/

http://en.wikipedia.org/wiki/Mesa_(computer_graphics)

How Linux video worked?

http://www.x.org/wiki/Development/Documentation/HowVideoCardsWork/

http://manpages.ubuntu.com/manpages/raring/man7/drm-kms.7.html

https://www.kernel.org/doc/htmldocs/drm/drm-kms-init.html

https://sites.google.com/a/jnslife.com/www/Boring/x-windows-system/how-video-cards-work

http://blogs.igalia.com/vjaquez/2012/06/20/a-gstreamer-video-sink-using-kms/

http://gstreamer.freedesktop.org/data/events/gstreamer-conference/2012/omap-dmabuf-gstcon2012.pdf

Linux DRM Developer’s Guide

http://landley.net/kdocs/htmldocs/drm.html

How support for new ASIC is done:

http://www.botchco.com/agd5f/?m=201004

Understanding GPU from ground up: http://www.botchco.com/agd5f/?p=50

Notes about radeon display hardware: http://www.botchco.com/agd5f/?p=51

Linux DRM Mode-Setting API: http://dvdhrm.wordpress.com/2012/09/13/linux-drm-mode-setting-api/

http://blogs.igalia.com/vjaquez/2012/06/20/a-gstreamer-video-sink-using-kms/

Linux Graphics / GPU / X / Wayland Architecture

What is Wayland Architecture?

Homepage:

http://wayland.freedesktop.org/

From wiki:

http://en.wikipedia.org/wiki/Wayland_(display_server_protocol)

To quote:

Wayland is a protocol that specifies the communication between the display server and its clients.[3] It was initially designed by Kristian Høgsberg as a replacement for the X Window System. In stark contrast to the latter, Wayland specifies that the clients are responsible for the drawing of their window borders and their decorations and the clients will render without detour directly into their own buffer located in the graphics memory, through the use of EGL with some additional Wayland-specific extensions to EGL.

And the details are partly shown below:


① The evdev module of the Linux kernel gets an event and sends it to the Wayland compositor.
② The Wayland compositor looks through its scenegraph to determine which window should receive the event. The scenegraph corresponds to what’s on screen and the Wayland compositor understands the transformations that it may have applied to the elements in the scenegraph. Thus, the Wayland compositor can pick the right window and transform the screen coordinates to window local coordinates, by applying the inverse transformations. The types of transformation that can be applied to a window is only restricted to what the compositor can do, as long as it can compute the inverse transformation for the input events.
③ As in the X case, when the client receives the event, it updates the UI in response. But in the Wayland case, the rendering happens by the client via EGL, and the client just sends a request to the compositor to indicate the region that was updated.
④ The Wayland compositor collects damage requests from its clients and then re-composites the screen. The compositor can then directly issue an ioctl to schedule a pageflip with KMS

More resources below:

Wayland Input Method System Proposal

https://wiki.maliit.org/Wayland_Input_Method_System_Proposal

The Wayland Compositor Architecture

https://01.org/linuxgraphics/sites/default/files/documentation/wayland-osts.pdf

What does EGL do in the Wayland stack

http://ppaalanen.blogspot.sg/2012/03/what-does-egl-do-in-wayland-stack.html

Introduction to Wayland

https://www.tizen.org/sites/default/files/lfcs2012_barnes.pdf

How to embrace wayland for Tizen

http://download.tizen.org/misc/media/conference2013/slides/TDC2013-How_to_Embrace_Wayland_for_Tizen.pdf

Why Wayland is better:

http://askubuntu.com/questions/11537/why-is-wayland-better

Compositing after X KWin on the Road to Wayland

https://community.kde.org/images.community/0/01/KWin_Wayland.pdf

Wayland Vs X Server Architecture (in Greek, can use Google Chrome to view, which will allow you to translate)

http://osarena.net/hacks-guides/wayland-vs-x-server-architecture.html

Wayland: Choosing a better input method architecture

http://mirrors.ustc.edu.cn/kde-application/akademy/2012/slides/Wayland_Choosing_a_Better_Input_Method_Architecture_-_Michael_Hasselmann.pdf

David Airlie: Teaching the X server new tricks (LCA 2013)

Latest:

Welcome to Chromium’s Ozone-Wayland (September 18, 2013)

http://vignatti.com/2013/09/18/welcome-to-chromiums-ozone-wayland/

http://vignatti.com/2013/03/05/ui-customization-on-wayland/

http://vignatti.com/2012/10/17/the-damn-small-wayland-api/

http://vignatti.com/2012/06/13/x-on-wayland/

http://vignatti.com/2012/01/18/starting-on-wayland-development/

http://unix.stackexchange.com/questions/40979/why-need-drivers-for-both-x-server-and-the-linux-kernel

http://www.freiesmagazin.de/mobil/freiesMagazin-2011-08-bilder.html

Wayland on Android:

http://ppaalanen.blogspot.sg/2012/07/wayland-on-android-snapshot-release.html

Wayland’s 1.0 milestone fixes graphics protocol

http://m.h-online.com/open/news/item/Wayland-s-1-0-milestone-fixes-graphics-protocol-1734638.html?view=zoom;zoom=2

http://worldofgnome.org/gnome-wayland/

X on Wayland

http://vignatti.com/2012/06/13/x-on-wayland/

Wayland prototype for rendering software that runs remotely

http://www.h-online.com/open/news/item/Wayland-prototype-for-rendering-software-that-runs-remotely-1715463.html

Writing to HD44780 LCD display

Following the instructions at:

http://dangerousprototypes.com/docs/Bus_Pirate_LCD_adapter_v2#Bus_Pirate_setup

and the following is the output of interacting with BusPirate:

http://pastebin.com/ifDejtnY

More details:

http://www.ekenrooi.net/lcd/lcd.shtml

http://dangerousprototypes.com/docs/Bus_Pirate#Firmware_upgrades

http://dangerousprototypes.com/docs/HD44780_character_LCD_adapter

http://cjparish.blogspot.sg/2010/01/building-display-adapter-for-hd44780.html

http://forums.netduino.com/index.php?/topic/1780-hd44780-lcd-74hc595-shift-register-wiring-diagram/

http://www.instructables.com/id/HD44780-LCD-to-I2C-adapter-board-for-the-Bus-Pirat/

http://dangerousprototypes.com/docs/Sick_of_Beige_standard_PCB_sizes_v1.0

More commands available for BusPIrate as displayed below:

http://dangerousprototypes.com/docs/Bus_Pirate_menu_options_guide

For example jump to bootloader:

LCD>$
Are you sure? y
BOOTLOADER
BL4+BL4+BL4+BL4+BL4+BL4+BL4+BL4+

%d bloggers like this: