11
Reference Implementation and Fallback SwiftShader Nicolas Capens / April 30, 2018

SwiftShader...Compatibility Windows Linux Mac OS X Android Chrome OS x86 ARMv7 (32-bit) Passes dEQP OpenGL ES 3.0 functional tests

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Reference Implementation and Fallback

SwiftShader

Nicolas Capens / April 30, 2018

Introduction

Open-source “Software” Renderer

vs.

Organize the world’s informationand make it universally accessibleand useful.

“”

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

Scale and Cost Efficiency48 cores @ 2.0 GHz × 2 × 512-bit FMA = 6 TFLOPS FP32

Instrumenting Fuzzing

ReproducingDebugging

Strengthening Software and Hardware Validation

Vulkan Implementation Tradeoffs

Lowest Common Denominator ⬌

Debugging / Profiling Features ⬌

Google Priorities ⬌

Omnipotent Implementation

Performance

Industry Requests