Skip to content
Dzmitry Malyshau edited this page Jul 25, 2019 · 32 revisions

llvmpipe vs swiftshader current performance investigation

Architecture

llvmpipe and swiftshader both run the pixel shader on 2x2 blocks of pixels. A pixel is represented as something like Pixel{ a[f32; 4], r: [f32; 4], g: [f32; 4], b: [f32; 4]} or specifically Vector4f in SwiftShader. This way, all "a" for a block are placed in a SIMD word and processed together, same for "r"s, "g"s, and "b"s.

Clone this wiki locally