Skip to content
Jeff Muizelaar edited this page Jul 31, 2019 · 32 revisions

llvmpipe vs swiftshader current performance investigation

Possible Next steps

  • Try to figure out the per pixel shading times to compare between llvmpipe and swiftshader

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.

The vertex shader is similarly run on 4 vertices at a time.

Clone this wiki locally