Mesa always clears the generic binding if the buffer deleted
is bound to an indexed binding, even if it's not bound to the
generic binding.
BUGS=[371324321]
- We change GLDescriptorSet::Buffer default constructor to
workaround a client's compiler set up issue.
- We removed the assert_invariant that checks that ubo/samplers
are not changed after committed in DescriptorSet. This caused
an existing client's build to crash.
We use Mesa's gallium swrast to render as the driver with
Filament's backend set to GL. We provide a few scripts to parse
the tests (as jsons) and run gltf_viewer to produce the rendering.
For GL+Linux, PlatformGLX will try to open an X11 window
regardless of whether we are doing headless/offscreen rendering
or not.
Here we add an OSMesa platform, which will allow us to avoid
opening any window on Linux. This is particularly useful for
situation where a display is not available, like for CI.
One important detail is that even though we are displaying through
a window, we keep the SDL2 dependency in tact for gltf_viewer.
This is due to the fact that gltf_viewer is built upon
FilamentApp, which is heavily integrated with SDL2. This is mostly
ok since we won't be hitting any path for opening a window due to
gltf_viewer's existing support for headless mode.
Currently mLayerCount for RenderTarget is always updated to the number
of depth for attachments, which incurs unintended behaviors for some
types of textures. i.e., 2d array, cubemap array, and 3d textures.
Fix this by updating mLayerCount only for multiview use case.
BUGS=[369165616]
scissor() works like on metal now, that is, it is disabled when a
render pass starts.
The GL backend already assumed this in debug mode. We cannot really run
into issues at the moment because every time we get a new
MaterialInstance we set the scissor -- we do this both for the
color pass and the post-process passes. With this change we will be
able to skip setting the scissor altogether in a lot of cases.
- Also used a smaller runner as the gains from the 32-core was
not efficient when comparing output times.
- Clean-up:
- Rename the android continuous to a proper name
- set 'echo on' for the Windows release build so we'll know
why the output asset does not get "moved" correclty.
Found through testing that renderStandaloneView+vk+swiftshader
seems to cause synchronization issues, which results in incorrect
rendering. Here we workaround the issue by forcibly flush and
wait per renderStandaloneView call.
BUG=361822355
- Both Scene and IBL are holding on to a skybox reference. We
need to make sure the order they are destroyed in right order.
- Reloading IBL should trigger resetting the indrect light in
gltf_viewer.
FrameSkipper was recently broken because of a typo resulting in
the frame latency being always 3 instead of the default of 2.
This change also makes the maximum latency 2 instead of 3, because on
ANDROID, 3 can cause CPU throttling at seemingly random places on the
GL thread.
Clients can create a multi-layered render target that consists of array
textures, and use it as a custom render target.
A new sample app "hellostereo" demonstrates how to use this feature.
when debug markers are implemented with systrace, begin/end can is not
guaranteed to happen in the same C++ scope, so we can't really use
other scoped systraces.
- Pulled the android continuous workflow into an action
- Split the android continuous build into 3 ABIs armv7, armv8a,
and x86_64 (note that x86 is not present).
- Remove the upload artifacts step from previous workflow.
This was meant for letting client try a tip-of-tree Android
build. We can revisit this later. (Also removed mention
in README.md)
- Split the android continous into debug build and a release
build commands, enabling deletion of intermediate output
directory.
make sure to unset all textures in the per-view sampler group after
they are used, because the resource could be destroyed after the
pass is finished
- unset the fog and ibl_specular after the color pass
- move that cleanup a bit earlier
- in the case of screen-space reflection the structure pass is
set, but might not be used in the color pass, so we also need to
unset it after the SSR pass and before any other passes.
Also tag user texture "FTexture" if user doesn't provide a tag, this
is so that we can distinguish them from internal textures that might
not be tagged.
with a previous change we were too aggressive in falling back to
"no buffer padding", we need to do this only in the case where
"as subpass" would have been used if supported by the h/w.
This is because we had this assumption on vk and mtl backends already
and also because SYSTRACE works this way and we didn't have non-null
terminated strings. This makes things more consistant and less bug
prone.
this is because the "disposer" is now separate from the
ResourceAllocator, so even if we don't use the resource allocator we
need to register the handle with the disposer.
vk, metal and desktop gl all support depth clamp, GLES/android also does
with ANGLE. Add support for it in the backends.
use depth clamp to improve directional shadow quality; this allows
to render everything that's behind the camera at the same "zero" depth,
so we can reduce the depth range we need.
Fixes#6293