Skip to content

d3d12: ARB_sample_shading and ARB_gpu_shader5 (GLES3.1)

Jesse Natalie requested to merge jenatali/mesa:d3d12-sample-shading into main

This series adds support to the d3d12 backend for all of the features of these two extensions. CI failures here are:

  • WARP still doesn't do gather swizzling correctly, applying the texture's swizzle to the vector of texture lookups, instead of each individual texture lookup. This is the vast majority of new failures.
  • The version of WARP in CI has bugs in dynamic indexing. These were fixed during CL development in 2020, but the CI pipeline is still using Server 2019.
  • WARP assumes that interpolateAtSample will take a constant index. I can't find any such requirement in D3D specs, DXIL docs/validation, and other drivers handle it just fine.
  • The intersection of sample-rate shading with arb_framebuffer_no_attachment is undefined in D3D. WARP doesn't support it (yet). Passes on hardware.
  • The DXIL backend doesn't yet handle varyings in structs. This is on my to-do list.
  • The GS max varyings crash should be fixed by 898d3fd2.
  • ssbo-atomiccompswap-int: I couldn't figure out why this failure's happening. Seems like it should work. Needs more investigation but IMO shouldn't block this from landing.
  • arb_gpu_shader5-emitstreamvertex_nodraw: Passes on new WARP. I wasn't able to see what feature it uses that's broken on the WARP in CI.

Looks like this is the last set of extensions needed for ES3.1 (and I don't even see them showing up in the ES3.1 version checks in version.c).

Edited by Jesse Natalie

Merge request reports