GitShow/facebook/igl
facebook

igl

Intermediate Graphics Library (IGL) is a cross-platform library that commands the GPU. It provides a single low-level cross-platform interface on top of various graphics APIs (e.g. OpenGL, Metal and Vulkan).

by facebook
Star on GitHubFork

C++

3.2k stars214 forks183 contributorsActive · 3h agoSince 2023v1.1.1

Meet the team

See all 183 on GitHub →
corporateshark
corporateshark1.2k contributions
rudybear
rudybear587 contributions
EricGriffith
EricGriffith300 contributions
mmaurer
mmaurer272 contributions
francoiscoulombe
francoiscoulombe217 contributions
metarokuz
metarokuz168 contributions
vinsentli
vinsentli126 contributions
nlutsenko
nlutsenko95 contributions

Languages

View on GitHub →
C++85.6%
Objective-C++7.2%
C4.2%
CMake1.2%
Objective-C0.9%
Java0.8%

Commit activity

Last 12 weeks · 793 commits

Full graph →

Community health

5 of 6 standards met

Community profile →
87
✓README✓License✓Contributing✓Code of Conduct○Issue Template✓PR Template

Recent fixes

View closed PRs →
vinsentli
Android Vulkan PerformanceClosedIssue

I tested on Qualcomm Adreno (TM) 750, 730, and other chips, and found that Vulkan consumes more CPU and memory compared to OpenGL ES. This seems inconsistent with our expectations. Do you see the same in your test data? When I used Android Studio to analyze the performance, I discovered that consumes the vast majority of the time in . Finally, the CPU spends most of its time in , , . According to the documentation https://github.com/rudybear/vulkan_best_practice_for_mobile_developers/blob/master/samples/performance/descriptor_management/descriptor_management_tutorial.md should be reused, rather than reallocated every frame. Do you also think so? If this is indeed the problem, do you have any optimization suggestions? I can proceed to implement them based on your plan.

vinsentli · 2w ago
vinsentli
igl | vulkan | Reuse the cached VkDescriptorSet to reduce vkAllocateDescriptorSets().MergedPR
vinsentli · 2w ago
vinsentli
igl | vulkan | fix: Correct format conversion between AHARDWAREBUFFER_FORMAT and igl::TextureFormat for R5G6B5_UNormMergedPR

Initially, IGL only supported the TextureFormat::B5G6R5_UNorm format, so AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM was mapped to TextureFormat::B5G6R5_UNorm. Later, I introduced TextureFormat::R5G6B5_UNorm(https://github.com/facebook/igl/pull/358), which introduced a mapping conflict: both TextureFormat::R5G6B5_UNorm and TextureFormat::B5G6R5_UNorm were forwarded to AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM, while the reverse mapping (from AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM back to an IGL texture format) could only resolve to TextureFormat::B5G6R5_UNorm. To fix this, I’ve standardized the mapping to exclusively pair AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM with TextureFormat::R5G6B5_UNorm. ⚠️ This is a breaking change: It may require migration work for existing users who previously relied on TextureFormat::B5G6R5_UNorm for Android Hardware Buffer workflows. Please carefully assess whether to merge this PR.

vinsentli · 2w ago
Structured data for AI agents

Repository: facebook/igl. Description: Intermediate Graphics Library (IGL) is a cross-platform library that commands the GPU. It provides a single low-level cross-platform interface on top of various graphics APIs (e.g. OpenGL, Metal and Vulkan). Stars: 3215, Forks: 214. Primary language: C++. Languages: C++ (85.6%), Objective-C++ (7.2%), C (4.2%), CMake (1.2%), Objective-C (0.9%). Latest release: v1.1.1 (11mo ago). Open PRs: 0, open issues: 0. Last activity: 3h ago. Community health: 87%. Top contributors: corporateshark, rudybear, EricGriffith, mmaurer, francoiscoulombe, metarokuz, vinsentli, nlutsenko, trviv, syeh1 and others.

·@ofershap

Replace github.com with gitshow.dev