Skip to content

Commit ffdece2

Browse files
committed
Update android build to use webgpu
1 parent 6fa6498 commit ffdece2

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed

android/build.gradle

+8
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
// com.google.android.filament.exclude-vulkan
1212
// When set, support for Vulkan will be excluded.
1313
//
14+
// com.google.android.filament.include-webgpu
15+
// When set, enables WebGPU support.
16+
//
1417
// com.google.android.filament.fgviewer
1518
// When set, enables fgviewer
1619
//
@@ -64,6 +67,10 @@ buildscript {
6467
.gradleProperty("com.google.android.filament.exclude-vulkan")
6568
.isPresent()
6669

70+
def includeWebGPU = providers
71+
.gradleProperty("com.google.android.filament.include-webgpu")
72+
.isPresent()
73+
6774
// TODO: Uncomment below when fgviewer is ready
6875
// def fgviewer = providers
6976
// .gradleProperty("com.google.android.filament.fgviewer")
@@ -123,6 +130,7 @@ buildscript {
123130
"-DANDROID_STL=c++_static",
124131
"-DFILAMENT_DIST_DIR=${filamentPath}".toString(),
125132
"-DFILAMENT_SUPPORTS_VULKAN=${excludeVulkan ? 'OFF' : 'ON'}".toString(),
133+
"-DFILAMENT_SUPPORTS_WEBGPU=${includeWebGPU ? 'ON' : 'OFF'}".toString(),
126134
// TODO: Uncomment below when fgviewer is ready
127135
// "-DFILAMENT_ENABLE_FGVIEWER=${fgviewer ? 'ON' : 'OFF'}".toString(),
128136
"-DFILAMENT_ENABLE_MATDBG=${matdbg ? 'ON' : 'OFF'}".toString(),

android/filament-android/CMakeLists.txt

+8
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ option(FILAMENT_SUPPORTS_VULKAN "Enables Vulkan on Android" OFF)
66
# option(FILAMENT_ENABLE_FGVIEWER "Enables Frame Graph Viewer" OFF)
77
option(FILAMENT_ENABLE_MATDBG "Enables Material debugger" OFF)
88
option(FILAMENT_DISABLE_MATOPT "Disables material optimizations" OFF)
9+
option(FILAMENT_SUPPORTS_WEBGPU "Enables WebGPU on Android" OFF)
910

1011
set(FILAMENT_DIR ${FILAMENT_DIST_DIR})
1112

@@ -49,6 +50,12 @@ add_library(vkshaders STATIC IMPORTED)
4950
set_target_properties(vkshaders PROPERTIES IMPORTED_LOCATION
5051
${FILAMENT_DIR}/lib/${ANDROID_ABI}/libvkshaders.a)
5152

53+
if (FILAMENT_SUPPORTS_WEBGPU)
54+
add_library(webgpu_dawn STATIC IMPORTED)
55+
set_target_properties(webgpu_dawn PROPERTIES IMPORTED_LOCATION
56+
${FILAMENT_DIR}/lib/${ANDROID_ABI}/libwebgpu_dawn.a)
57+
endif()
58+
5259
add_library(smol-v STATIC IMPORTED)
5360
set_target_properties(smol-v PROPERTIES IMPORTED_LOCATION
5461
${FILAMENT_DIR}/lib/${ANDROID_ABI}/libsmol-v.a)
@@ -132,6 +139,7 @@ target_link_libraries(filament-jni
132139
$<$<STREQUAL:${FILAMENT_ENABLE_MATDBG},ON>:filamat>
133140
$<$<STREQUAL:${FILAMENT_SUPPORTS_VULKAN},ON>:bluevk>
134141
$<$<STREQUAL:${FILAMENT_SUPPORTS_VULKAN},ON>:vkshaders>
142+
$<$<STREQUAL:${FILAMENT_SUPPORTS_WEBGPU},ON>:webgpu_dawn>
135143
$<$<STREQUAL:${FILAMENT_SUPPORTS_VULKAN},ON>:smol-v>
136144
)
137145

android/gradle.properties

+4
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,9 @@ android.nonFinalResIds=false
2525
com.google.android.filament.tools-dir=../../../out/release/filament
2626
com.google.android.filament.dist-dir=../out/android-release/filament
2727
com.google.android.filament.abis=all
28+
29+
# Below line should be enabled, if filament is built with WebGPU support
30+
#com.google.android.filament.include-webgpu
31+
2832
#com.google.android.filament.matdbg
2933
#com.google.android.filament.matnopt

build.sh

+4
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ VULKAN_ANDROID_OPTION="-DFILAMENT_SUPPORTS_VULKAN=ON"
195195
VULKAN_ANDROID_GRADLE_OPTION=""
196196

197197
WEBGPU_OPTION="-DFILAMENT_SUPPORTS_WEBGPU=OFF"
198+
WEBGPU_ANDROID_GRADLE_OPTION=""
198199

199200
EGL_ON_LINUX_OPTION="-DFILAMENT_SUPPORTS_EGL_ON_LINUX=OFF"
200201

@@ -530,6 +531,7 @@ function build_android {
530531
-Pcom.google.android.filament.dist-dir=../out/android-debug/filament \
531532
-Pcom.google.android.filament.abis=${ABI_GRADLE_OPTION} \
532533
${VULKAN_ANDROID_GRADLE_OPTION} \
534+
${WEBGPU_ANDROID_GRADLE_OPTION} \
533535
${MATDBG_GRADLE_OPTION} \
534536
${MATOPT_GRADLE_OPTION} \
535537
:filament-android:assembleDebug \
@@ -579,6 +581,7 @@ function build_android {
579581
-Pcom.google.android.filament.dist-dir=../out/android-release/filament \
580582
-Pcom.google.android.filament.abis=${ABI_GRADLE_OPTION} \
581583
${VULKAN_ANDROID_GRADLE_OPTION} \
584+
${WEBGPU_ANDROID_GRADLE_OPTION} \
582585
${MATDBG_GRADLE_OPTION} \
583586
${MATOPT_GRADLE_OPTION} \
584587
:filament-android:assembleRelease \
@@ -959,6 +962,7 @@ while getopts ":hacCfgimp:q:uvWslwedtk:bx:S:X:" opt; do
959962
;;
960963
W)
961964
WEBGPU_OPTION="-DFILAMENT_SUPPORTS_WEBGPU=ON"
965+
WEBGPU_ANDROID_GRADLE_OPTION="-Pcom.google.android.filament.include-webgpu"
962966
echo "Enable support for WebGPU(Experimental) in the core Filament library."
963967
;;
964968
s)

0 commit comments

Comments
 (0)