зеркало из https://github.com/AvaloniaUI/angle.git
Vulkan: Fix VVL error regarding geometryStreams
Addresses new validation error:
[ VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324 ] Validation Error: [ VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324 ] Object 0: handle = 0xb400007e8176af60, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0xf1034461 | pCreateInfos[0].pRasterizationState pNext chain includes VkPipelineRasterizationStateStreamCreateInfoEXT, but geometryStreams feature is not enabled. The Vulkan spec states: VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled (https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324)
The validation was added in this commit:
bdaec8454a
Test: World of Kings MEC
Bug: b/198101940
Bug: angleproject:6339
Change-Id: I3cfacc20d231d246500e83451c9ec6b74d9372f2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3127942
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Cody Northrop <cnorthrop@google.com>
This commit is contained in:
Родитель
ab1a5dbeb4
Коммит
ef96bde8b0
|
@ -199,6 +199,11 @@ struct FeaturesVk : FeatureSetBase
|
||||||
"Transform feedback uses the VK_EXT_transform_feedback extension.", &members,
|
"Transform feedback uses the VK_EXT_transform_feedback extension.", &members,
|
||||||
"http://anglebug.com/3206"};
|
"http://anglebug.com/3206"};
|
||||||
|
|
||||||
|
Feature supportsGeometryStreamsCapability = {
|
||||||
|
"supportsGeometryStreamsCapability", FeatureCategory::VulkanFeatures,
|
||||||
|
"Implementation supports the GeometryStreams SPIR-V capability.", &members,
|
||||||
|
"http://anglebug.com/3206"};
|
||||||
|
|
||||||
// Whether the VkDevice supports the VK_EXT_index_type_uint8 extension
|
// Whether the VkDevice supports the VK_EXT_index_type_uint8 extension
|
||||||
// http://anglebug.com/4405
|
// http://anglebug.com/4405
|
||||||
Feature supportsIndexTypeUint8 = {"supportsIndexTypeUint8", FeatureCategory::VulkanFeatures,
|
Feature supportsIndexTypeUint8 = {"supportsIndexTypeUint8", FeatureCategory::VulkanFeatures,
|
||||||
|
|
|
@ -2368,6 +2368,9 @@ void RendererVk::initFeatures(DisplayVk *displayVk,
|
||||||
ANGLE_FEATURE_CONDITION(&mFeatures, supportsTransformFeedbackExtension,
|
ANGLE_FEATURE_CONDITION(&mFeatures, supportsTransformFeedbackExtension,
|
||||||
mTransformFeedbackFeatures.transformFeedback == VK_TRUE);
|
mTransformFeedbackFeatures.transformFeedback == VK_TRUE);
|
||||||
|
|
||||||
|
ANGLE_FEATURE_CONDITION(&mFeatures, supportsGeometryStreamsCapability,
|
||||||
|
mTransformFeedbackFeatures.geometryStreams == VK_TRUE);
|
||||||
|
|
||||||
ANGLE_FEATURE_CONDITION(&mFeatures, supportsIndexTypeUint8,
|
ANGLE_FEATURE_CONDITION(&mFeatures, supportsIndexTypeUint8,
|
||||||
mIndexTypeUint8Features.indexTypeUint8 == VK_TRUE);
|
mIndexTypeUint8Features.indexTypeUint8 == VK_TRUE);
|
||||||
|
|
||||||
|
|
|
@ -1957,7 +1957,7 @@ angle::Result GraphicsPipelineDesc::initializePipeline(
|
||||||
|
|
||||||
VkPipelineRasterizationStateStreamCreateInfoEXT rasterStreamState = {};
|
VkPipelineRasterizationStateStreamCreateInfoEXT rasterStreamState = {};
|
||||||
rasterStreamState.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
|
rasterStreamState.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT;
|
||||||
if (contextVk->getFeatures().supportsTransformFeedbackExtension.enabled)
|
if (contextVk->getFeatures().supportsGeometryStreamsCapability.enabled)
|
||||||
{
|
{
|
||||||
rasterStreamState.rasterizationStream = 0;
|
rasterStreamState.rasterizationStream = 0;
|
||||||
*pNextPtr = &rasterStreamState;
|
*pNextPtr = &rasterStreamState;
|
||||||
|
|
|
@ -202,6 +202,7 @@ bool EGLWindow::initializeDisplay(OSWindow *osWindow,
|
||||||
if (params.transformFeedbackFeature == EGL_FALSE)
|
if (params.transformFeedbackFeature == EGL_FALSE)
|
||||||
{
|
{
|
||||||
disabledFeatureOverrides.push_back("supportsTransformFeedbackExtension");
|
disabledFeatureOverrides.push_back("supportsTransformFeedbackExtension");
|
||||||
|
disabledFeatureOverrides.push_back("supportsGeometryStreamsCapability");
|
||||||
disabledFeatureOverrides.push_back("emulateTransformFeedback");
|
disabledFeatureOverrides.push_back("emulateTransformFeedback");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче