gitextract_czmiq_qe/ ├── .clang-format ├── .claude/ │ └── CLAUDE.md ├── .cmake-format ├── .github/ │ ├── pull_request_template.md │ └── workflows/ │ ├── c-cpp.yml │ ├── cmake-install-test.yml │ └── doc-build.yml ├── .gitignore ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── IGLU/ │ ├── CMakeLists.txt │ ├── bitmap/ │ │ ├── BitmapWriter.cpp │ │ └── BitmapWriter.h │ ├── command_buffer_allocator/ │ │ ├── ICommandBufferAllocator.cpp │ │ └── ICommandBufferAllocator.h │ ├── imgui/ │ │ ├── InputListener.cpp │ │ ├── InputListener.h │ │ ├── KeyCodeTranslator.cpp │ │ ├── KeyCodeTranslator.h │ │ ├── Session.cpp │ │ ├── Session.h │ │ ├── compile_shaders.bat │ │ ├── compile_shaders.py │ │ ├── imgui_ps_d3d12.hlsl │ │ ├── imgui_ps_d3d12_fxc.h │ │ ├── imgui_vs_d3d12.hlsl │ │ └── imgui_vs_d3d12_fxc.h │ ├── managedUniformBuffer/ │ │ ├── ManagedUniformBuffer.cpp │ │ └── ManagedUniformBuffer.h │ ├── sentinel/ │ │ ├── Assert.h │ │ ├── Buffer.cpp │ │ ├── Buffer.h │ │ ├── CommandBuffer.cpp │ │ ├── CommandBuffer.h │ │ ├── CommandQueue.cpp │ │ ├── CommandQueue.h │ │ ├── Device.cpp │ │ ├── Device.h │ │ ├── Framebuffer.cpp │ │ ├── Framebuffer.h │ │ ├── PlatformDevice.cpp │ │ └── PlatformDevice.h │ ├── shaderCross/ │ │ ├── ShaderCross.cpp │ │ ├── ShaderCross.h │ │ ├── ShaderCrossUniformBuffer.cpp │ │ └── ShaderCrossUniformBuffer.h │ ├── simdtypes/ │ │ ├── SimdTypes.h │ │ └── SimdUtilities.h │ ├── simple_renderer/ │ │ ├── Drawable.cpp │ │ ├── Drawable.h │ │ ├── ForwardRenderPass.cpp │ │ ├── ForwardRenderPass.h │ │ ├── Material.cpp │ │ ├── Material.h │ │ ├── ParametricVertexData.cpp │ │ ├── ParametricVertexData.h │ │ ├── ShaderProgram.cpp │ │ ├── ShaderProgram.h │ │ ├── ShaderUniforms.cpp │ │ ├── ShaderUniforms.h │ │ ├── VertexData.cpp │ │ └── VertexData.h │ ├── state_pool/ │ │ ├── ComputePipelineStatePool.cpp │ │ ├── ComputePipelineStatePool.h │ │ ├── DepthStencilStatePool.cpp │ │ ├── DepthStencilStatePool.h │ │ ├── RenderPipelineStatePool.cpp │ │ ├── RenderPipelineStatePool.h │ │ ├── StatePool.h │ │ ├── VertexInputStatePool.cpp │ │ └── VertexInputStatePool.h │ ├── texture_accessor/ │ │ ├── ITextureAccessor.h │ │ ├── MetalTextureAccessor.h │ │ ├── MetalTextureAccessor.mm │ │ ├── OpenGLTextureAccessor.cpp │ │ ├── OpenGLTextureAccessor.h │ │ ├── TextureAccessorFactory.cpp │ │ ├── TextureAccessorFactory.h │ │ ├── VulkanTextureAccessor.cpp │ │ └── VulkanTextureAccessor.h │ ├── texture_loader/ │ │ ├── DataReader.cpp │ │ ├── DataReader.h │ │ ├── IData.cpp │ │ ├── IData.h │ │ ├── ITextureLoader.cpp │ │ ├── ITextureLoader.h │ │ ├── ITextureLoaderFactory.cpp │ │ ├── ITextureLoaderFactory.h │ │ ├── TextureLoaderFactory.cpp │ │ ├── TextureLoaderFactory.h │ │ ├── ktx/ │ │ │ ├── TextureLoaderFactory.cpp │ │ │ └── TextureLoaderFactory.h │ │ ├── ktx1/ │ │ │ ├── Header.cpp │ │ │ ├── Header.h │ │ │ ├── TextureLoaderFactory.cpp │ │ │ └── TextureLoaderFactory.h │ │ ├── ktx2/ │ │ │ ├── Header.cpp │ │ │ ├── Header.h │ │ │ ├── TextureLoaderFactory.cpp │ │ │ └── TextureLoaderFactory.h │ │ ├── stb_hdr/ │ │ │ ├── Header.cpp │ │ │ ├── Header.h │ │ │ ├── TextureLoaderFactory.cpp │ │ │ └── TextureLoaderFactory.h │ │ ├── stb_image/ │ │ │ ├── TextureLoaderFactory.cpp │ │ │ └── TextureLoaderFactory.h │ │ ├── stb_jpeg/ │ │ │ ├── Header.cpp │ │ │ ├── Header.h │ │ │ ├── TextureLoaderFactory.cpp │ │ │ └── TextureLoaderFactory.h │ │ ├── stb_png/ │ │ │ ├── Header.cpp │ │ │ ├── Header.h │ │ │ ├── TextureLoaderFactory.cpp │ │ │ └── TextureLoaderFactory.h │ │ └── xtc1/ │ │ ├── Header.cpp │ │ ├── Header.h │ │ ├── TextureLoaderFactory.cpp │ │ └── TextureLoaderFactory.h │ └── uniform/ │ ├── Collection.cpp │ ├── Collection.h │ ├── CollectionEncoder.cpp │ ├── CollectionEncoder.h │ ├── Descriptor.cpp │ ├── Descriptor.h │ ├── Encoder.cpp │ ├── Encoder.h │ └── Trait.h ├── LICENSE.md ├── README.md ├── ROADMAP.md ├── build/ │ └── .gitignore ├── cmake/ │ ├── IGLConfig.cmake.in │ └── install.cmake ├── deploy_content.py ├── deploy_deps.py ├── docs/ │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── make.bat │ ├── requirements.txt │ └── source/ │ ├── _extensions/ │ │ └── style.py │ ├── conf.py │ ├── data/ │ │ └── placeholder │ ├── getting-started/ │ │ └── index.md │ ├── index.md │ ├── introduction.md │ ├── theme/ │ │ ├── extra.css │ │ └── sphinx_literate.css │ └── video/ │ └── placeholder ├── getting-started.md ├── samples/ │ ├── android/ │ │ ├── opengl/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ └── facebook/ │ │ │ │ └── igl/ │ │ │ │ └── sample/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── SampleActivity.java │ │ │ │ ├── SampleLib.java │ │ │ │ └── SampleView.java │ │ │ └── jni/ │ │ │ ├── Jni.cpp │ │ │ ├── TinyRenderer.cpp │ │ │ └── TinyRenderer.h │ │ └── vulkan/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── igl/ │ │ │ └── sample/ │ │ │ ├── AndroidManifest.xml │ │ │ └── SampleActivity.java │ │ └── jni/ │ │ └── Tiny.cpp │ ├── desktop/ │ │ ├── CMakeLists.txt │ │ └── Tiny/ │ │ ├── Tiny.cpp │ │ ├── Tiny_Mesh.cpp │ │ └── Tiny_MeshLarge.cpp │ ├── ios/ │ │ └── snapshot_test_support/ │ │ ├── IGLBytesToUIImage.h │ │ ├── IGLBytesToUIImage.mm │ │ ├── IGLSnapshotTestCase.h │ │ ├── IGLSnapshotTestCase.mm │ │ ├── TinyRenderable.cpp │ │ └── TinyRenderable.hpp │ └── wasm/ │ ├── CMakeLists.txt │ ├── Common.cpp │ ├── Common.h │ ├── Tiny_Mesh.cpp │ ├── Triangle.cpp │ └── igl.html ├── shell/ │ ├── CMakeLists.txt │ ├── android/ │ │ ├── CMakeLists.txt │ │ ├── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── igl/ │ │ │ └── sample/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── SampleActivity.java │ │ │ ├── SampleLib.java │ │ │ ├── SampleView.java │ │ │ └── VulkanView.java │ │ └── jni/ │ │ ├── Jni.cpp │ │ ├── TinyRenderer.cpp │ │ └── TinyRenderer.h │ ├── apps/ │ │ └── SessionApp.cpp │ ├── ios/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.mm │ │ ├── BackendVersion.h │ │ ├── BackendVersion.mm │ │ ├── CMakeLists.txt │ │ ├── IglShellPlatformAdapter.h │ │ ├── IglShellPlatformAdapterInternal.hpp │ │ ├── IglSurfaceTexturesAdapter.h │ │ ├── IglSurfaceTexturesAdapterInternal.hpp │ │ ├── RenderSessionController.h │ │ ├── RenderSessionController.mm │ │ ├── RenderSessionFactoryAdapter.h │ │ ├── RenderSessionFactoryAdapterInternal.hpp │ │ ├── RenderSessionFactoryProvider.h │ │ ├── RenderSessionFactoryProvider.mm │ │ ├── View.h │ │ ├── View.m │ │ ├── ViewController.h │ │ ├── ViewController.mm │ │ └── main.mm │ ├── mac/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.mm │ │ ├── CMakeLists.txt │ │ ├── GLView.h │ │ ├── GLView.mm │ │ ├── HeadlessView.h │ │ ├── HeadlessView.mm │ │ ├── MetalView.h │ │ ├── MetalView.m │ │ ├── ViewController.h │ │ ├── ViewController.mm │ │ ├── VulkanView.h │ │ ├── VulkanView.mm │ │ └── main.mm │ ├── openxr/ │ │ ├── CMakeLists.txt │ │ ├── XrApp.h │ │ ├── XrComposition.cpp │ │ ├── XrComposition.h │ │ ├── XrCompositionProjection.cpp │ │ ├── XrCompositionProjection.h │ │ ├── XrCompositionQuad.cpp │ │ ├── XrCompositionQuad.h │ │ ├── XrHands.cpp │ │ ├── XrHands.h │ │ ├── XrLog.cpp │ │ ├── XrLog.h │ │ ├── XrPassthrough.cpp │ │ ├── XrPassthrough.h │ │ ├── XrPlatform.h │ │ ├── XrRefreshRate.cpp │ │ ├── XrRefreshRate.h │ │ ├── XrSwapchainProvider.cpp │ │ ├── XrSwapchainProvider.h │ │ ├── impl/ │ │ │ ├── XrAppImpl.h │ │ │ └── XrSwapchainProviderImpl.h │ │ └── mobile/ │ │ ├── AndroidMain.cpp │ │ ├── XrApp.cpp │ │ ├── java/ │ │ │ └── com/ │ │ │ └── facebook/ │ │ │ └── igl/ │ │ │ └── shell/ │ │ │ └── openxr/ │ │ │ ├── gles/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── MainActivity.java │ │ │ └── vulkan/ │ │ │ ├── AndroidManifest.xml │ │ │ └── MainActivity.java │ │ ├── opengl/ │ │ │ ├── XrAppImplGLES.cpp │ │ │ ├── XrAppImplGLES.h │ │ │ ├── XrSwapchainProviderImplGLES.cpp │ │ │ └── XrSwapchainProviderImplGLES.h │ │ └── vulkan/ │ │ ├── XrAppImplVulkan.cpp │ │ ├── XrAppImplVulkan.h │ │ ├── XrSwapchainProviderImplVulkan.cpp │ │ └── XrSwapchainProviderImplVulkan.h │ ├── renderSessionTests/ │ │ ├── BasicFramebufferTests.cpp │ │ └── IGLSampleTests.cpp │ ├── renderSessions/ │ │ ├── BasicFramebufferSession.cpp │ │ ├── BasicFramebufferSession.h │ │ ├── BindGroupSession.cpp │ │ ├── BindGroupSession.h │ │ ├── BindlessBufferSession.cpp │ │ ├── BindlessBufferSession.h │ │ ├── BufferMappingSession.cpp │ │ ├── BufferMappingSession.h │ │ ├── CheckerboardMipmapSession.cpp │ │ ├── CheckerboardMipmapSession.h │ │ ├── ColorSession.cpp │ │ ├── ColorSession.h │ │ ├── CopyOperationsSession.cpp │ │ ├── CopyOperationsSession.h │ │ ├── DepthBiasSession.cpp │ │ ├── DepthBiasSession.h │ │ ├── DrawInstancedSession.cpp │ │ ├── DrawInstancedSession.h │ │ ├── EmptySession.cpp │ │ ├── EmptySession.h │ │ ├── FireworksSession.cpp │ │ ├── FireworksSession.h │ │ ├── GPUStressSession.cpp │ │ ├── GPUStressSession.h │ │ ├── GPUTimerSession.cpp │ │ ├── GPUTimerSession.h │ │ ├── HandsOpenXRSession.cpp │ │ ├── HandsOpenXRSession.h │ │ ├── HelloOpenXRSession.cpp │ │ ├── HelloOpenXRSession.h │ │ ├── HelloWorldSession.cpp │ │ ├── HelloWorldSession.h │ │ ├── ImguiSession.cpp │ │ ├── ImguiSession.h │ │ ├── MRTSession.cpp │ │ ├── MRTSession.h │ │ ├── MeshShaderTriangleSession.cpp │ │ ├── MeshShaderTriangleSession.h │ │ ├── MultiDrawIndexedIndirectSession.cpp │ │ ├── MultiDrawIndexedIndirectSession.h │ │ ├── ScissorTestSession.cpp │ │ ├── ScissorTestSession.h │ │ ├── StencilOutlineSession.cpp │ │ ├── StencilOutlineSession.h │ │ ├── TQMultiRenderPassSession.cpp │ │ ├── TQMultiRenderPassSession.h │ │ ├── TQSession.cpp │ │ ├── TQSession.h │ │ ├── TextureViewSession.cpp │ │ ├── TextureViewSession.h │ │ ├── Textured3DCubeSession.cpp │ │ ├── Textured3DCubeSession.h │ │ ├── TinyMeshBindGroupSession.cpp │ │ ├── TinyMeshBindGroupSession.h │ │ ├── TinyMeshSession.cpp │ │ ├── TinyMeshSession.h │ │ ├── WireframeSession.cpp │ │ ├── WireframeSession.h │ │ ├── YUVColorSession.cpp │ │ └── YUVColorSession.h │ ├── resources/ │ │ ├── images/ │ │ │ ├── macbeth.ktx │ │ │ ├── macbeth.ktx2 │ │ │ ├── output_frame_900.420p.txt │ │ │ ├── output_frame_900.420p.yuv │ │ │ ├── output_frame_900.nv12.txt │ │ │ └── output_frame_900.nv12.yuv │ │ ├── mac/ │ │ │ ├── Assets.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Base.lproj/ │ │ │ │ └── MainMenu.xib │ │ │ ├── Entitlements.plist │ │ │ └── Info.plist │ │ ├── models/ │ │ │ └── DamagedHelmet.gltf │ │ └── shaders/ │ │ ├── ShaderLibraryTest-ios.metallib │ │ ├── ShaderLibraryTest-macos.metallib │ │ └── ShaderLibraryTest.metal │ ├── shared/ │ │ ├── extension/ │ │ │ ├── Extension.h │ │ │ ├── ExtensionLoader.cpp │ │ │ ├── ExtensionLoader.h │ │ │ ├── SymbolFactoryLoader.cpp │ │ │ └── SymbolFactoryLoader.h │ │ ├── fileLoader/ │ │ │ ├── FileLoader.cpp │ │ │ ├── FileLoader.h │ │ │ ├── android/ │ │ │ │ ├── FileLoaderAndroid.cpp │ │ │ │ └── FileLoaderAndroid.h │ │ │ ├── apple/ │ │ │ │ ├── FileLoaderApple.h │ │ │ │ └── FileLoaderApple.mm │ │ │ ├── linux/ │ │ │ │ ├── FileLoaderLinux.cpp │ │ │ │ └── FileLoaderLinux.h │ │ │ └── win/ │ │ │ ├── FileLoaderWin.cpp │ │ │ └── FileLoaderWin.h │ │ ├── imageLoader/ │ │ │ ├── ImageLoader.cpp │ │ │ ├── ImageLoader.h │ │ │ └── tests/ │ │ │ └── ImageLoaderTest.cpp │ │ ├── imageWriter/ │ │ │ ├── ImageWriter.h │ │ │ ├── android/ │ │ │ │ └── ImageWriterAndroid.h │ │ │ ├── ios/ │ │ │ │ ├── ImageWriterIos.h │ │ │ │ └── ImageWriterIos.mm │ │ │ ├── linux/ │ │ │ │ └── ImageWriterLinux.h │ │ │ ├── mac/ │ │ │ │ └── ImageWriterMac.h │ │ │ ├── stb/ │ │ │ │ ├── ImageWriterSTB.cpp │ │ │ │ └── ImageWriterSTB.h │ │ │ └── win/ │ │ │ └── ImageWriterWin.h │ │ ├── input/ │ │ │ ├── InputDispatcher.cpp │ │ │ ├── InputDispatcher.h │ │ │ ├── IntentListener.h │ │ │ ├── KeyListener.h │ │ │ ├── MouseListener.h │ │ │ ├── RayListener.h │ │ │ └── TouchListener.h │ │ ├── netservice/ │ │ │ ├── NetService.h │ │ │ ├── NetServiceExtension.cpp │ │ │ ├── NetServiceExtension.h │ │ │ ├── NetServiceFactory.h │ │ │ ├── Stream.h │ │ │ ├── apple/ │ │ │ │ ├── NetServiceApple.h │ │ │ │ ├── NetServiceApple.mm │ │ │ │ ├── NetServiceExtensionApple.h │ │ │ │ ├── NetServiceExtensionApple.mm │ │ │ │ ├── StreamApple.h │ │ │ │ └── StreamApple.mm │ │ │ └── zeromq/ │ │ │ ├── NetServiceExtensionZeroMQ.h │ │ │ ├── NetServiceZeroMQ.h │ │ │ └── StreamZeroMQ.h │ │ ├── platform/ │ │ │ ├── DisplayContext.h │ │ │ ├── Factory.cpp │ │ │ ├── Factory.h │ │ │ ├── Platform.cpp │ │ │ ├── Platform.h │ │ │ ├── android/ │ │ │ │ ├── PlatformAndroid.cpp │ │ │ │ └── PlatformAndroid.h │ │ │ ├── ios/ │ │ │ │ ├── PlatformIos.h │ │ │ │ └── PlatformIos.mm │ │ │ ├── linux/ │ │ │ │ ├── PlatformLinux.cpp │ │ │ │ └── PlatformLinux.h │ │ │ ├── mac/ │ │ │ │ ├── PlatformMac.cpp │ │ │ │ └── PlatformMac.h │ │ │ └── win/ │ │ │ ├── PlatformWin.cpp │ │ │ └── PlatformWin.h │ │ ├── renderSession/ │ │ │ ├── AppParams.h │ │ │ ├── BenchmarkTracker.cpp │ │ │ ├── BenchmarkTracker.h │ │ │ ├── DefaultRenderSessionFactory.h │ │ │ ├── DefaultSession.h │ │ │ ├── DepthParams.h │ │ │ ├── Fov.h │ │ │ ├── Hands.h │ │ │ ├── IRenderSessionFactory.h │ │ │ ├── QuadLayerParams.h │ │ │ ├── RenderMode.h │ │ │ ├── RenderSession.cpp │ │ │ ├── RenderSession.h │ │ │ ├── RenderSessionConfig.h │ │ │ ├── RenderSessionLoader.hpp │ │ │ ├── RenderSessionRegistry.cpp │ │ │ ├── RenderSessionRegistry.hpp │ │ │ ├── RenderSessionWindowConfig.h │ │ │ ├── ScreenshotTestRenderSessionHelper.cpp │ │ │ ├── ScreenshotTestRenderSessionHelper.h │ │ │ ├── ShaderProvider.h │ │ │ ├── ShaderStagesCreator.cpp │ │ │ ├── ShaderStagesCreator.h │ │ │ ├── ShellParams.cpp │ │ │ ├── ShellParams.h │ │ │ ├── ShellType.h │ │ │ └── ViewParams.h │ │ └── testShell/ │ │ ├── TestShell.cpp │ │ └── TestShell.h │ └── windows/ │ ├── CMakeLists.txt │ ├── common/ │ │ ├── GlfwShell.cpp │ │ └── GlfwShell.h │ ├── d3d12/ │ │ └── App.cpp │ ├── opengl/ │ │ ├── App.cpp │ │ └── AutoContextReleaseDevice.h │ ├── opengles/ │ │ └── App.cpp │ └── vulkan/ │ └── App.cpp ├── src/ │ └── igl/ │ ├── Assert.cpp │ ├── Assert.h │ ├── Buffer.h │ ├── CMakeLists.txt │ ├── Color.h │ ├── ColorSpace.h │ ├── CommandBuffer.h │ ├── CommandEncoder.h │ ├── CommandQueue.h │ ├── Common.cpp │ ├── Common.h │ ├── ComputeCommandEncoder.h │ ├── ComputePipelineState.h │ ├── Config.h │ ├── Core.h │ ├── DebugMacros.h │ ├── DepthStencilState.cpp │ ├── DepthStencilState.h │ ├── Device.cpp │ ├── Device.h │ ├── DeviceFeatures.h │ ├── FPSCounter.h │ ├── Format.h │ ├── Framebuffer.h │ ├── FramebufferWrapper.cpp │ ├── FramebufferWrapper.h │ ├── HWDevice.h │ ├── IGL.h │ ├── IGLFolly.h │ ├── IGLSafeC.h │ ├── IResourceTracker.h │ ├── ITrackedResource.h │ ├── Log.cpp │ ├── Log.h │ ├── Macros.h │ ├── NameHandle.cpp │ ├── NameHandle.h │ ├── PlatformDevice.h │ ├── RenderCommandEncoder.h │ ├── RenderPass.h │ ├── RenderPipelineReflection.h │ ├── RenderPipelineState.cpp │ ├── RenderPipelineState.h │ ├── SamplerState.cpp │ ├── SamplerState.h │ ├── Shader.cpp │ ├── Shader.h │ ├── ShaderCreator.cpp │ ├── ShaderCreator.h │ ├── Texture.cpp │ ├── Texture.h │ ├── TextureFormat.h │ ├── Timer.h │ ├── TimestampQueries.h │ ├── Uniform.cpp │ ├── Uniform.h │ ├── VertexInputState.cpp │ ├── VertexInputState.h │ ├── android/ │ │ ├── LogDefault.cpp │ │ ├── LogDefault.h │ │ ├── NativeHWBuffer.cpp │ │ └── NativeHWBuffer.h │ ├── apple/ │ │ ├── LogDefault.cpp │ │ └── LogDefault.h │ ├── base/ │ │ ├── Common.h │ │ ├── IAttachmentInterop.h │ │ ├── IDeviceBase.h │ │ ├── IFramebufferInterop.h │ │ └── IStagingBufferInterop.h │ ├── d3d12/ │ │ ├── Buffer.cpp │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── CommandBuffer.cpp │ │ ├── CommandBuffer.h │ │ ├── CommandQueue.cpp │ │ ├── CommandQueue.h │ │ ├── Common.cpp │ │ ├── Common.h │ │ ├── ComputeCommandEncoder.cpp │ │ ├── ComputeCommandEncoder.h │ │ ├── ComputePipelineState.cpp │ │ ├── ComputePipelineState.h │ │ ├── D3D12AllocatorPool.cpp │ │ ├── D3D12AllocatorPool.h │ │ ├── D3D12Context.cpp │ │ ├── D3D12Context.h │ │ ├── D3D12DeviceCapabilities.cpp │ │ ├── D3D12DeviceCapabilities.h │ │ ├── D3D12FenceWaiter.cpp │ │ ├── D3D12FenceWaiter.h │ │ ├── D3D12FrameManager.cpp │ │ ├── D3D12FrameManager.h │ │ ├── D3D12Headers.h │ │ ├── D3D12ImmediateCommands.cpp │ │ ├── D3D12ImmediateCommands.h │ │ ├── D3D12PipelineBuilder.cpp │ │ ├── D3D12PipelineBuilder.h │ │ ├── D3D12PipelineCache.cpp │ │ ├── D3D12PipelineCache.h │ │ ├── D3D12PresentManager.cpp │ │ ├── D3D12PresentManager.h │ │ ├── D3D12ReflectionUtils.cpp │ │ ├── D3D12ReflectionUtils.h │ │ ├── D3D12ResourcesBinder.cpp │ │ ├── D3D12ResourcesBinder.h │ │ ├── D3D12RootSignatureKey.h │ │ ├── D3D12SamplerCache.h │ │ ├── D3D12StagingDevice.cpp │ │ ├── D3D12StagingDevice.h │ │ ├── D3D12StateTransition.h │ │ ├── D3D12Telemetry.h │ │ ├── DXCCompiler.cpp │ │ ├── DXCCompiler.h │ │ ├── DepthStencilState.h │ │ ├── DescriptorHeapManager.cpp │ │ ├── DescriptorHeapManager.h │ │ ├── Device.cpp │ │ ├── Device.h │ │ ├── Framebuffer.cpp │ │ ├── Framebuffer.h │ │ ├── HeadlessContext.cpp │ │ ├── HeadlessContext.h │ │ ├── PlatformDevice.cpp │ │ ├── PlatformDevice.h │ │ ├── RenderCommandEncoder.cpp │ │ ├── RenderCommandEncoder.h │ │ ├── RenderPipelineState.cpp │ │ ├── RenderPipelineState.h │ │ ├── SamplerState.cpp │ │ ├── SamplerState.h │ │ ├── ShaderModule.cpp │ │ ├── ShaderModule.h │ │ ├── Texture.cpp │ │ ├── Texture.h │ │ ├── TextureCopyUtils.cpp │ │ ├── TextureCopyUtils.h │ │ ├── Timer.cpp │ │ ├── Timer.h │ │ ├── UploadRingBuffer.cpp │ │ ├── UploadRingBuffer.h │ │ └── VertexInputState.h │ ├── glslang/ │ │ ├── CMakeLists.txt │ │ ├── GlslCompiler.cpp │ │ ├── GlslCompiler.h │ │ ├── GlslangHelpers.c │ │ └── GlslangHelpers.h │ ├── metal/ │ │ ├── Buffer.h │ │ ├── Buffer.mm │ │ ├── BufferSynchronizationManager.h │ │ ├── BufferSynchronizationManager.mm │ │ ├── CMakeLists.txt │ │ ├── ColorSpace.h │ │ ├── ColorSpace.mm │ │ ├── CommandBuffer.h │ │ ├── CommandBuffer.mm │ │ ├── CommandQueue.h │ │ ├── CommandQueue.mm │ │ ├── ComputeCommandEncoder.h │ │ ├── ComputeCommandEncoder.mm │ │ ├── ComputePipelineState.h │ │ ├── ComputePipelineState.mm │ │ ├── DepthStencilState.h │ │ ├── DepthStencilState.mm │ │ ├── Device.h │ │ ├── Device.mm │ │ ├── DeviceFeatureSet.h │ │ ├── DeviceFeatureSet.mm │ │ ├── DeviceStatistics.h │ │ ├── DeviceStatistics.mm │ │ ├── Framebuffer.h │ │ ├── Framebuffer.mm │ │ ├── HWDevice.h │ │ ├── HWDevice.mm │ │ ├── PlatformDevice.h │ │ ├── PlatformDevice.mm │ │ ├── RenderCommandEncoder.h │ │ ├── RenderCommandEncoder.mm │ │ ├── RenderPipelineReflection.h │ │ ├── RenderPipelineReflection.mm │ │ ├── RenderPipelineState.h │ │ ├── RenderPipelineState.mm │ │ ├── Result.h │ │ ├── SamplerState.h │ │ ├── SamplerState.mm │ │ ├── Shader.h │ │ ├── Shader.mm │ │ ├── Texture.h │ │ ├── Texture.mm │ │ ├── Timer.h │ │ ├── TimestampQueries.h │ │ ├── TimestampQueries.mm │ │ ├── VertexInputState.h │ │ ├── VertexInputState.mm │ │ ├── ios/ │ │ │ ├── Device.h │ │ │ ├── Device.mm │ │ │ ├── Framebuffer.h │ │ │ └── Framebuffer.mm │ │ └── macos/ │ │ ├── Device.h │ │ ├── Device.mm │ │ ├── Framebuffer.h │ │ └── Framebuffer.mm │ ├── opengl/ │ │ ├── Buffer.cpp │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── CommandBuffer.cpp │ │ ├── CommandBuffer.h │ │ ├── CommandQueue.cpp │ │ ├── CommandQueue.h │ │ ├── ComputeCommandAdapter.cpp │ │ ├── ComputeCommandAdapter.h │ │ ├── ComputeCommandEncoder.cpp │ │ ├── ComputeCommandEncoder.h │ │ ├── ComputePipelineState.cpp │ │ ├── ComputePipelineState.h │ │ ├── Config.h │ │ ├── DepthStencilState.cpp │ │ ├── DepthStencilState.h │ │ ├── DestructionGuard.cpp │ │ ├── DestructionGuard.h │ │ ├── Device.cpp │ │ ├── Device.h │ │ ├── DeviceFeatureSet.cpp │ │ ├── DeviceFeatureSet.h │ │ ├── DummyTexture.h │ │ ├── Framebuffer.cpp │ │ ├── Framebuffer.h │ │ ├── FramebufferWrapper.h │ │ ├── GLFunc.cpp │ │ ├── GLFunc.h │ │ ├── GLIncludes.h │ │ ├── HWDevice.cpp │ │ ├── HWDevice.h │ │ ├── IContext.cpp │ │ ├── IContext.h │ │ ├── PlatformDevice.cpp │ │ ├── PlatformDevice.h │ │ ├── RenderCommandAdapter.cpp │ │ ├── RenderCommandAdapter.h │ │ ├── RenderCommandEncoder.cpp │ │ ├── RenderCommandEncoder.h │ │ ├── RenderPipelineReflection.cpp │ │ ├── RenderPipelineReflection.h │ │ ├── RenderPipelineState.cpp │ │ ├── RenderPipelineState.h │ │ ├── SamplerState.cpp │ │ ├── SamplerState.h │ │ ├── Shader.cpp │ │ ├── Shader.h │ │ ├── Texture.cpp │ │ ├── Texture.h │ │ ├── TextureBuffer.cpp │ │ ├── TextureBuffer.h │ │ ├── TextureBufferBase.cpp │ │ ├── TextureBufferBase.h │ │ ├── TextureBufferExternal.cpp │ │ ├── TextureBufferExternal.h │ │ ├── TextureTarget.cpp │ │ ├── TextureTarget.h │ │ ├── Timer.cpp │ │ ├── Timer.h │ │ ├── TimestampQueries.cpp │ │ ├── TimestampQueries.h │ │ ├── UnbindPolicy.h │ │ ├── UniformAdapter.cpp │ │ ├── UniformAdapter.h │ │ ├── UniformBuffer.cpp │ │ ├── UniformBuffer.h │ │ ├── Version.cpp │ │ ├── Version.h │ │ ├── VertexArrayObject.cpp │ │ ├── VertexArrayObject.h │ │ ├── VertexInputState.cpp │ │ ├── VertexInputState.h │ │ ├── ViewTextureTarget.cpp │ │ ├── ViewTextureTarget.h │ │ ├── WithContext.cpp │ │ ├── WithContext.h │ │ ├── egl/ │ │ │ ├── Context.cpp │ │ │ ├── Context.h │ │ │ ├── Device.cpp │ │ │ ├── Device.h │ │ │ ├── HWDevice.cpp │ │ │ ├── HWDevice.h │ │ │ ├── PlatformDevice.cpp │ │ │ ├── PlatformDevice.h │ │ │ └── android/ │ │ │ ├── NativeHWBuffer.cpp │ │ │ └── NativeHWBuffer.h │ │ ├── empty/ │ │ │ ├── Context.cpp │ │ │ ├── Context.h │ │ │ ├── Device.cpp │ │ │ ├── Device.h │ │ │ ├── HWDevice.cpp │ │ │ └── HWDevice.h │ │ ├── glx/ │ │ │ ├── Context.cpp │ │ │ ├── Context.h │ │ │ ├── Device.cpp │ │ │ ├── Device.h │ │ │ ├── HWDevice.cpp │ │ │ ├── HWDevice.h │ │ │ ├── PlatformDevice.cpp │ │ │ └── PlatformDevice.h │ │ ├── ios/ │ │ │ ├── Context.h │ │ │ ├── Context.mm │ │ │ ├── Device.h │ │ │ ├── Device.mm │ │ │ ├── HWDevice.h │ │ │ ├── HWDevice.mm │ │ │ ├── PlatformDevice.h │ │ │ ├── PlatformDevice.mm │ │ │ ├── TextureBuffer.h │ │ │ └── TextureBuffer.mm │ │ ├── macos/ │ │ │ ├── Context.h │ │ │ ├── Context.mm │ │ │ ├── Device.h │ │ │ ├── Device.mm │ │ │ ├── HWDevice.h │ │ │ ├── HWDevice.mm │ │ │ ├── PlatformDevice.h │ │ │ ├── PlatformDevice.mm │ │ │ ├── TextureBuffer.h │ │ │ └── TextureBuffer.mm │ │ ├── util/ │ │ │ ├── TextureFormat.cpp │ │ │ └── TextureFormat.h │ │ ├── webgl/ │ │ │ ├── Context.cpp │ │ │ ├── Context.h │ │ │ ├── Device.cpp │ │ │ ├── Device.h │ │ │ ├── HWDevice.cpp │ │ │ ├── HWDevice.h │ │ │ ├── PlatformDevice.cpp │ │ │ └── PlatformDevice.h │ │ └── wgl/ │ │ ├── Context.cpp │ │ ├── Context.h │ │ ├── Device.cpp │ │ ├── Device.h │ │ ├── HWDevice.cpp │ │ ├── HWDevice.h │ │ ├── PlatformDevice.cpp │ │ └── PlatformDevice.h │ ├── tests/ │ │ ├── Assert.cpp │ │ ├── Backend.cpp │ │ ├── Blending.cpp │ │ ├── Buffer.cpp │ │ ├── CMakeLists.txt │ │ ├── Color.cpp │ │ ├── ColorSpace.cpp │ │ ├── CommandBuffer.cpp │ │ ├── Common.cpp │ │ ├── ComputeCommandEncoder.cpp │ │ ├── Device.cpp │ │ ├── DeviceFeatureSet.cpp │ │ ├── Framebuffer.cpp │ │ ├── FramebufferInterop.cpp │ │ ├── Hash.cpp │ │ ├── IglTestsTSANSuppressions.txt │ │ ├── Log.cpp │ │ ├── Multiview.cpp │ │ ├── NameHandleTests.cpp │ │ ├── RenderCommandEncoder.cpp │ │ ├── Resource.cpp │ │ ├── ShaderLibrary.cpp │ │ ├── ShaderModule.cpp │ │ ├── Texture.cpp │ │ ├── Texture.h │ │ ├── TextureArray.cpp │ │ ├── TextureArrayFloat.cpp │ │ ├── TextureCube.cpp │ │ ├── TextureFloat.cpp │ │ ├── TextureFormat.cpp │ │ ├── TextureFormatProperties.cpp │ │ ├── TextureHalfFloat.cpp │ │ ├── TextureMipmap.cpp │ │ ├── TextureRangeDesc.cpp │ │ ├── TexturesRGB.cpp │ │ ├── VertexInputState.cpp │ │ ├── android/ │ │ │ └── NativeHWBuffer.cpp │ │ ├── data/ │ │ │ ├── ShaderData.h │ │ │ ├── TextureData.h │ │ │ └── VertexIndexData.h │ │ ├── iglu/ │ │ │ ├── ManagedUniformBuffer.cpp │ │ │ ├── ShaderCrossTest.cpp │ │ │ ├── ShaderUniformsTest.cpp │ │ │ ├── StatePool.cpp │ │ │ ├── TextureAccessor.cpp │ │ │ ├── UniformCollection.cpp │ │ │ ├── UniformDescriptor.cpp │ │ │ ├── UniformTests.h │ │ │ ├── bitmap/ │ │ │ │ └── BitmapWriterTest.cpp │ │ │ └── texture_loader/ │ │ │ ├── BaseTextureLoader.cpp │ │ │ ├── IDataTest.cpp │ │ │ ├── Ktx1TextureLoaderTest.cpp │ │ │ ├── Ktx2TextureLoaderTest.cpp │ │ │ ├── StbHdrTextureLoaderTest.cpp │ │ │ ├── StbJpegTextureLoaderTest.cpp │ │ │ ├── StbPngTextureLoaderTest.cpp │ │ │ ├── TextureLoaderFactoryTest.cpp │ │ │ └── Xtc1TextureLoaderTest.cpp │ │ ├── main.cpp │ │ ├── metal/ │ │ │ ├── BindGroup.mm │ │ │ ├── Buffer.mm │ │ │ ├── BufferSynchronizationManager.mm │ │ │ ├── BytesBinding.mm │ │ │ ├── ColorSpace.mm │ │ │ ├── CommandBuffer.mm │ │ │ ├── CommandBufferOps.mm │ │ │ ├── CommandQueue.mm │ │ │ ├── ComputeCommandEncoder.mm │ │ │ ├── ComputePipelineState.mm │ │ │ ├── DepthStencilCreation.mm │ │ │ ├── DepthStencilState.mm │ │ │ ├── Device.mm │ │ │ ├── DeviceFeatureSet.mm │ │ │ ├── DeviceStatistics.mm │ │ │ ├── DrawCall.mm │ │ │ ├── ErrorPaths.mm │ │ │ ├── Framebuffer.mm │ │ │ ├── HWDevice.mm │ │ │ ├── IndirectDraw.mm │ │ │ ├── MeshShader.mm │ │ │ ├── PlatformDevice.mm │ │ │ ├── RenderCommandEncoder.mm │ │ │ ├── RenderEncoderState.mm │ │ │ ├── RenderPass.mm │ │ │ ├── RenderPipelineCreation.mm │ │ │ ├── RenderPipelineReflection.mm │ │ │ ├── RenderPipelineState.mm │ │ │ ├── SamplerCreation.mm │ │ │ ├── SamplerState.mm │ │ │ ├── ShaderLibrary.mm │ │ │ ├── StorageMode.mm │ │ │ ├── Texture.mm │ │ │ ├── TextureDataRoundtrip.mm │ │ │ ├── Timer.mm │ │ │ └── VertexInputState.mm │ │ ├── ogl/ │ │ │ ├── BindlessTextures.cpp │ │ │ ├── BlendModeConversion.cpp │ │ │ ├── BufferMapping.cpp │ │ │ ├── CommandBufferOGL.cpp │ │ │ ├── CompressedTexture.cpp │ │ │ ├── ComputeCommandAdapter.cpp │ │ │ ├── ComputePipelineStateOGL.cpp │ │ │ ├── Context.cpp │ │ │ ├── CopyTexSubImage.cpp │ │ │ ├── CubeMapAttachment.cpp │ │ │ ├── DebugOutput.cpp │ │ │ ├── DepthRange.cpp │ │ │ ├── DepthStencilState.cpp │ │ │ ├── DestructionGuard.cpp │ │ │ ├── Device.cpp │ │ │ ├── DeviceFeatureSetFull.cpp │ │ │ ├── ExtensionDetection.cpp │ │ │ ├── FeatureLimits.cpp │ │ │ ├── FramebufferBlit.cpp │ │ │ ├── HWDevice.cpp │ │ │ ├── ImageLoadStore.cpp │ │ │ ├── InvalidateFramebuffer.cpp │ │ │ ├── MSAATextureAttachment.cpp │ │ │ ├── Memcpy.cpp │ │ │ ├── MemoryObjectImport.cpp │ │ │ ├── MultiviewFramebuffer.cpp │ │ │ ├── PipelineState.cpp │ │ │ ├── PlatformDevice.cpp │ │ │ ├── RenderCommandAdapter.cpp │ │ │ ├── RenderPipelineReflection.cpp │ │ │ ├── RenderStateApplication.cpp │ │ │ ├── Resource.cpp │ │ │ ├── SRGBWriteControl.cpp │ │ │ ├── SamplerState.cpp │ │ │ ├── SyncObjects.cpp │ │ │ ├── Texture.cpp │ │ │ ├── Texture3D.cpp │ │ │ ├── TextureBuffer.cpp │ │ │ ├── TextureBufferBase.cpp │ │ │ ├── TextureTarget.cpp │ │ │ ├── Timer.cpp │ │ │ ├── UniformAdapter.cpp │ │ │ ├── UniformBlockBuffer.cpp │ │ │ ├── UniformBuffer.cpp │ │ │ ├── Version.cpp │ │ │ ├── VertexArrayObjectOGL.cpp │ │ │ ├── VertexInputState.cpp │ │ │ ├── ViewTextureTarget.cpp │ │ │ ├── ios/ │ │ │ │ └── TextureBuffer.mm │ │ │ └── macos/ │ │ │ └── TextureBuffer.mm │ │ ├── util/ │ │ │ ├── Color.h │ │ │ ├── Common.cpp │ │ │ ├── Common.h │ │ │ ├── Half.h │ │ │ ├── SpvModules.cpp │ │ │ ├── SpvModules.h │ │ │ ├── TestDevice.cpp │ │ │ ├── TestDevice.h │ │ │ ├── TestErrorGuard.cpp │ │ │ ├── TestErrorGuard.h │ │ │ ├── TextureFormatTestBase.cpp │ │ │ ├── TextureFormatTestBase.h │ │ │ ├── TextureValidationHelpers.h │ │ │ ├── device/ │ │ │ │ ├── MetalTestDevice.h │ │ │ │ ├── MetalTestDevice.mm │ │ │ │ ├── TestDevice.cpp │ │ │ │ ├── TestDevice.h │ │ │ │ ├── d3d12/ │ │ │ │ │ ├── TestDevice.cpp │ │ │ │ │ └── TestDevice.h │ │ │ │ ├── metal/ │ │ │ │ │ ├── TestDevice.h │ │ │ │ │ └── TestDevice.mm │ │ │ │ ├── opengl/ │ │ │ │ │ ├── TestDevice.cpp │ │ │ │ │ └── TestDevice.h │ │ │ │ └── vulkan/ │ │ │ │ ├── TestDevice.cpp │ │ │ │ └── TestDevice.h │ │ │ └── simdstub.h │ │ └── vulkan/ │ │ ├── ColorSpace.cpp │ │ ├── CommandBufferVulkanTest.cpp │ │ ├── CommonTest.cpp │ │ ├── ComputeCommandEncoderVulkanTest.cpp │ │ ├── DescriptorPoolArenaTest.cpp │ │ ├── Device.cpp │ │ ├── DeviceExtendedVulkanTest.cpp │ │ ├── FramebufferVulkanTest.cpp │ │ ├── ImageLayoutTransitionTest.cpp │ │ ├── PipelineStateTest.cpp │ │ ├── RenderCommandEncoderVulkanTest.cpp │ │ ├── RenderPipelineStateTest.cpp │ │ ├── ResourcesBinderTest.cpp │ │ ├── SpvConstantSpecializationExtendedTest.cpp │ │ ├── SpvConstantSpecializationTest.cpp │ │ ├── SpvReflectionTest.cpp │ │ ├── Texture.cpp │ │ ├── TextureFormat.cpp │ │ ├── TextureVulkanExtendedTest.cpp │ │ ├── VulkanBufferTest.cpp │ │ ├── VulkanContextExtendedTest.cpp │ │ ├── VulkanDescriptorSetLayoutTest.cpp │ │ ├── VulkanFeaturesTest.cpp │ │ ├── VulkanFenceTest.cpp │ │ ├── VulkanHelpersTest.cpp │ │ ├── VulkanImageTest.cpp │ │ ├── VulkanImageViewTest.cpp │ │ ├── VulkanImmediateCommandsTest.cpp │ │ ├── VulkanPipelineBuilderTest.cpp │ │ ├── VulkanQueuePool.cpp │ │ ├── VulkanRenderPassBuilderTest.cpp │ │ ├── VulkanSemaphoreExtendedTest.cpp │ │ ├── VulkanStagingDeviceTest.cpp │ │ ├── VulkanSwapchainExtendedTest.cpp │ │ └── VulkanSwapchainTest.cpp │ ├── vulkan/ │ │ ├── Buffer.cpp │ │ ├── Buffer.h │ │ ├── CMakeLists.txt │ │ ├── CommandBuffer.cpp │ │ ├── CommandBuffer.h │ │ ├── CommandQueue.cpp │ │ ├── CommandQueue.h │ │ ├── Common.cpp │ │ ├── Common.h │ │ ├── ComputeCommandEncoder.cpp │ │ ├── ComputeCommandEncoder.h │ │ ├── ComputePipelineState.cpp │ │ ├── ComputePipelineState.h │ │ ├── Device.cpp │ │ ├── Device.h │ │ ├── Framebuffer.cpp │ │ ├── Framebuffer.h │ │ ├── HWDevice.cpp │ │ ├── HWDevice.h │ │ ├── PipelineState.cpp │ │ ├── PipelineState.h │ │ ├── PlatformDevice.cpp │ │ ├── PlatformDevice.h │ │ ├── RenderCommandEncoder.cpp │ │ ├── RenderCommandEncoder.h │ │ ├── RenderPipelineReflection.cpp │ │ ├── RenderPipelineReflection.h │ │ ├── RenderPipelineState.cpp │ │ ├── RenderPipelineState.h │ │ ├── ResourcesBinder.cpp │ │ ├── ResourcesBinder.h │ │ ├── SamplerState.cpp │ │ ├── SamplerState.h │ │ ├── ShaderModule.cpp │ │ ├── ShaderModule.h │ │ ├── Texture.cpp │ │ ├── Texture.h │ │ ├── VulkanBuffer.cpp │ │ ├── VulkanBuffer.h │ │ ├── VulkanContext.cpp │ │ ├── VulkanContext.h │ │ ├── VulkanDescriptorSetLayout.cpp │ │ ├── VulkanDescriptorSetLayout.h │ │ ├── VulkanFeatures.cpp │ │ ├── VulkanFeatures.h │ │ ├── VulkanFence.cpp │ │ ├── VulkanFence.h │ │ ├── VulkanFramebuffer.cpp │ │ ├── VulkanFramebuffer.h │ │ ├── VulkanFunctionTable.c │ │ ├── VulkanFunctionTable.h │ │ ├── VulkanHelpers.c │ │ ├── VulkanHelpers.h │ │ ├── VulkanImage.cpp │ │ ├── VulkanImage.h │ │ ├── VulkanImageView.cpp │ │ ├── VulkanImageView.h │ │ ├── VulkanImmediateCommands.cpp │ │ ├── VulkanImmediateCommands.h │ │ ├── VulkanPipelineBuilder.cpp │ │ ├── VulkanPipelineBuilder.h │ │ ├── VulkanQueuePool.cpp │ │ ├── VulkanQueuePool.h │ │ ├── VulkanRenderPassBuilder.cpp │ │ ├── VulkanRenderPassBuilder.h │ │ ├── VulkanSemaphore.cpp │ │ ├── VulkanSemaphore.h │ │ ├── VulkanShaderModule.cpp │ │ ├── VulkanShaderModule.h │ │ ├── VulkanStagingDevice.cpp │ │ ├── VulkanStagingDevice.h │ │ ├── VulkanSwapchain.cpp │ │ ├── VulkanSwapchain.h │ │ ├── VulkanTexture.cpp │ │ ├── VulkanTexture.h │ │ ├── VulkanVma.h │ │ ├── android/ │ │ │ ├── NativeHWBuffer.cpp │ │ │ └── NativeHWBuffer.h │ │ ├── moltenvk/ │ │ │ ├── MoltenVkHelpers.h │ │ │ └── MoltenVkHelpers.mm │ │ └── util/ │ │ ├── SpvConstantSpecialization.cpp │ │ ├── SpvConstantSpecialization.h │ │ ├── SpvReflection.cpp │ │ ├── SpvReflection.h │ │ ├── TextureFormat.cpp │ │ └── TextureFormat.h │ └── win/ │ ├── LogDefault.cpp │ └── LogDefault.h └── third-party/ ├── .gitignore ├── bootstrap-content.json ├── bootstrap-deps.json └── bootstrap.py