diff --git a/NEW_RELEASE_NOTES.md b/NEW_RELEASE_NOTES.md index 4a1a9c7fa7..598b7a4210 100644 --- a/NEW_RELEASE_NOTES.md +++ b/NEW_RELEASE_NOTES.md @@ -7,3 +7,6 @@ for next branch cut* header. appropriate header in [RELEASE_NOTES.md](./RELEASE_NOTES.md). ## Release notes for next branch cut + +- engine: Fix bug causing certain sampler parameters to not be applied correctly in GLES 2.0 and on + certain GLES 3.0 drivers. diff --git a/README.md b/README.md index 97e81b5e08..51e921b31d 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ repositories { } dependencies { - implementation 'com.google.android.filament:filament-android:1.53.2' + implementation 'com.google.android.filament:filament-android:1.53.3' } ``` @@ -51,7 +51,7 @@ Here are all the libraries available in the group `com.google.android.filament`: iOS projects can use CocoaPods to install the latest release: ```shell -pod 'Filament', '~> 1.53.2' +pod 'Filament', '~> 1.53.3' ``` ### Snapshots diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index d1392c5a60..805b8f277c 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -7,6 +7,9 @@ A new header is inserted each time a *tag* is created. Instead, if you are authoring a PR for the main branch, add your release note to [NEW_RELEASE_NOTES.md](./NEW_RELEASE_NOTES.md). +## v1.53.4 + + ## v1.53.3 - Add drag and drop support for IBL files for desktop gltf_viewer. diff --git a/android/gradle.properties b/android/gradle.properties index 7994c61d4a..79f3285970 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,5 +1,5 @@ GROUP=com.google.android.filament -VERSION_NAME=1.53.2 +VERSION_NAME=1.53.3 POM_DESCRIPTION=Real-time physically based rendering engine for Android. diff --git a/ios/CocoaPods/Filament.podspec b/ios/CocoaPods/Filament.podspec index f1f1105fa3..07eccef0bd 100644 --- a/ios/CocoaPods/Filament.podspec +++ b/ios/CocoaPods/Filament.podspec @@ -1,12 +1,12 @@ Pod::Spec.new do |spec| spec.name = "Filament" - spec.version = "1.53.2" + spec.version = "1.53.3" spec.license = { :type => "Apache 2.0", :file => "LICENSE" } spec.homepage = "https://google.github.io/filament" spec.authors = "Google LLC." spec.summary = "Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WASM/WebGL." spec.platform = :ios, "11.0" - spec.source = { :http => "https://github.com/google/filament/releases/download/v1.53.2/filament-v1.53.2-ios.tgz" } + spec.source = { :http => "https://github.com/google/filament/releases/download/v1.53.3/filament-v1.53.3-ios.tgz" } # Fix linking error with Xcode 12; we do not yet support the simulator on Apple silicon. spec.pod_target_xcconfig = { diff --git a/libs/gltfio/src/extended/AssetLoaderExtended.h b/libs/gltfio/src/extended/AssetLoaderExtended.h index a803fb4f13..bac61c85f0 100644 --- a/libs/gltfio/src/extended/AssetLoaderExtended.h +++ b/libs/gltfio/src/extended/AssetLoaderExtended.h @@ -70,7 +70,8 @@ struct AssetLoaderExtended { : mEngine(engine), mGltfPath(config.gltfPath), mMaterials(materials), - mUriDataCache(std::make_shared()) {} + mUriDataCache(std::make_shared()), + mCgltfBuffersLoaded(false) {} ~AssetLoaderExtended() = default; diff --git a/libs/utils/include/utils/WorkStealingDequeue.h b/libs/utils/include/utils/WorkStealingDequeue.h index f9f5b5fbc2..43735f0a57 100644 --- a/libs/utils/include/utils/WorkStealingDequeue.h +++ b/libs/utils/include/utils/WorkStealingDequeue.h @@ -92,9 +92,11 @@ void WorkStealingDequeue::push(TYPE item) noexcept { index_t bottom = mBottom.load(std::memory_order_relaxed); setItemAt(bottom, item); - // std::memory_order_release is used because we release the item we just pushed to other + // Here we need std::memory_order_release because we release, the item we just pushed, to other // threads which are calling steal(). - mBottom.store(bottom + 1, std::memory_order_release); + // However, generally seq_cst cannot be mixed with other memory orders. So we must use seq_cst. + // see: https://plv.mpi-sws.org/scfix/paper.pdf + mBottom.store(bottom + 1, std::memory_order_seq_cst); } /* @@ -154,9 +156,11 @@ TYPE WorkStealingDequeue::pop() noexcept { assert(top - bottom == 1); } - // std::memory_order_relaxed used because we're not publishing any data. + // Here, we only need std::memory_order_relaxed because we're not publishing any data. // No concurrent writes to mBottom possible, it's always safe to write mBottom. - mBottom.store(top, std::memory_order_relaxed); + // However, generally seq_cst cannot be mixed with other memory orders. So we must use seq_cst. + // see: https://plv.mpi-sws.org/scfix/paper.pdf + mBottom.store(top, std::memory_order_seq_cst); return item; } diff --git a/shaders/src/fog.fs b/shaders/src/fog.fs index 33d99eb803..d724db1175 100644 --- a/shaders/src/fog.fs +++ b/shaders/src/fog.fs @@ -7,6 +7,11 @@ vec4 fog(vec4 color, highp vec3 view) { // note: d can be +inf with the skybox highp float d = length(view); + // early exit for object "in front" of the fog + if (d < frameUniforms.fogStart) { + return color; + } + // fogCutOffDistance is set to +inf to disable the cutoff distance if (d > frameUniforms.fogCutOffDistance) { return color; diff --git a/web/filament-js/package.json b/web/filament-js/package.json index c381eef571..a79fd893ab 100644 --- a/web/filament-js/package.json +++ b/web/filament-js/package.json @@ -1,6 +1,6 @@ { "name": "filament", - "version": "1.53.2", + "version": "1.53.3", "description": "Real-time physically based rendering engine", "main": "filament.js", "module": "filament.js",