Search Issue Tracker




Found in


Issue ID




[Metal] Half-precision literal in HLSL is translated to float literal by Metal shader compiler




Priority: 7Not yet prioritized for a release


Severity: 3Workaround is possible

Reproduction steps:
1) Open the attached project (
2) Open "MobileBloom.shader".
3) Observe the literal "half4(0.01h, 0.01h, 0.01h, 0.01h)" in "half4 fragBloom ( v2f_simple i ) : SV_Target".
4) Select "MobileBloom.shader".
5) Open drop-down menu of the "Compile and show code" button in the inspector window.
6) Tick "Custom:", then under "Custom:" tick "Metal".
7) Push the "Compile and show code" button to view View "Compiled-Hidden-FastBloom.shader" file.
8) Observe the literal "float4(0.00999999978, 0.00999999978, 0.00999999978, 0.00999999978)" in "fragment Mtl_FragmentOut xlatMtlMain".

This doesn't occur when compiling to OpenGL.

Actual behavior:
- float4(0.00999999978, 0.00999999978, 0.00999999978, 0.00999999978) is generated in the Metal shader.

Expected behavior:
- half4(0.01h, 0.01h, 0.01h, 0.01h) is generated in the Metal shader.

Reproduced with:
2017.1.0f3, 2017.1.0b1, 5.6.0f3, 5.5.0p4

Comments (3)

  1. 7f61bda9f0068f56eabd7a4dff82562c?d=mm


    Aug 13, 2017 21:00

    i stubmbled upon the same problem in unity 2017.1 any comments to when this will be fixed, or how to work around?

  2. 7f32babefcb6726146282dd931d3317e?d=mm


    Jul 17, 2017 13:36

    Hope it could be fixed in 5.6.x !

  3. 7f32babefcb6726146282dd931d3317e?d=mm


    Jul 15, 2017 17:59

    ah ha~~ liar!
    this bug is not fixed in 2017.1

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.