mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
[Impeller] Enable framebuffer fetch tests disabled on OpenGL ES. (flutter/engine#53766)
The texel fetch fallback used in place of framebuffer fetch isn't supported on ES 100. And this test is explicitly about framebuffer fetch. Fixes https://github.com/flutter/flutter/issues/144181 <img width="1050" alt="Screenshot 2024-07-08 at 3 21 30â¯PM" src="https://github.com/flutter/engine/assets/44085/b7468a2d-c385-457c-adf4-2ddb2cbae4a2">
This commit is contained in:
parent
ef889f9d05
commit
0ad423aaea
@ -5,6 +5,27 @@
|
||||
import("//flutter/impeller/tools/impeller.gni")
|
||||
import("//flutter/testing/testing.gni")
|
||||
|
||||
impeller_shaders("modern_shader_fixtures") {
|
||||
name = "modern_fixtures"
|
||||
|
||||
# 2.3 adds support for framebuffer fetch in Metal.
|
||||
metal_version = "2.3"
|
||||
|
||||
# Specify that framebuffer fetch is required for all backends. Compilation of
|
||||
# shaders will be gated on capability checks.
|
||||
require_framebuffer_fetch = true
|
||||
|
||||
# These shaders are not performance critical and malioc analysis of shaders
|
||||
# that use framebuffer fetch is unsupported anyway.
|
||||
analyze = false
|
||||
|
||||
shaders = [
|
||||
"sepia.frag",
|
||||
"sepia.vert",
|
||||
"swizzle.frag",
|
||||
]
|
||||
}
|
||||
|
||||
impeller_shaders("shader_fixtures") {
|
||||
name = "fixtures"
|
||||
|
||||
@ -14,6 +35,7 @@ impeller_shaders("shader_fixtures") {
|
||||
# Not analyzing because they are not performance critical, and mipmap uses
|
||||
# textureLod, which uses an extension that malioc does not support.
|
||||
analyze = false
|
||||
|
||||
shaders = [
|
||||
"array.frag",
|
||||
"array.vert",
|
||||
@ -35,14 +57,11 @@ impeller_shaders("shader_fixtures") {
|
||||
"planet.frag",
|
||||
"planet.vert",
|
||||
"sample.comp",
|
||||
"sepia.frag",
|
||||
"sepia.vert",
|
||||
"simple.vert",
|
||||
"spec_constant.frag",
|
||||
"spec_constant.vert",
|
||||
"stage1.comp",
|
||||
"stage2.comp",
|
||||
"swizzle.frag",
|
||||
"test_texture.frag",
|
||||
"test_texture.vert",
|
||||
"texture.frag",
|
||||
@ -174,6 +193,7 @@ group("fixtures") {
|
||||
|
||||
public_deps = [
|
||||
":file_fixtures",
|
||||
":modern_shader_fixtures",
|
||||
":scene_fixtures",
|
||||
":shader_fixtures",
|
||||
]
|
||||
|
||||
@ -47,6 +47,7 @@ impeller_component("playground") {
|
||||
}
|
||||
|
||||
public_deps = [
|
||||
"../fixtures:modern_shader_fixtures",
|
||||
"../fixtures:shader_fixtures",
|
||||
"../renderer",
|
||||
"../scene/shaders",
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
#include "impeller/entity/gles/framebuffer_blend_shaders_gles.h"
|
||||
#include "impeller/entity/gles/modern_shaders_gles.h"
|
||||
#include "impeller/fixtures/gles/fixtures_shaders_gles.h"
|
||||
#include "impeller/fixtures/gles/modern_fixtures_shaders_gles.h"
|
||||
#include "impeller/playground/imgui/gles/imgui_shaders_gles.h"
|
||||
#include "impeller/renderer/backend/gles/context_gles.h"
|
||||
#include "impeller/renderer/backend/gles/surface_gles.h"
|
||||
@ -117,6 +118,9 @@ ShaderLibraryMappingsForPlayground() {
|
||||
std::make_shared<fml::NonOwnedMapping>(
|
||||
impeller_fixtures_shaders_gles_data,
|
||||
impeller_fixtures_shaders_gles_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(
|
||||
impeller_modern_fixtures_shaders_gles_data,
|
||||
impeller_modern_fixtures_shaders_gles_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(
|
||||
impeller_imgui_shaders_gles_data, impeller_imgui_shaders_gles_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
#include "impeller/entity/mtl/framebuffer_blend_shaders.h"
|
||||
#include "impeller/entity/mtl/modern_shaders.h"
|
||||
#include "impeller/fixtures/mtl/fixtures_shaders.h"
|
||||
#include "impeller/fixtures/mtl/modern_fixtures_shaders.h"
|
||||
#include "impeller/playground/imgui/mtl/imgui_shaders.h"
|
||||
#include "impeller/renderer/backend/metal/context_mtl.h"
|
||||
#include "impeller/renderer/backend/metal/formats_mtl.h"
|
||||
@ -43,6 +44,9 @@ ShaderLibraryMappingsForPlayground() {
|
||||
impeller_framebuffer_blend_shaders_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(
|
||||
impeller_fixtures_shaders_data, impeller_fixtures_shaders_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(
|
||||
impeller_modern_fixtures_shaders_data,
|
||||
impeller_modern_fixtures_shaders_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(impeller_imgui_shaders_data,
|
||||
impeller_imgui_shaders_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(impeller_scene_shaders_data,
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
#include "impeller/entity/vk/framebuffer_blend_shaders_vk.h"
|
||||
#include "impeller/entity/vk/modern_shaders_vk.h"
|
||||
#include "impeller/fixtures/vk/fixtures_shaders_vk.h"
|
||||
#include "impeller/fixtures/vk/modern_fixtures_shaders_vk.h"
|
||||
#include "impeller/playground/imgui/vk/imgui_shaders_vk.h"
|
||||
#include "impeller/renderer/backend/vulkan/context_vk.h"
|
||||
#include "impeller/renderer/backend/vulkan/formats_vk.h"
|
||||
@ -40,6 +41,9 @@ ShaderLibraryMappingsForPlayground() {
|
||||
std::make_shared<fml::NonOwnedMapping>(
|
||||
impeller_fixtures_shaders_vk_data,
|
||||
impeller_fixtures_shaders_vk_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(
|
||||
impeller_modern_fixtures_shaders_vk_data,
|
||||
impeller_modern_fixtures_shaders_vk_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(impeller_imgui_shaders_vk_data,
|
||||
impeller_imgui_shaders_vk_length),
|
||||
std::make_shared<fml::NonOwnedMapping>(impeller_scene_shaders_vk_data,
|
||||
|
||||
@ -1392,13 +1392,6 @@ std::shared_ptr<Pipeline<PipelineDescriptor>> CreateDefaultPipeline(
|
||||
}
|
||||
|
||||
TEST_P(RendererTest, CanSepiaToneWithSubpasses) {
|
||||
// The GLES framebuffer fetch implementation currently does not support this.
|
||||
// TODO(chinmaygarde): revisit after the GLES framebuffer fetch capabilities
|
||||
// are clarified.
|
||||
if (GetParam() == PlaygroundBackend::kOpenGLES) {
|
||||
GTEST_SKIP_("Not supported on GLES.");
|
||||
}
|
||||
|
||||
// Define shader types
|
||||
using TextureVS = TextureVertexShader;
|
||||
using TextureFS = TextureFragmentShader;
|
||||
@ -1487,13 +1480,6 @@ TEST_P(RendererTest, CanSepiaToneWithSubpasses) {
|
||||
}
|
||||
|
||||
TEST_P(RendererTest, CanSepiaToneThenSwizzleWithSubpasses) {
|
||||
// The GLES framebuffer fetch implementation currently does not support this.
|
||||
// TODO(chinmaygarde): revisit after the GLES framebuffer fetch capabilities
|
||||
// are clarified.
|
||||
if (GetParam() == PlaygroundBackend::kOpenGLES) {
|
||||
GTEST_SKIP_("Not supported on GLES.");
|
||||
}
|
||||
|
||||
// Define shader types
|
||||
using TextureVS = TextureVertexShader;
|
||||
using TextureFS = TextureFragmentShader;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user