Name Date Size #Lines LOC

..--

cl/H25-Apr-2025-3,2892,596

d3d/H25-Apr-2025-99,23077,009

gl/H25-Apr-2025-54,67144,605

metal/H25-Apr-2025-55,87946,269

null/H25-Apr-2025-3,5102,522

vulkan/H25-Apr-2025-168,681135,122

wgpu/H25-Apr-2025-14,25511,253

BufferImpl.cppH A D25-Apr-20251.2 KiB4026

BufferImpl.hH A D25-Apr-20254 KiB9972

BufferImpl_mock.hH A D25-Apr-20252 KiB6245

CLCommandQueueImpl.cppH A D25-Apr-2025512 208

CLCommandQueueImpl.hH A D25-Apr-202512.2 KiB216174

CLContextImpl.cppH A D25-Apr-2025453 186

CLContextImpl.hH A D25-Apr-20253.7 KiB8759

CLDeviceImpl.cppH A D25-Apr-2025742 3012

CLDeviceImpl.hH A D25-Apr-20253.2 KiB8965

CLEventImpl.cppH A D25-Apr-2025431 186

CLEventImpl.hH A D25-Apr-20251.2 KiB4324

CLExtensions.cppH A D25-Apr-20252.3 KiB7348

CLExtensions.hH A D25-Apr-20252.3 KiB6135

CLKernelImpl.cppH A D25-Apr-20251.1 KiB4218

CLKernelImpl.hH A D25-Apr-20252.6 KiB9765

CLMemoryImpl.cppH A D25-Apr-2025442 186

CLMemoryImpl.hH A D25-Apr-2025936 3620

CLPlatformImpl.cppH A D25-Apr-2025670 2610

CLPlatformImpl.hH A D25-Apr-20252 KiB6944

CLProgramImpl.cppH A D25-Apr-2025453 186

CLProgramImpl.hH A D25-Apr-20252.1 KiB6039

CLSamplerImpl.cppH A D25-Apr-2025453 186

CLSamplerImpl.hH A D25-Apr-2025683 3116

CompilerImpl.hH A D25-Apr-2025817 3316

ContextImpl.cppH A D25-Apr-20252.9 KiB10779

ContextImpl.hH A D25-Apr-202515.5 KiB293223

DeviceImpl.cppH A D25-Apr-2025483 2511

DeviceImpl.hH A D25-Apr-20251 KiB4326

DisplayImpl.cppH A D25-Apr-20253.9 KiB151120

DisplayImpl.hH A D25-Apr-20255 KiB149108

EGLImplFactory.hH A D25-Apr-20253.4 KiB10478

EGLReusableSync.cppH A D25-Apr-20253.2 KiB11893

EGLReusableSync.hH A D25-Apr-20251.6 KiB5637

EGLSyncImpl.cppH A D25-Apr-2025882 3822

EGLSyncImpl.hH A D25-Apr-20251.9 KiB6042

FenceNVImpl.hH A D25-Apr-2025985 3923

Format.hH A D25-Apr-20258.7 KiB257197

FormatID_autogen.hH A D25-Apr-20256.3 KiB276260

Format_table_autogen.cppH A D25-Apr-202598.7 KiB971935

FramebufferAttachmentObjectImpl.hH A D25-Apr-20252 KiB6645

FramebufferImpl.cppH A D25-Apr-20251.4 KiB5941

FramebufferImpl.hH A D25-Apr-20255.4 KiB12996

FramebufferImpl_mock.hH A D25-Apr-20253.1 KiB8354

GLImplFactory.hH A D25-Apr-20253.4 KiB12174

ImageImpl.cppH A D25-Apr-2025815 4226

ImageImpl.hH A D25-Apr-20252 KiB7250

ImageImpl_mock.hH A D25-Apr-2025830 3017

MemoryObjectImpl.hH A D25-Apr-20251.4 KiB4831

OverlayImpl.hH A D25-Apr-2025905 4326

ProgramExecutableImpl.hH A D25-Apr-20255.2 KiB10178

ProgramImpl.cppH A D25-Apr-20251,023 3726

ProgramImpl.hH A D25-Apr-20254.7 KiB12269

ProgramImpl_mock.hH A D25-Apr-20254 KiB8861

ProgramPipelineImpl.cppH A D25-Apr-2025750 2714

ProgramPipelineImpl.hH A D25-Apr-20251.2 KiB4123

QueryImpl.cppH A D25-Apr-2025483 229

QueryImpl.hH A D25-Apr-20251.6 KiB5032

README.mdH A D25-Apr-20251.7 KiB3827

RenderTargetCache.hH A D25-Apr-20257.2 KiB196152

RenderbufferImpl.cppH A D25-Apr-2025451 208

RenderbufferImpl.hH A D25-Apr-20257.1 KiB165135

RenderbufferImpl_mock.hH A D25-Apr-20251.6 KiB5234

SamplerImpl.hH A D25-Apr-20251 KiB4527

SemaphoreImpl.hH A D25-Apr-20251.5 KiB5132

ShaderImpl.cppH A D25-Apr-2025844 3118

ShaderImpl.hH A D25-Apr-20253.2 KiB8743

ShareGroupImpl.hH A D25-Apr-2025885 4226

StreamProducerImpl.hH A D25-Apr-20251.6 KiB4118

SurfaceImpl.cppH A D25-Apr-20254.8 KiB192153

SurfaceImpl.hH A D25-Apr-20255.6 KiB13797

SyncImpl.hH A D25-Apr-20251.3 KiB4629

TextureImpl.cppH A D25-Apr-20259 KiB248212

TextureImpl.hH A D25-Apr-202514 KiB286235

TextureImpl_mock.hH A D25-Apr-20256 KiB148128

TransformFeedbackImpl.cppH A D25-Apr-2025471 208

TransformFeedbackImpl.hH A D25-Apr-20251.4 KiB4326

TransformFeedbackImpl_mock.hH A D25-Apr-20251.3 KiB4225

VertexArrayImpl.cppH A D25-Apr-2025448 198

VertexArrayImpl.hH A D25-Apr-20252.6 KiB7146

angle_cl_format_map.jsonH A D25-Apr-20253.2 KiB234234

angle_format.pyH A D25-Apr-202510.7 KiB315236

angle_format_data.jsonH A D25-Apr-20256.4 KiB305304

angle_format_map.jsonH A D25-Apr-202513 KiB246245

cl_types.hH A D25-Apr-2025699 3318

copyvertex.hH A D25-Apr-20253.1 KiB8154

copyvertex.inc.hH A D25-Apr-202522.7 KiB636530

d3d_format.cppH A D25-Apr-20256.1 KiB212191

d3d_format.hH A D25-Apr-20251.4 KiB5939

driver_utils.cppH A D25-Apr-202513.1 KiB439330

driver_utils.hH A D25-Apr-20256.1 KiB235176

driver_utils_ios.mmH A D25-Apr-2025761 2920

driver_utils_mac.mmH A D25-Apr-2025803 3022

dxgi_format_data.jsonH A D25-Apr-20253 KiB119118

dxgi_format_map.hH A D25-Apr-2025647 2815

dxgi_format_map_autogen.cppH A D25-Apr-202518 KiB517495

dxgi_support_data.jsonH A D25-Apr-202532.4 KiB1,2801,279

dxgi_support_table.hH A D25-Apr-20251.2 KiB4423

dxgi_support_table_autogen.cppH A D25-Apr-2025109.5 KiB3,0433,000

gen_angle_format_table.pyH A D25-Apr-202517.3 KiB562428

gen_dxgi_format_table.pyH A D25-Apr-20253.8 KiB161112

gen_dxgi_support_tables.pyH A D25-Apr-202511.5 KiB343274

gen_load_functions_table.pyH A D25-Apr-20257.6 KiB233168

load_functions_data.jsonH A D25-Apr-202534.8 KiB1,3951,393

load_functions_table.hH A D25-Apr-2025601 218

load_functions_table_autogen.cppH A D25-Apr-2025164.4 KiB5,6995,359

renderer_utils.cppH A D25-Apr-202584.6 KiB2,1361,764

renderer_utils.hH A D25-Apr-202524.7 KiB638509

serial_utils.hH A D25-Apr-202510.2 KiB325254

serial_utils_unittest.cppH A D25-Apr-2025574 3115

README.md

1# ANGLE back-ends
2
3This folder contains shared back-end-specific implementation files. The classes
4and types in `renderer` are not specified by GLES. They instead are common to
5all the various ANGLE implementations.
6
7See [`renderer_utils.h`](renderer_utils.h) for various cross back-end utilties.
8
9## ANGLE Formats
10
11The ANGLE format class, [`angle::Format`][ANGLEFormatDef], works as a union
12between GLES and all the various back-end formats. It can represent any type
13of format in ANGLE. e.g. Formats in Vulkan that don't exist in GLES, or DXGI
14formats that don't exist in GLES, or Windows/Android surface configs that
15don't exist anywhere else.
16
17The `glInternalFormat` member of `angle::Format` represents the "closest" GL
18format for an ANGLE format. For formats that don't exist in GLES this will
19not be exactly what the format represents.
20
21The back-ends also define their own format tables. See the
22[Vulkan Format table docs][VulkanFormatDocs] and the
23[D3D11 format table docs][D23D11FormatDocs].
24
25## DXGI Format Info
26
27DXGI formats are used in both the GL and D3D11 back-end. Therefore the
28generated info table lives in this common shared location.
29
30The DXGI info table is generated by [`gen_dxgi_format_table.py`](gen_dxgi_format_table.py)
31and sources data from [`dxgi_format_data.json`](dxgi_format_data.json). The
32main purpose of the table is to convert from a DXGI format to an ANGLE
33format, where the ANGLE format should have all the necessary information.
34
35[ANGLEFormatDef]: https://chromium.googlesource.com/angle/angle/+/f85ec039a7dcfde3b4a8d9ddfa8baa84ae5ce927/src/libANGLE/renderer/Format.h#24
36[VulkanFormatDocs]: vulkan/doc/FormatTablesAndEmulation.md
37[D3D11FormatDocs]: d3d/d3d11/FormatTables.md
38