KhronosGroup / Vulkan-Portability

Apache License 2.0
40 stars 4 forks source link

Add VkPhysicalDevicePortabilitySubsetFeaturesKHR:: shaderGraphicsFuzzConformance capability #58

Open billhollings opened 2 years ago

billhollings commented 2 years ago

Some CTS tests fail on shader form/syntax variations derived by the GraphicsFuzz testing framework.

This is most likely fixable with effort within the implementations.

In the meantime, these use cases can be disabled in CTS and reported as Not Supported, by adding a VkPhysicalDevicePortabilitySubsetFeaturesKHR:: shaderGraphicsFuzzConformance capability.

This affects 6 CTS tests:

dEQP-VK.graphicsfuzz.always-discarding-function
dEQP-VK.graphicsfuzz.cov-apfloat-undefined-matrix-mul
dEQP-VK.graphicsfuzz.cov-bitfieldreverse-loop-limit-underflow
dEQP-VK.graphicsfuzz.cov-instruction-simplify-mod-acos-undefined
dEQP-VK.graphicsfuzz.cov-instruction-simplify-mod-sqrt-undefined
dEQP-VK.graphicsfuzz.spv-copy-object
  Fail (Fail)

Fixed: dEQP-VK.graphicsfuzz.stable-binarysearch-tree-false-if-discard-loop

kvark commented 2 years ago

I don't think having "GraphicsFuzz" in the flag name is a good thing. This fuzzer examines capabilities guaranteed by SPIR-V, and if Vulkan Portability can't fulfill those capabilities, the flag needs to reflect the semantics instead of referring to one of the clients.

cdavis5e commented 1 year ago

This appears to be multiple separate issues:

I've also found two new failing tests:

The dEQP-VK.graphicsfuzz.stable-binarysearch-tree-false-if-discard-loop failure has also returned; the shader fails to compile.

billhollings commented 8 months ago

dEQP-VK.graphicsfuzz.spv-copy-object fixed in SPIRV-Cross PR.