зеркало из https://github.com/AvaloniaUI/angle.git
Vulkan: Remove the forceCPUPathForCubeMapCopy workaround
This workaround has been disabled since https://chromium-review.googlesource.com/c/angle/angle/+/2594707 Bug: angleproject:2822 Bug: angleproject:3055 Change-Id: Ie9cc12c7616cd9e1801dbd92e21822c63f4d0bef Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140214 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
This commit is contained in:
Родитель
ea609fba5e
Коммит
58ec0fbfd6
|
@ -90,14 +90,6 @@ struct FeaturesVk : FeatureSetBase
|
|||
"supportsIncrementalPresent", FeatureCategory::VulkanFeatures,
|
||||
"VkDevice supports the VK_KHR_incremental_present extension", &members};
|
||||
|
||||
// Whether texture copies on cube map targets should be done on GPU. This is a workaround for
|
||||
// Intel drivers on windows that have an issue with creating single-layer views on cube map
|
||||
// textures.
|
||||
Feature forceCPUPathForCubeMapCopy = {
|
||||
"forceCPUPathForCubeMapCopy", FeatureCategory::VulkanWorkarounds,
|
||||
"Some drivers have an issue with creating single-layer views on cube map textures",
|
||||
&members};
|
||||
|
||||
// Whether the VkDevice supports the VK_ANDROID_external_memory_android_hardware_buffer
|
||||
// extension, on which the EGL_ANDROID_image_native_buffer extension can be layered.
|
||||
Feature supportsAndroidHardwareBuffer = {
|
||||
|
|
|
@ -2251,8 +2251,6 @@ void RendererVk::initFeatures(DisplayVk *displayVk,
|
|||
// http://anglebug.com/2838
|
||||
ANGLE_FEATURE_CONDITION(&mFeatures, extraCopyBufferRegion, IsWindows() && isIntel);
|
||||
|
||||
ANGLE_FEATURE_CONDITION(&mFeatures, forceCPUPathForCubeMapCopy, false);
|
||||
|
||||
// Work around incorrect NVIDIA point size range clamping.
|
||||
// http://anglebug.com/2970#c10
|
||||
// Clamp if driver version is:
|
||||
|
|
|
@ -164,11 +164,6 @@ bool CanCopyWithDraw(RendererVk *renderer,
|
|||
return srcFormatHasNecessaryFeature && dstFormatHasNecessaryFeature;
|
||||
}
|
||||
|
||||
bool ForceCPUPathForCopy(RendererVk *renderer, const vk::ImageHelper &image)
|
||||
{
|
||||
return image.getLayerCount() > 1 && renderer->getFeatures().forceCPUPathForCubeMapCopy.enabled;
|
||||
}
|
||||
|
||||
bool CanGenerateMipmapWithCompute(RendererVk *renderer,
|
||||
VkImageType imageType,
|
||||
angle::FormatID formatID,
|
||||
|
@ -749,12 +744,9 @@ angle::Result TextureVk::copySubImageImpl(const gl::Context *context,
|
|||
&colorReadRT->getImageForCopy());
|
||||
}
|
||||
|
||||
bool forceCPUPath = ForceCPUPathForCopy(renderer, *mImage);
|
||||
|
||||
// If it's possible to perform the copy with a draw call, do that.
|
||||
if (CanCopyWithDraw(renderer, srcActualFormatID, srcTilingMode, destActualFormatID,
|
||||
destTilingMode) &&
|
||||
!forceCPUPath)
|
||||
destTilingMode))
|
||||
{
|
||||
// Layer count can only be 1 as the source is a framebuffer.
|
||||
ASSERT(offsetImageIndex.getLayerCount() == 1);
|
||||
|
@ -827,11 +819,8 @@ angle::Result TextureVk::copySubTextureImpl(ContextVk *contextVk,
|
|||
&source->getImage());
|
||||
}
|
||||
|
||||
bool forceCPUPath = ForceCPUPathForCopy(renderer, *mImage);
|
||||
|
||||
// If it's possible to perform the copy with a draw call, do that.
|
||||
if (CanCopyWithDraw(renderer, sourceFormatID, srcTilingMode, destFormatID, destTilingMode) &&
|
||||
!forceCPUPath)
|
||||
if (CanCopyWithDraw(renderer, sourceFormatID, srcTilingMode, destFormatID, destTilingMode))
|
||||
{
|
||||
return copySubImageImplWithDraw(
|
||||
contextVk, offsetImageIndex, destOffset, destVkFormat, sourceLevelGL, sourceBox, false,
|
||||
|
|
Загрузка…
Ссылка в новой задаче