Platform/GFX/Jargon: Difference between revisions

From MozillaWiki
< Platform‎ | GFX
Jump to navigation Jump to search
(Add page for jargon)
 
(Add more jargon items)
Line 7: Line 7:
| Acceleration
| Acceleration
| Off-loading of a graphical operation to dedicated hardware. In Gecko usually refers to compositing and/or painting
| 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
| ANGLE
Line 16: Line 19:
| Azure
| Azure
| See Moz2D
| See Moz2D
|-
| Bezier curve
| A parametric mathematical curve frequently used in graphics
|-
| Bitmap
| See raster image
|-
|-
| CA
| CA
Line 31: Line 40:
| Checkerboarding
| Checkerboarding
| An event that occurs when the user scrolls faster than we can paint content, causing us to display blank areas
| 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
| Composite
Line 49: Line 64:
| DirectComposite
| DirectComposite
| A library for controlling the display compositor to perform animations on Windows
| 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
| DL
| Display list - A Gecko component used for implementing CSS painting and z-ordering in Gecko
| 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
| Driver
Line 73: Line 100:
| Frame
| Frame
| An overloaded term, usually refers to an image an application presents or a specific image in an animation
| 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
| FreeType
Line 79: Line 112:
| FT
| FT
| See FreeType
| 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
| Harfbuzz
| An open source text shaping library
| 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
| Invalidation
Line 135: Line 183:
|-
|-
| Paint
| Paint
| Overloaded, in Gecko usually refers to the process of rasterizing Web content into a layer
| 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
| Rasterize
| The process of converting content into a raster image (pixels)
| 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
| Render
| The process of creating an image
| 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
|-
|-
| RotatedBuffer
| Shader
| A technique to not have to repaint a whole layer when scrolling it, see also Tiling
| 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
| Shaping
Line 154: Line 220:
| Skia
| Skia
| An open source 2D graphics library developed by Google
| 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
| SVG
| Scalable vector graphics - Industry standard vector graphics format
| 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
| Tearing
Line 166: Line 244:
| Tiling
| Tiling
| A technique to not have to repaint a whole layer when scrolling it, see also RotatedBuffer
| 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
|-
|-
| VBlank
| VBlank
| A signal generated by display monitors signaling it's ready for a new frame to be presented
| 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
| VSync

Revision as of 19:40, 31 August 2018

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
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