Commit bec6e0a
JoshJRive
feat(vulkan): Add ability to pre-build draw pipelines (#11945) 15be2c7178
Add two new functions to RenderContextVulkanImpl:
preparePipelines: Given an interlock mode, framebuffer props, and a load action, kick off all of the valid ubershaders pipelines for that combination
waitForAllPipelines: Waits for any pipelines that are currently building in the background to complete.
With these it is now possible to kick off any pipelines that you might need and let them finish before trying to render, to avoid there being any stalls at runtime when we don't have an ubershader.
fix(gl): Only use linear filtering when supported (#11975) 22eca6b13d
Turns out, linear filtering isn't always supported on float textures.
When it isn't, resolve the atlas texture into a separate GL_R8 texture
for filtering.
This change also takes the initiative to resolve all non-float atlas
formats to GL_R8 so we can remove the "TEXTURE_GATHER" logic and just do
a simple linear texture sample on the atlas.1 parent af1490b commit bec6e0a
2 files changed
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
Submodule rive-runtime updated 34 files
- .rive_head+1-1
- include/rive/enum_bitset.hpp+41
- include/rive/math/bitwise.hpp+257
- include/rive/math/math_types.hpp-46
- include/rive/shapes/paint/blend_mode.hpp+3-1
- renderer/include/rive/renderer/async_pipeline_manager.hpp+205-34
- renderer/include/rive/renderer/d3d/pipeline_manager.hpp+3-2
- renderer/include/rive/renderer/gl/gles3.hpp+1
- renderer/include/rive/renderer/gl/render_context_gl_impl.hpp+18-14
- renderer/include/rive/renderer/gpu.hpp+95-4
- renderer/include/rive/renderer/vulkan/render_context_vulkan_impl.hpp+11
- renderer/src/gl/render_context_gl_impl.cpp+415-192
- renderer/src/gpu.cpp+618-262
- renderer/src/metal/render_context_metal_impl.mm+5-2
- renderer/src/render_context.cpp+3-2
- renderer/src/shaders/advanced_blend.glsl-9
- renderer/src/shaders/atomic_draw.glsl+6-4
- renderer/src/shaders/draw_mesh.frag+4-3
- renderer/src/shaders/draw_msaa_object.frag+29-22
- renderer/src/shaders/draw_path_common.glsl+2-77
- renderer/src/shaders/glsl.glsl+1-1
- renderer/src/shaders/render_atlas.glsl+14-14
- renderer/src/shaders/resolve_atlas.glsl+67-20
- renderer/src/vulkan/draw_pipeline_vulkan.cpp+35-31
- renderer/src/vulkan/draw_pipeline_vulkan.hpp+5-5
- renderer/src/vulkan/draw_shader_vulkan.cpp+10
- renderer/src/vulkan/pipeline_manager_vulkan.cpp+267-2
- renderer/src/vulkan/pipeline_manager_vulkan.hpp+22-1
- renderer/src/vulkan/render_context_vulkan_impl.cpp+33-7
- renderer/src/webgpu/render_context_webgpu_impl.cpp+11-16
- tests/common/testing_window_android_vulkan.cpp+5-1
- tests/gm/atlastypes.cpp+28-9
- tests/unit_tests/runtime/enum_bitset_test.cpp+18
- tests/unit_tests/runtime/math_test.cpp+121
0 commit comments