Upload
others
View
21
Download
0
Embed Size (px)
Citation preview
Compatibility
Windows Linux Mac OS X Android Chrome OS
x86 ✔ ✔ ✔ ✔ ✔
ARMv7 (32-bit) ✔
Passes dEQP OpenGL ES 3.0 functional tests
Architecture
#if CULL_EARLY Float area = (y2 - y0) * x1 + ...;
if(state.cullMode == CULL_CLOCKWISE) { If(area >= 0.0f) { Return(false); } } else { If(area <= 0.0f) { Return(false); } }#endif
Direct3D-OpenGL ES-
Renderer
Reactor
Subzero
Application
CPU
API
LLVMJIT
From OpenGL ES to Vulkan
GLSL ↓
ASMOpenGL ES-
Context
128-bit
WORK IN PROGRESS
GLSL ↓
SPIR-VOpenGL ES-
IA
512-bit
VS PSRSPA
SPIR-VVulkan
512-bit
glslangANGLE
IA VS PSRSPA
WebGPU
libWebGPU
Vulkan Metal DX12
SwiftShader
ANGLE
OpenGL ES
WebGL
Android
Vendor Drivers
Web
WORK IN PROGRESS
Vulkan Implementation Tradeoffs
Lowest Common Denominator ⬌
Debugging / Profiling Features ⬌
Google Priorities ⬌
Omnipotent Implementation
Performance
Industry Requests
swiftshader.googlesource.com
Q&A