Skip to content

Some compiler fixes for image tests in the CTS

Jesse Natalie requested to merge jenatali/mesa:cl-misc-image-fixes into msclc-d3d12

This is WIP because 3b6fc7bb doesn't fully support that feature - new metadata needs to come in from the runtime to indicate border behavior (fortunately can only be clamp / border / unspecified).

This series:

  • Fixes resource limits. Min read-only image args is 128 for CL.
  • Correctly sets the 64 UAVs bit.
  • Fixes sampler bindings for the case where we have more than one sampler argument (as opposed to literal).
  • Supports texture store (UAV write) for integer types
  • Supports sampling from integer textures by moving D3D12's pass for this to the common DXIL path. Also changed border clamping to happen in pixel space improve precision (no more -0.1 shift); this actually simplified the code I think. Also fixed bugs related to texture array handling.
  • Pass more sampler info in with the configuration so we can output correct border/filter instructions. Corresponding CLOn12 change is here.
  • Fixes a few bugs with previous image support changes.

These changes get the test_image_streams.exe test mostly passing. I'm still seeing some minor precision issues (AMD doesn't do our custom border addressing correctly for normalized 1.0 coordinate, fmod appears to produce an out-of-bounds value; WARP produces incorrect linear sampling values for values approaching limits of floating point precision).

/cc @gerddie for the integer coordinate rework. /cc @bbrezillon @daniels for everything else.

Edited by Jesse Natalie

Merge request reports