Commit Graph
4087 Commits
Author SHA1 Message Date
Ben Doherty 7f2ebd25bc Update glslang's tnt/CMakeLists.txt (#4348) 2021-07-20 15:02:22 -07:00
Mathias Agopian fc32fa3a78 Improve s3tc_srgb detection on desktop
Fixes #4336
2021-07-19 23:22:12 -07:00
Mathias Agopian a3cf2ee61a Add bilateral threshold in SSAO options.
This can have a dramatic effect on SSAO and needs 
to be adjusted based on the scene's scale/units.

The default value used to be about 6cm, and has 
been changed to 5mm.
2021-07-19 18:26:19 -07:00
Mathias Agopian cc287386aa associate sidecar MS buffer to its texture instead of RenderTarget
this allows the sidecar buffer to have the same lifetime than the
texture it represents, and therefore participate to the caching of
that texture.

Fixes #4338
2021-07-19 18:26:00 -07:00
Romain Guy 9ea1dbad93 Update AGP and Kotlin versions 2021-07-19 17:29:50 -07:00
Romain Guy 4a849c7caf Update RELEASE_NOTES.md 2021-07-19 17:22:27 -07:00
Romain Guy a77a9ade29 New tone mapper API (#4330)
* WIP New tone mapper API

* Implement tone mapper constructors and destructors

* Add new genertic tone mapper

* Make the generic tone mapper available in our sample UIs

* Fix warnings and crashes

* Fix generic tone mapper and graph mappers in the UI

* Add Java APIs for ToneMapper

* Implement copy/move operators for GenericToneMapper
2021-07-19 17:19:53 -07:00
Ben Doherty 090d23434c Metal: use private instead of memoryless textures for MSAA (#4333) 2021-07-19 11:21:07 -07:00
Ben Doherty 83850c8201 Metal: Use an intermediate texture to avoid setting UsageRenderTarget on all textures (#4334) 2021-07-19 11:20:31 -07:00
Benjamin Doherty d306bfe147 Update RELEASE_NOTES for 1.11.0 2021-07-19 10:19:32 -07:00
Benjamin Doherty adfc4a5b0c Release Filament 1.11.0 2021-07-19 10:18:37 -07:00
Philip Rideout 6b249bde4b Enable debug info in materials in debug builds.
This lets you see highly readable GLSL when transpiling the generated
SPIRV back to GLSL, with the original variable names preserved.

For now this is only useful when using `matinfo`, but it will soon be
useful in `matdbg` too.
2021-07-16 10:32:42 -07:00
Benjamin Doherty 1036759f39 Remove os_release in MetalDriver
os_release is only needed (and available) when ARC is turned off.
2021-07-15 19:09:13 -07:00
Ben Doherty 302c07048c Switch Metal driver to use HandleAllocator (#4326) 2021-07-15 16:56:19 -07:00
Ben Doherty 2686b0bbac Allow iOS gltf-viewer to load models from documents directory (#4327) 2021-07-15 16:42:59 -07:00
Mathias Agopian cece128bb9 Update bug_report.md 2021-07-15 16:35:57 -07:00
Mathias Agopian 3e5471d32a Implement sharing of bones for skinning
The API now allows to create a standalone SkinningBuffer containing
Bones for skinning. This SkinningBuffer can even be very large and
contain bone data for several renderables.

New APIs on RenderableManager allow to switch to skinning buffer mode
and to set the SkinningBuffer (and window into it) to use.


Fixes #3238
2021-07-15 16:29:26 -07:00
Romain Guy 272f786f35 Fix build warning 2021-07-15 14:05:38 -07:00
Romain Guy 0dd04f6e73 Update README.md 2021-07-15 09:23:56 -07:00
Romain Guy a5221fc816 Update BUILDING.md 2021-07-15 09:21:36 -07:00
Romain Guy 29f6616cee Update BUILDING.md 2021-07-15 09:19:50 -07:00
Romain Guy 0d08402004 Fix test_settings 2021-07-14 23:04:39 -07:00
Romain Guy 64c2ab7048 Generalize luminance scaling in color grading (#4321)
* Generalize luminance scaling in color grading

Previously the luminance scaling step was tied to a specific tone
mapping operator, called "EVILS" in the API. This was however
somewhat misleading as EVILS really is a color handling system
that's independent of what we call tone mapping.

This change splits the luminance scaling step from the tone mapping
step, allowing the use of luminance scaling (the LICH part of EVILS)
with any tone mapping operator.

As a result, the operator known as EVILS is currently mapped to the
linear operator and renamed to "RESERVED" until it is replaced by
a proper — configurable — operator.

* Update release notes

* Fix web build
2021-07-14 22:18:07 -07:00
Philip Rideout 26a54ba86a Consolidate definitions of VariantList. 2021-07-14 16:37:53 -07:00
Philip Rideout 32b3f16573 matdbg: fix active variant list, update README. 2021-07-14 16:37:53 -07:00
Romain Guy 4080a0a5d5 Small cleanup and improvements in ColorGrading (#4320)
Saturation and vibrance were using the wrong luminance weights,
and this change switches EVILS to HK weighted luminance weights
to give better results.
2021-07-14 16:23:55 -07:00
Mathias Agopian 17d67f2a39 get rid of the GPUBuffer class which was used in one place only 2021-07-14 11:45:00 -07:00
Philip Rideout 9c20efd235 Parameterize HandleAllocator and use it in VulkanDriver. (#4309)
* Parameterize HandleAllocator and use it in VulkanDriver.

* Provide macros for HandleAllocator instantiations.
2021-07-14 10:16:54 -07:00
Romain Guy b46833680d Simplify image loading now that Metal can reshape textures (#4315) 2021-07-14 09:42:41 -07:00
Mathias Agopian 4bcd862c0e fix a case where blended views + dynamic scaling didn't work
What was happening is that we were doing two blits at the end of the
frame instead of one, those blits are setup so that they only work
when the destination is the an imported target (it doesn't have to be
this way, but currently that's the only case we should have). Because
of the 2nd blit, the first one's destination would not be the
imported target and it would fail.

The real problem is that we shouldn't be doing two blits, just one
is enough. That was happening because the logic to decide if we 
needed the last blit was flawed.


Fixes #4306
2021-07-13 21:07:12 -07:00
Mathias Agopian c414ba9b2f Remove HwUniformBuffer and replace with HwBufferObject 2021-07-13 17:33:22 -07:00
Mathias Agopian 27a070c8f9 Remove some dependency on HwUniformBuffer 2021-07-13 17:33:22 -07:00
Mathias Agopian c8aea02d7d Use correct access and pipeline flags 2021-07-13 17:33:22 -07:00
Mathias Agopian 46ff9a433c don't store context/stagepool in each VulkanBuffer
This reduces the size of VulkanBuffer by 16 bytes, instead we just
pass those objects when needed.
2021-07-13 17:33:22 -07:00
Mathias Agopian c135b4aa19 don't use heap allocation for VulkanBuffer 2021-07-13 17:33:22 -07:00
Mathias Agopian 89d5f4a418 HwBufferObject can now be a uniform buffer 2021-07-13 17:33:22 -07:00
Mathias Agopian 003fe86ffb Add a BufferUsage parameter to HwBufferObject 2021-07-13 17:33:22 -07:00
Mathias Agopian 94c250a241 don't use a heap allocation for MetalBufferObject 2021-07-13 17:33:22 -07:00
Philip Rideout f1a69c8c36 Prep for using new handle allocator in Vulkan. (#4307)
Previously we were zero filling the data blob used to store all Vulkan
handles. This occured in VulkanDriver::alloc_handle().

There were several places that depended on the zero fill. These
have now been fixed up so that the handle can be constructed in a
more natural way.

Also: remove the OPENGL specific constant from HandleAllocator. This
breaks in non-CMake build systems (e.g. Bazel) that do not provide the
constant at a global level.
2021-07-13 16:37:28 -07:00
Mathias Agopian 2bd8faaef5 Improve HandleAllocator API
We now have:

  allocate<> which just allocates the handle's memory
  construct<> which constructs the handle allocated with allocate<>

  allocateAndConstruct<> which allocates AND constructs the handle
  destroyAndConstruct<> which destroys and constructs a handle in place

Normally you'd use allocate/construct but with synchronous calls, it
might be necessary to have an initialized handle immediately.
2021-07-13 16:32:17 -07:00
Ben Doherty 94a25452e8 Refactor Metal texture uploads (#4238)
Previously, Metal was never performing any texture conversions during upload. For example, `iblprefilter` loads `FLOAT` image data into the `R11F_G11_B10F` texture format. This PR fixes the issue, refactors the upload pipeline, and adds a new backend test for coverage.
2021-07-13 15:12:02 -07:00
Romain Guy 505cb39e1c Improvements to image_viewer (#4305)
Image loading errors are handled more gracefully by showing a
background color.

Added UI to set the background color.

Replaced fragment discards with solid background color.
2021-07-13 11:24:13 -07:00
Romain Guy 127dd8f675 Add new sample app: image_viewer (#4301)
* Add new sample app: image_viewer

This app shows how to load and visualize images. It's also useful to work
on color grading and other post-processing effects by just loading an HDR
or EXR image as a reference.

This change also adds a new exposure setting to the color grading LUT.

* Fix comments and build

* Fix Metal

* Use high precision for the UV coordinates

* Fix refactoring issue
2021-07-13 10:07:42 -07:00
Ian Brown fc5837b1b6 default to openGL when windows does not support VULKAN 2021-07-12 23:01:34 -07:00
Mathias Agopian 46e3d10e62 remove unneeded namespace qualifications 2021-07-12 18:03:47 -07:00
Ben Doherty 64c5dc63ab Audit usage of UTILS_PUBLIC and fix bluegl linking warning (#3988) 2021-07-12 17:09:13 -07:00
Romain Guy 31adb1213e Make white balance faster in ColorGrading 2021-07-12 12:18:53 -07:00
Benjamin Doherty 0344de57e9 Update RELEASE_NOTES for 1.10.7 2021-07-12 10:46:34 -07:00
Benjamin Doherty 750252b297 Release Filament 1.10.7 2021-07-12 10:45:43 -07:00
Romain Guy 4f28734042 Add support for KHR_materials_volume (#4291)
* Add support for KHR_materials_volume

* Add ubershader support for KHR_materials_volume

* Update readmes

* User highp on anything that affects UVs

* Add missing precision qualifiers

* Fix transmission
2021-07-09 20:50:27 -07:00