We already use DerivativeGroupLinearKHR where applicable, but I don't really know why it's explicitly disabled for quad ops pre-SM6.6.
That sounds like an oversight I think ...
It's possible the test is also a bit overzealous.
While existing compute Quad* operations required the same association with lane indices, no mapping of quad lanes to SV_GroupThreadID was required. This new mapping is not required for pre 6.6 shader models.
https://microsoft.github.io/DirectX-Specs/d3d/HLSL_SM_6_6_Derivatives.html#2d-quads
It's possible that line is supposed to apply to 1D too pre SM 6.6, making the test invalid.
Nothing extracted yet.
Software information
The
test_shader_sm66_quad_op_semanticstest case in the vkd3d-proton test suite. Specifically the following subtest:System information
wine-9.21 (Staging)v2.14.1Log files
For performance reasons Turnip driver prefers to use tiled workgroup dispatch on newer hardware by default:
This trips up this specific vkd3d test case which assumes linear dispatch and validates the results accordingly and reports failure.
For debugging purposes, forcing linear dispatch inside the driver gets the test passing. The test also passes when modifying
dxil-spirvto utilize theSPV_NV_compute_shader_derivativesextension and force linear dispatch through theDerivativeGroupLinearNVexecution mode.