Commit f143ab1f by Ian Elliott Committed by Commit Bot

Vulkan: Disable forceOldRewriteStructSamplers for SwS-Android

Disable the forceOldRewriteStructSamplers feature for SwiftShader on Android. Another change fixed the issue that prevented SwiftShader on Android from supporting sampler arrays as parameters. The Qualcomm driver still cannot support sampler arrays as parameters, and so it still needs forceOldRewriteStructSamplers. Bug: angleproject:4071 Bug: angleproject:2703 Change-Id: I77fbfacdad6cd9cc918c79fa0918f15de0558ce0 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2086282 Commit-Queue: Ian Elliott <ianelliott@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent e45fe217
...@@ -58,6 +58,11 @@ inline bool IsIntel(uint32_t vendorId) ...@@ -58,6 +58,11 @@ inline bool IsIntel(uint32_t vendorId)
return vendorId == VENDOR_ID_INTEL; return vendorId == VENDOR_ID_INTEL;
} }
inline bool IsGoogle(uint32_t vendorId)
{
return vendorId == VENDOR_ID_GOOGLE;
}
inline bool IsNvidia(uint32_t vendorId) inline bool IsNvidia(uint32_t vendorId)
{ {
return vendorId == VENDOR_ID_NVIDIA; return vendorId == VENDOR_ID_NVIDIA;
......
...@@ -1536,6 +1536,8 @@ void RendererVk::initFeatures(DisplayVk *displayVk, const ExtensionNameList &dev ...@@ -1536,6 +1536,8 @@ void RendererVk::initFeatures(DisplayVk *displayVk, const ExtensionNameList &dev
bool isIntel = IsIntel(mPhysicalDeviceProperties.vendorID); bool isIntel = IsIntel(mPhysicalDeviceProperties.vendorID);
bool isNvidia = IsNvidia(mPhysicalDeviceProperties.vendorID); bool isNvidia = IsNvidia(mPhysicalDeviceProperties.vendorID);
bool isQualcomm = IsQualcomm(mPhysicalDeviceProperties.vendorID); bool isQualcomm = IsQualcomm(mPhysicalDeviceProperties.vendorID);
bool isSwS = (IsGoogle(mPhysicalDeviceProperties.vendorID) &&
(mPhysicalDeviceProperties.deviceID == kSwiftShaderDeviceID));
if (mLineRasterizationFeatures.bresenhamLines == VK_TRUE) if (mLineRasterizationFeatures.bresenhamLines == VK_TRUE)
{ {
...@@ -1640,7 +1642,7 @@ void RendererVk::initFeatures(DisplayVk *displayVk, const ExtensionNameList &dev ...@@ -1640,7 +1642,7 @@ void RendererVk::initFeatures(DisplayVk *displayVk, const ExtensionNameList &dev
ANGLE_FEATURE_CONDITION((&mFeatures), bindEmptyForUnusedDescriptorSets, ANGLE_FEATURE_CONDITION((&mFeatures), bindEmptyForUnusedDescriptorSets,
IsAndroid() && isQualcomm); IsAndroid() && isQualcomm);
ANGLE_FEATURE_CONDITION((&mFeatures), forceOldRewriteStructSamplers, IsAndroid()); ANGLE_FEATURE_CONDITION((&mFeatures), forceOldRewriteStructSamplers, IsAndroid() && !isSwS);
ANGLE_FEATURE_CONDITION((&mFeatures), perFrameWindowSizeQuery, ANGLE_FEATURE_CONDITION((&mFeatures), perFrameWindowSizeQuery,
isIntel || (IsWindows() && isAMD) || IsFuchsia()); isIntel || (IsWindows() && isAMD) || IsFuchsia());
......
...@@ -185,10 +185,6 @@ ...@@ -185,10 +185,6 @@
3881 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.location.default_block.array.array.image_2d = SKIP 3881 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.location.default_block.array.array.image_2d = SKIP
3881 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.location.default_block.array.array.iimage_2d_array = SKIP 3881 VULKAN : dEQP-GLES31.functional.program_interface_query.uniform.location.default_block.array.array.iimage_2d_array = SKIP
// Swiftshader uses "old" sampler rewrite that doesn't support array of arrays
4071 SWIFTSHADER : dEQP-GLES31.functional.program_interface_query.uniform.location.default_block.array.array.*sampler* = SKIP
4071 SWIFTSHADER : dEQP-GLES31.functional.uniform_location.nested_array.*sampler2D* = SKIP
//// ////
//// General Vulkan expectations //// General Vulkan expectations
//// ////
......
...@@ -69,9 +69,6 @@ ...@@ -69,9 +69,6 @@
4146 : KHR-GLES31.core.vertex_attrib_binding.advanced-bindingUpdate = FAIL 4146 : KHR-GLES31.core.vertex_attrib_binding.advanced-bindingUpdate = FAIL
4146 : KHR-GLES31.core.vertex_attrib_binding.advanced-largeStrideAndOffsetsNewAndLegacyAPI = FAIL 4146 : KHR-GLES31.core.vertex_attrib_binding.advanced-largeStrideAndOffsetsNewAndLegacyAPI = FAIL
// Swiftshader uses "old" sampler rewrite that doesn't support array of arrays
4071 SWIFTSHADER : KHR-GLES31.core.arrays_of_arrays.* = SKIP
// Failing on SwiftShader // Failing on SwiftShader
4414 SWIFTSHADER : KHR-GLES31.core.shader_image_load_store.advanced-allMips-cs = FAIL 4414 SWIFTSHADER : KHR-GLES31.core.shader_image_load_store.advanced-allMips-cs = FAIL
4414 SWIFTSHADER : KHR-GLES31.core.shader_image_load_store.advanced-allMips-fs = FAIL 4414 SWIFTSHADER : KHR-GLES31.core.shader_image_load_store.advanced-allMips-fs = FAIL
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment