Platform/GFX/Jargon

From MozillaWiki
< Platform‎ | GFX
Jump to: navigation, search

The graphics team has a lot of jargon. This page attempts to list as much as possible.

If you add anything, please keep it alphabetical for easy searching.

Acceleration Off-loading of a graphical operation to dedicated hardware. In Gecko usually refers to compositing and/or painting
Anti-aliasing A collection of techniques for drawing relatively high frequency objects (thin lines or text) on relatively low resolutions displays. These techniques remove jagged edges on lines and make small fonts legible
ANGLE Almost Native Graphics Layer - A wrapper library by Google, implementing OpenGL on top of DirectX
APZ Async Pan and Zooming - A component of Gecko that allows us to zoom and scroll content asynchronously with respect to the Web page
Azure See Moz2D
Bezier curve A parametric mathematical curve frequently used in graphics
Bitmap See raster image
CA CoreAnimation - A library for controlling the OS display compositor to perform animations on OSX and iOS
Cairo An open source 2D graphics library
Canvas A Web API for drawing 2D graphics
CG CoreGraphics - A 2D graphics library for OSX and iOS
Checkerboarding An event that occurs when the user scrolls faster than we can paint content, causing us to display blank areas
Color space A specific organization of colors, such as RGB, HSV, YUV, or HSL. It allows a set of numbers such as (0, 0.1, 0.5) to map to a physical color. The range of physical colors representable in a color space is called the 'Gamut'
Command buffer A buffer of encoded commands for a GPU to execute. These used to be transparently managed by OpenGL and D3D drivers, but can now be creating and used with D3D12, Vulkan, or Metal
Composite The process of flattening multiple images or layers into a final image
Compositor Performs composites. In Gecko it's the final component to render a page
CT CoreText - A font/text shaping library for OSX and iOS
D2D Direct2D - A 2D graphics library on Windows
D3D Direct3D - A 3D graphics library on Windows
DirectComposite A library for controlling the display compositor to perform animations on Windows
Display compositor The compositor used by an operating system for compositing the desktop and all windows/widgets
Display list An overloaded term. In Gecko it's a component that implements z-ordering for CSS painting and hit testing. In WebRender it's a lower level list of drawing commands
DL See display list
Draw command An abstraction commonly used by graphics API's. A draw command typically represents a specific graphics operation, such as drawing lines, glyphs, triangles, or images. See also command buffer
DrawTarget An interface provided by Moz2D as an abstract target for draw commands
Driver A software component that performs hardware vendor specific work for specification such as OpenGL or Direct2D
DWrite DirectWrite - A font/text shaping library on Windows
DX DirectX - A collection of interelated graphics libraries on Windows
DXGI DirectX Graphics Infrastructure - A low level graphics foundation library on Windows used by D2D, D3D, DWrite
E10S Electrolysis - The project to create a multiprocess Firefox
Fission The project to advance Firefox's multiprocess architecture
Frame An overloaded term, usually refers to an image an application presents or a specific image in an animation
FrameLayerBuilder A component in Gecko which is used to map gecko display items into layers and for creating information to help retain the layers between frames
Frame buffer A specific render target that will be the final outputted image
FreeType An open source font library
FT See FreeType
Glyph A vector image that is used to draw text for a font. The relationship between Unicode characters and glyphs is complicated and font dependent. A text shaping library can be used to compute glyphs from text
GLSL GL shader language - A shader language used by OpenGL
GPU Graphics processing unit. A dedicated or integrated chipset providing hardware acceleration for graphics and compute operations
Harfbuzz An open source text shaping library
HDR High dynamic range - A technique for rendering where image data and calculations are represented and performed in a higher range than the physical device can display. Before the frame is presented, color toning is used to compress the image into the physical device's range while retaining local contrast
HLSL High level shader language - A shader language used by DirectX
Invalidation The process of preserving previously painted content and only painting what has changed
Jitter Happens when frame presentation is poorly paced, causing an animation to not feel smooth
Lag See latency
Latency Time that occurs between starting an event and finishing it
Layer A type of content that can be composited
Layers An API that exposes layers that Gecko paints content into for later compositing
Metal A 3D graphics library on OSX and iOS
Moz2D An open source 2D graphics library wrapping Skia and Direct2D
OGL See OpenGL
OMTA Off main thread animation - A Gecko component that allows us to animate some content on the Compositor asynchronously of the main thread
OMTC Off main thread compositing - A Gecko component that allows us to composite content off of the main thread
OMTP Off main thread painting - A Gecko component that allows us to paint content into a layer off of the main thread
OpenCL Industry standard hardware accelerated computing API
OpenGL Industry standard 3D graphics API
OpenType A font format
OTS OpenType sanitizer - An open source library for removing unsupported tables from OpenType web fonts for security reasons
POMTP Parallel off main thread painting
Paint An overloaded term, in Gecko usually refers to the process of rasterizing Web content into a layer. Used interchangeably with rasterize and render
Pixel A pix(ture) el(ement) - Represents a single point in a raster image with a color value
Rasterize The process of converting content into a raster image (pixels). Used interchangeably with paint and render
Raster graphics A type of resolution dependent graphics which represents an image using pixels
Reftest Reference test - A type of automated test which renders a 'test' image and a 'reference' image, and compares the results. This can be used to evaluate the behavior of rendering engines
Render The process of creating an image. Used interchangeably with paint and rasterize
Render target A texture that GPU commands can be executed against
Rotated buffer A technique to not have to repaint a whole layer when scrolling it. See also Tiling
SIMD Single instruction, multiple data - A type of CPU instruction which allows for multiple numbers to be operated simultaneously. This is useful for accelerating graphics operation. x86(46) exposes AVX and SSE, ARM exposes NEON
Shader A specialized program designed to execute in parallel on a GPU. Each graphics API offers a different language. DirectX uses HLSL, OpenGL uses GLSL, Metal uses 'Metal shader language', and Vulkan uses 'SPIR-V'. A shader program is typically compiled by the driver into a format suitable for executing on the GPU
Shaping The process of converting Unicode text into glyph indices along a baseline
Sk See Skia
Skia An open source 2D graphics library developed by Google
SPIR-V Standard portable intermediate representation - A shader format used by Vulkan
Sub-pixel anti-aliasing A technique for drawing text or lines which uses the physical layout of the colors of a pixel on LCD screens to achieve higher horizontal resolution. This allows text and lines to be more legible
Surface See texture
SVG Scalable vector graphics - Industry standard vector graphics format
Swap chain An object which manages the frame buffers for presentation. A presentation may be single, double, triple or N buffered. At any moment one frame buffer must be display on the monitor. If this is the same buffer that drawing is happening on, then tearing will occur. If there are two buffers, then one may be drawn into while the other is presented. Higher buffer counts trade latency for better frame pacing
Tearing When a new frame is presented between VBlank's causing half the monitor to be the old frame and half the new frame
Thebes A Mozilla utility layer around Cairo
Tiling A technique to not have to repaint a whole layer when scrolling it, see also RotatedBuffer
Texture A buffer/surface that is used in many graphics operations, such as texture mapping. It can be 1, 2, or 3 dimensional. A 2 dimensional texture is most common and usually represents image data. Textures are most commonly used on the GPU or created to eventually be used on the GPU
VBlank An interrupt generated by a display monitor that signals it is ready for a new frame to be presented
Vector Usually refers to a mathematical object that represents a direction and a magnitude
Vector graphics A type of resolution independent graphics which represents an image using curves, lines, and shapes instead of pixels. See also SVG
Vertex A two or three-dimensional point used in graphics operations
VSync See VBlank
Vulkan Industry standard 3D graphics API
WebGL A Web standard for OpenGL within the browser
WebRender An open source accelerated 2D graphics library for Web content
Widget An operating system window
Wr See WebRender
Wrench A utility program for debugging WebRender