diff options
author | Nick Desaulniers <ndesaulniers@google.com> | 2019-11-12 13:29:31 -0800 |
---|---|---|
committer | Nick Desaulniers <ndesaulniers@google.com> | 2019-11-12 13:37:25 -0800 |
commit | dde081846ac1c12575e398e6b1c159a6e132e9c6 (patch) | |
tree | 7e44f6f89690f3fd1778cafd2250bdc17f582281 /sdm/libs/core/drm/hw_device_drm.cpp | |
parent | 25afe11d72873090430823335d8ebee8c2425030 (diff) | |
download | display-dde081846ac1c12575e398e6b1c159a6e132e9c6.tar.gz |
hardware: qcom: sdm845: display: fix -Wimplicit-int-float-conversion
All of the below have loss of precision due to implicit conversions to
float (or double). Accept the imprecision with explicit casts.
Fixes the following warnings from the compiler upgrade:
hardware/qcom/sdm845/display/sdm/libs/core/display_base.cpp:207:56:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
if (gpu_target_layer_dst_xpixels > mixer_attributes_.width ||
~ ~~~~~~~~~~~~~~~~~~^~~~~
hardware/qcom/sdm845/display/sdm/libs/core/display_base.cpp:208:54:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
gpu_target_layer_dst_ypixels > mixer_attributes_.height) {
~ ~~~~~~~~~~~~~~~~~~^~~~~~
hardware/qcom/sdm845/display/sdm/libs/core/display_base.cpp:1176:42:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
layer_height), align_x);
^~~~~~~~~~~~
hardware/qcom/sdm845/display/sdm/libs/core/drm/hw_device_drm.cpp:1524:57:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
float max_scale_up = hw_resource_.hw_dest_scalar_info.max_scale_up;
~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hardware/qcom/sdm845/display/sdm/libs/core/resource_default.cpp:472:33:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
if ((src_width > hw_res_info_.max_pipe_width) || (dst_width > hw_res_info_.max_pipe_width)) {
~ ~~~~~~~~~~~~~^~~~~~~~~~~~~~
hardware/qcom/sdm845/display/sdm/libs/core/resource_default.cpp:472:78:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
if ((src_width > hw_res_info_.max_pipe_width) || (dst_width > hw_res_info_.max_pipe_width)) {
~ ~~~~~~~~~~~~~^~~~~~~~~~~~~~
hardware/qcom/sdm845/display/sdm/libs/core/fb/hw_device.cpp:1328:57:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
float max_scale_up = hw_resource_.hw_dest_scalar_info.max_scale_up;
~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
hardware/qcom/sdm845/display/sdm/libs/core/drm/hw_tv_drm.cpp:264:67:
error: implicit conversion from 'long' to 'float' may lose precision
[-Werror,-Wimplicit-int-float-conversion]
float hdr_reset_time_start = ((hdr_reset_start.tv_sec*1000) + (hdr_reset_start.tv_usec/1000));
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hardware/qcom/sdm845/display/sdm/libs/core/drm/hw_tv_drm.cpp:265:63:
error: implicit conversion from 'long' to 'float' may lose precision
[-Werror,-Wimplicit-int-float-conversion]
float hdr_reset_time_end = ((hdr_reset_end.tv_sec*1000) + (hdr_reset_end.tv_usec/1000));
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hardware/qcom/sdm845/display/sdm/libs/core/strategy.cpp:162:47: error:
implicit conversion from 'uint32_t' (aka 'unsigned int') to 'float' may
lose precision [-Werror,-Wimplicit-int-float-conversion]
float layer_mixer_width = mixer_attributes_.width;
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~^~~~~
hardware/qcom/sdm845/display/sdm/libs/core/strategy.cpp:163:48: error:
implicit conversion from 'uint32_t' (aka 'unsigned int') to 'float' may
lose precision [-Werror,-Wimplicit-int-float-conversion]
float layer_mixer_height = mixer_attributes_.height;
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~^~~~~~
hardware/qcom/sdm845/display/sdm/libs/hwc2/hwc_display.cpp:284:19:
error: implicit conversion from 'int' to 'float' may lose precision
[-Werror,-Wimplicit-int-float-conversion]
return ((c2 * rgb * rgb + c1 * rgb + c0) / kCompensatedMaxRGB);
~ ^~~
hardware/qcom/sdm845/display/sdm/libs/hwc2/hwc_display.cpp:284:25:
error: implicit conversion from 'int' to 'float' may lose precision
[-Werror,-Wimplicit-int-float-conversion]
return ((c2 * rgb * rgb + c1 * rgb + c0) / kCompensatedMaxRGB);
~ ^~~
hardware/qcom/sdm845/display/sdm/libs/hwc2/hwc_display.cpp:284:36:
error: implicit conversion from 'int' to 'float' may lose precision
[-Werror,-Wimplicit-int-float-conversion]
return ((c2 * rgb * rgb + c1 * rgb + c0) / kCompensatedMaxRGB);
~ ^~~
hardware/qcom/sdm845/display/sdm/libs/hwc2/hwc_display.cpp:805:45:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
layer->src_rect.right = layer_buffer->width;
~ ~~~~~~~~~~~~~~^~~~~
hardware/qcom/sdm845/display/sdm/libs/hwc2/hwc_display.cpp:806:46:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
layer->src_rect.bottom = layer_buffer->height;
~ ~~~~~~~~~~~~~~^~~~~~
hardware/qcom/sdm845/display/sdm/libs/hwc2/hwc_display_external_test.cpp:628:46:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
layer->src_rect = LayerRect(0, 0, var_info.x_pixels, var_info.y_pixels);
~~~~~~~~~ ~~~~~~~~~^~~~~~~~
hardware/qcom/sdm845/display/sdm/libs/hwc2/hwc_display_external_test.cpp:628:65:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
layer->src_rect = LayerRect(0, 0, var_info.x_pixels, var_info.y_pixels);
~~~~~~~~~ ~~~~~~~~~^~~~~~~~
hardware/qcom/sdm845/display/sdm/libs/hwc2/hwc_display_external.cpp:169:37:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
uint32_t new_mixer_width = UINT32(mixer_width * FLOAT(1.0f - width_ratio));
^~~~~~~~~~~ ~
hardware/qcom/sdm845/display/sdm/libs/hwc2/hwc_display_external.cpp:170:38:
error: implicit conversion from 'uint32_t' (aka 'unsigned int') to
'float' may lose precision [-Werror,-Wimplicit-int-float-conversion]
uint32_t new_mixer_height = UINT32(mixer_height * FLOAT(1.0f - height_ratio));
^~~~~~~~~~~~ ~
Bug: 139945549
Test: mm
Change-Id: I926e875e6df43a0d4a66fc1764a53c5b95a4d6a3
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Diffstat (limited to 'sdm/libs/core/drm/hw_device_drm.cpp')
-rw-r--r-- | sdm/libs/core/drm/hw_device_drm.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp index 5d6dfde5..aa0e13c5 100644 --- a/sdm/libs/core/drm/hw_device_drm.cpp +++ b/sdm/libs/core/drm/hw_device_drm.cpp @@ -1521,7 +1521,7 @@ DisplayError HWDeviceDRM::SetMixerAttributes(const HWMixerAttributes &mixer_attr float scale_x = FLOAT(display_attributes_[index].x_pixels) / FLOAT(mixer_attributes.width); float scale_y = FLOAT(display_attributes_[index].y_pixels) / FLOAT(mixer_attributes.height); - float max_scale_up = hw_resource_.hw_dest_scalar_info.max_scale_up; + float max_scale_up = FLOAT(hw_resource_.hw_dest_scalar_info.max_scale_up); if (scale_x > max_scale_up || scale_y > max_scale_up) { DLOGW( "Up scaling ratio exceeds for destination scalar upscale limit scale_x %f scale_y %f " |