Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 69cd778

Browse files
committed
[Impeller] Document capabilities.
1 parent 5e05c14 commit 69cd778

16 files changed

+114
-49
lines changed

impeller/core/formats.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,7 @@ enum class SamplerAddressMode {
383383
// supported) defaults.
384384

385385
/// @brief decal sampling mode is only supported on devices that pass
386-
/// the Capabilities.SupportsDecalTileMode check.
386+
/// the `Capabilities.SupportsDecalSamplerAddressMode` check.
387387
kDecal,
388388
};
389389

impeller/entity/contents/atlas_contents.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ bool AtlasContents::Render(const ContentContext& renderer,
258258
VS::FrameInfo frame_info;
259259

260260
auto dst_sampler_descriptor = sampler_descriptor_;
261-
if (renderer.GetDeviceCapabilities().SupportsDecalTileMode()) {
261+
if (renderer.GetDeviceCapabilities().SupportsDecalSamplerAddressMode()) {
262262
dst_sampler_descriptor.width_address_mode = SamplerAddressMode::kDecal;
263263
dst_sampler_descriptor.height_address_mode = SamplerAddressMode::kDecal;
264264
}

impeller/entity/contents/filters/blend_filter_contents.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ static std::optional<Entity> AdvancedBlend(
176176
typename VS::FrameInfo frame_info;
177177

178178
auto dst_sampler_descriptor = dst_snapshot->sampler_descriptor;
179-
if (renderer.GetDeviceCapabilities().SupportsDecalTileMode()) {
179+
if (renderer.GetDeviceCapabilities().SupportsDecalSamplerAddressMode()) {
180180
dst_sampler_descriptor.width_address_mode = SamplerAddressMode::kDecal;
181181
dst_sampler_descriptor.height_address_mode = SamplerAddressMode::kDecal;
182182
}
@@ -195,7 +195,7 @@ static std::optional<Entity> AdvancedBlend(
195195
FS::BindTextureSamplerSrc(cmd, dst_snapshot->texture, dst_sampler);
196196
} else {
197197
auto src_sampler_descriptor = src_snapshot->sampler_descriptor;
198-
if (renderer.GetDeviceCapabilities().SupportsDecalTileMode()) {
198+
if (renderer.GetDeviceCapabilities().SupportsDecalSamplerAddressMode()) {
199199
src_sampler_descriptor.width_address_mode = SamplerAddressMode::kDecal;
200200
src_sampler_descriptor.height_address_mode = SamplerAddressMode::kDecal;
201201
}
@@ -344,7 +344,7 @@ std::optional<Entity> BlendFilterContents::CreateForegroundAdvancedBlend(
344344
VS::FrameInfo frame_info;
345345

346346
auto dst_sampler_descriptor = dst_snapshot->sampler_descriptor;
347-
if (renderer.GetDeviceCapabilities().SupportsDecalTileMode()) {
347+
if (renderer.GetDeviceCapabilities().SupportsDecalSamplerAddressMode()) {
348348
dst_sampler_descriptor.width_address_mode = SamplerAddressMode::kDecal;
349349
dst_sampler_descriptor.height_address_mode = SamplerAddressMode::kDecal;
350350
}
@@ -466,7 +466,7 @@ std::optional<Entity> BlendFilterContents::CreateForegroundPorterDuffBlend(
466466
VS::FrameInfo frame_info;
467467

468468
auto dst_sampler_descriptor = dst_snapshot->sampler_descriptor;
469-
if (renderer.GetDeviceCapabilities().SupportsDecalTileMode()) {
469+
if (renderer.GetDeviceCapabilities().SupportsDecalSamplerAddressMode()) {
470470
dst_sampler_descriptor.width_address_mode = SamplerAddressMode::kDecal;
471471
dst_sampler_descriptor.height_address_mode = SamplerAddressMode::kDecal;
472472
}

impeller/entity/contents/filters/gaussian_blur_filter_contents.cc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@ std::optional<Entity> DirectionalGaussianBlurFilterContents::RenderFilter(
230230
auto source_descriptor = source_snapshot->sampler_descriptor;
231231
switch (tile_mode_) {
232232
case Entity::TileMode::kDecal:
233-
if (renderer.GetDeviceCapabilities().SupportsDecalTileMode()) {
233+
if (renderer.GetDeviceCapabilities()
234+
.SupportsDecalSamplerAddressMode()) {
234235
input_descriptor.width_address_mode = SamplerAddressMode::kDecal;
235236
input_descriptor.height_address_mode = SamplerAddressMode::kDecal;
236237
source_descriptor.width_address_mode = SamplerAddressMode::kDecal;
@@ -263,7 +264,7 @@ std::optional<Entity> DirectionalGaussianBlurFilterContents::RenderFilter(
263264
bool has_alpha_mask = blur_style_ != BlurStyle::kNormal;
264265
bool has_decal_specialization =
265266
tile_mode_ == Entity::TileMode::kDecal &&
266-
!renderer.GetDeviceCapabilities().SupportsDecalTileMode();
267+
!renderer.GetDeviceCapabilities().SupportsDecalSamplerAddressMode();
267268

268269
if (has_alpha_mask && has_decal_specialization) {
269270
cmd.pipeline = renderer.GetGaussianBlurAlphaDecalPipeline(options);

impeller/entity/contents/filters/morphology_filter_contents.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ std::optional<Entity> DirectionalMorphologyFilterContents::RenderFilter(
123123
cmd.BindVertices(vtx_buffer);
124124

125125
auto sampler_descriptor = input_snapshot->sampler_descriptor;
126-
if (renderer.GetDeviceCapabilities().SupportsDecalTileMode()) {
126+
if (renderer.GetDeviceCapabilities().SupportsDecalSamplerAddressMode()) {
127127
sampler_descriptor.width_address_mode = SamplerAddressMode::kDecal;
128128
sampler_descriptor.height_address_mode = SamplerAddressMode::kDecal;
129129
}

impeller/entity/contents/framebuffer_blend_contents.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ bool FramebufferBlendContents::Render(const ContentContext& renderer,
136136
FS::FragInfo frag_info;
137137

138138
auto src_sampler_descriptor = src_snapshot->sampler_descriptor;
139-
if (!renderer.GetDeviceCapabilities().SupportsDecalTileMode()) {
139+
if (!renderer.GetDeviceCapabilities().SupportsDecalSamplerAddressMode()) {
140140
// No known devices that support framebuffer fetch but not decal tile mode.
141141
return false;
142142
}

impeller/entity/contents/tiled_texture_contents.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ static std::optional<SamplerAddressMode> TileModeToAddressMode(
3030
return SamplerAddressMode::kRepeat;
3131
break;
3232
case Entity::TileMode::kDecal:
33-
if (capabilities.SupportsDecalTileMode()) {
33+
if (capabilities.SupportsDecalSamplerAddressMode()) {
3434
return SamplerAddressMode::kDecal;
3535
}
3636
return std::nullopt;

impeller/renderer/backend/gles/context_gles.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ ContextGLES::ContextGLES(std::unique_ptr<ProcTableGLES> gl,
7575
.SetSupportsComputeSubgroups(false)
7676
.SetSupportsReadFromResolve(false)
7777
.SetSupportsReadFromOnscreenTexture(false)
78-
.SetSupportsDecalTileMode(false)
79-
.SetSupportsMemorylessTextures(false)
78+
.SetSupportsDecalSamplerAddressMode(false)
79+
.SetSupportsDeviceTransientTextures(false)
8080
.Build();
8181
}
8282

impeller/renderer/backend/metal/allocator_mtl.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
namespace impeller {
1616

17-
static bool DeviceSupportsMemorylessTargets(id<MTLDevice> device) {
17+
static bool DeviceSupportsDeviceTransientTargets(id<MTLDevice> device) {
1818
// Refer to the "Memoryless render targets" feature in the table below:
1919
// https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf
2020
if (@available(ios 13.0, tvos 13.0, macos 10.15, *)) {
@@ -95,7 +95,7 @@ static bool SupportsLossyTextureCompression(id<MTLDevice> device) {
9595
return;
9696
}
9797

98-
supports_memoryless_targets_ = DeviceSupportsMemorylessTargets(device_);
98+
supports_memoryless_targets_ = DeviceSupportsDeviceTransientTargets(device_);
9999
supports_uma_ = DeviceHasUnifiedMemoryArchitecture(device_);
100100
max_texture_supported_ = DeviceMaxTextureSizeSupported(device_);
101101

impeller/renderer/backend/metal/context_mtl.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ static bool DeviceSupportsComputeSubgroups(id<MTLDevice> device) {
5656
.SetSupportsSSBO(true)
5757
.SetSupportsBufferToTextureBlits(true)
5858
.SetSupportsTextureToTextureBlits(true)
59-
.SetSupportsDecalTileMode(true)
59+
.SetSupportsDecalSamplerAddressMode(true)
6060
.SetSupportsFramebufferFetch(DeviceSupportsFramebufferFetch(device))
6161
.SetDefaultColorFormat(color_format)
6262
.SetDefaultStencilFormat(PixelFormat::kS8UInt)
@@ -65,7 +65,7 @@ static bool DeviceSupportsComputeSubgroups(id<MTLDevice> device) {
6565
.SetSupportsComputeSubgroups(DeviceSupportsComputeSubgroups(device))
6666
.SetSupportsReadFromResolve(true)
6767
.SetSupportsReadFromOnscreenTexture(true)
68-
.SetSupportsMemorylessTextures(true)
68+
.SetSupportsDeviceTransientTextures(true)
6969
.Build();
7070
}
7171

0 commit comments

Comments
 (0)