Skip to content

turnip: 16-bit float/storage v2

It is a rebased version of !4695 (closed) with additional fixes to make all tests pass.

Passes:

dEQP-VK.spirv_assembly.instruction.*.16bit_storage.*
dEQP-VK.spirv_assembly.instruction.*.float16.*
dEQP-VK.spirv_assembly.*.float_controls.*

Additional things that were done:

  • Changed "freedreno/ir3: invert IR3_REG_EVEN" to have IR3_REG_RTZ on all cat1 except f2f16 and f2f16_rtne;
  • Fixed shift for 16b integers which are used after lowering of frexp_exp;
  • Found a toggle to enable/disable infinities for float16;

This MR is ready for review with few caveats:

  • The "TEST: clamp branchstack to 32" is necessary to pass all tests, however it is not related to float16. It could be removed. I'll look into how blob deals with bigger branch depths in a general case, but that would be a matter of another MR. Would be resolved by !9859 (merged)
  • The VK_KHR_16bit_storage is WIP because I just commented out two asserts instead of changing them to be correct. Fixed asserts for 16b STIB
Edited by Danylo Piliaiev

Merge request reports